Publications

Export 30 results:
Sort by: Author Title Type [ Year  (Desc)]
2015
Silva, J. A., T. M. Vale, R. J. Dias, H. Paulino, and J. M. Lourenço, "Supporting Multiple Data Replication Models in Distributed Transactional Memory", Proceedings of the 2015 International Conference on Distributed Computing and Networking, Goa, India, ACM, 2015. Abstract2015-icdcn.pdf

n/a

2014
Silva, J. A., J. M. Lourenço, and H. Paulino, Boosting Locality in Multi-version Partial Data Replication, : Universidade Nova de Lisboa, 2014. 2014-silva.pdf
Simão, J., "An Adaptive Java Runtime Environment for Cloud Computing", Instituto Superior Técnico, 2014.
Sousa, D., J. M. Lourenço, C. Ferreira, and R. J. Dias, Preventing Atomicity Violations with Contracts, , no. UNL-2014: Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, 2014. Abstract2014-sousa.pdf

n/a

2013
Sousa, D. G., C. Ferreira, and J. M. Lourenço, "Prevenção de Violações de Atomicidade usando Contractos", Proceedings of INForum Simpósio de Informática, Lisbon, Portugal, Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, pp. 190–201, sep, 2013. Abstract2013-inforum-ds.pdf

n/a

Martins, H. R. L., J. Soares, J. M. Lourenço, and N. Preguiça, "Replicação Multi-nível de Bases de Dados em Memória", Proceedings of INForum Simpósio de Informática, Lisbon, Portugal, Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, pp. 190–201, sep, 2013. Abstract2013-inforum-hm.pdf

n/a

Simão, J., J. Singer, and L. Veiga, "A Comparative Look at Adaptive Memory Management in Virtual Machines", IEEE CloudCom 2013: IEEE, dec, 2013. Abstract2013-cloudcom-simao-c.pdf

n/a

Silva, J. P. M., J. Simão, and L. Veiga, "Ditto – Deterministic Execution Replayability-as-a-Service for Java VM on Multiprocessors", ACM/IFIP/Usenix International Middleware Conference (Middleware 2013): Springer, dec, 2013. Abstract2013-middleware-silva.pdf

n/a

Simão, J., and L. Veiga, "Flexible SLAs in the Cloud with Partial Utility-driven Scheduling (Best-Paper Award Runner-up)", IEEE 5th International Conference on Cloud Computing Technology and Science (CloudCom 2013): IEEE, dec, 2013. Abstract2013-cloudcom-simao-a-best-paper-award-runner-up.pdf

n/a

Simão, J., N. Rameshan, and L. Veiga, "Resource-Aware Scaling of Multi-threaded Java Applications in Multi-tenancy Scenarios", IEEE CloudCom 2013: IEEE, dec, 2013. Abstract2013-cloudcom-simao-b.pdf

n/a

Simão, J., and L. Veiga, "Adaptability Driven by Quality Of Execution in High Level Virtual Machines for Shared Environments", International Journal of Computer Systems Science and Engineering, vol. 28, no. 6: CRL, pp. 59-72, 2013. Abstract2013-csse-simao.pdf

n/a

Sousa, D. G., "Preventing atomicity violations with contracts", Universidade Nova de Lisboa, 2013. 2013-diogo_sousa.pdf
Silva, J. A., T. M. Vale, J. M. Lourenço, and H. Paulino, "Replicação Parcial com Memória Transacional Distribuída", Proceedings of INForum Simpósio de Informática, Lisbon, Portugal, Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, pp. 310–321, 2013. Abstract2013-inforum-js.pdf

n/a

2012
Sousa, D. G., J. M. Lourenço, E. Farchi, and I. Segall, "Aplicação do Fecho de Programas na Deteção de Anomalias de Concorrência", Proceedings of INForum Simpósio de Informática, Lisbon, Portugal, Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, pp. 190–201, sep, 2012. Abstract2012-inforum-ds.pdf

n/a

Simão, J., and L. {\'ıs Veiga, "QoE-JVM: An Adaptive and Resource-Aware Java Runtime for Cloud Computing", 2nd International Symposium on Secure Virtual Infrastructures (DOA-SVI 2012), OTM Conferences 2012: Springer, LNCS, sep, 2012. Abstract2012-doa-simao.pdf

n/a

Silva, J. P. M., and L. {\'ıs Veiga, "Reprodução Probabilística de Execuções na JVM em Multi-processadores", INFORUM 2012 - Simpósio de Informática, sep, 2012. Abstractinforum-2012-jpsilva-replay.pdf

n/a

Simão, J., T. Garrochinho, and L. Veiga, "A checkpointing-enabled and resource-aware Java Virtual Machine for efficient and robust e-Science applications in grid environments", Concurrency and Computation: Practice and Experience, vol. 24, no. 13: John Wiley & Sons, Ltd, pp. 1421–1442, 2012. Abstract2012-ccpe-simao.pdfWebsite

Object-oriented programming languages presently are the dominant paradigm of application development (e.g., Java, .NET). Lately, increasingly more Java applications have long (or very long) execution times and manipulate large amounts of data/information, gaining relevance in fields related with e-Science (with Grid and Cloud computing). Significant examples include Chemistry, Computational Biology and Bio-informatics, with many available Java-based APIs (e.g., Neobio).Often, when the execution of such an application is terminated abruptly because of a failure (regardless of the cause being a hardware of software fault, lack of available resources, etc.), all of its work already performed is simply lost, and when the application is later re-initiated, it has to restart all its work from scratch, wasting resources and time, while also being prone to another failure and may delay its completion with no deadline guarantees.Our proposed solution to address these issues is through incorporating mechanisms for checkpointing and migration in a JVM. These make applications more robust and flexible by being able to move to other nodes, without any intervention from the programmer. This article provides a solution to Java applications with long execution times, by extending a JVM (Jikes research virtual machine) with such mechanisms. Copyright © 2011 John Wiley & Sons, Ltd.

Simão, J., and L. Veiga, "A Classification of Middleware to Support Virtual Machines Adaptability in IaaS", 11th International Workshop on Adaptive and Reflective Middleware (ARM 2012), In conjuntion with Middleware 2012: ACM, 2012. Abstract2012-arm-simao.pdf

n/a

Silva, J., Ditto – Deterministic Execution Replay for the Java Virtual Machine on Multi-processors, : Instituto Superior Técnico, 2012. Abstract2012-msc-ist-silva.pdf

In this work, we propose RATS, a middleware to enhance and extend the Terracotta framework for Java with the ability to transparently execute multi-threaded Java applications to provide a single-system image. It supports efficient scheduling of threads, according to available resources, across several nodes in a Terracotta cluster, taking advantage of the extra computational and memory resources available. It also supports profiling to gather application characteristics such as dispersion of thread workload, thread inter-arrival time and resource usage of the application. Profiling and clustering capabilities are inserted with the help of byte code instrumentations. We developed a range of alternative scheduling heuristics and classify them based on the application and cluster behavior. The middleware is tested with different applications with varying thread characteristics to assess and classify the scheduling heuristics with respect to application speed-ups. Results indicate that, for a CPU intensive application, it is possible to classify the scheduling heuristic based on application and cluster properties and also achieve linear speed ups. Furthermore, we show that a memory intensive application is able to scale its memory usage considerably when compared to running the application on a single JVM.

Dias, R. J., T. M. Vale, and J. M. Lourenço, "Efficient Support for In-Place Metadata in Transactional Memory", Euro-Par 2012 Parallel Processing, vol. 7484, Rhodes, Greece, Springer Berlin Heidelberg, pp. 589–600, 2012. Abstract2012-europar.pdf

Implementations of Software Transactional Memory (STM) algorithms associate metadata with the memory locations accessed during a transaction’s lifetime. This metadata may be stored either in-place, by wrapping every memory cell in a container that includes the memory cell itself and the corresponding metadata; or out-place (also called external), by resorting to a mapping function that associates the memory cell address with an external table entry containing the corresponding metadata. The implementation techniques for these two approaches are very different and each STM framework is usually biased towards one of them, only allowing the efficient implementation of STM algorithms following that approach, hence inhibiting the fair comparison with STM algorithms falling into the other. In this paper we introduce a technique to implement in-place metadata that does not wrap memory cells, thus overcoming the bias by allowing STM algorithms to directly access the transactional metadata. The proposed technique is available as an extension to the DeuceSTM framework, and enables the efficient implementation of a wide range of STM algorithms and their fair (unbiased) comparison in a common STM infrastructure. We illustrate the benefits of our approach by analyzing its impact in two popular TM algorithms with two different transactional workloads, TL2 and multi-versioning, with bias to out-place and in-place respectively.

Simão, J., and L. Veiga, "QoE-JVM: An Adaptive and Resource-Aware Java Runtime for Cloud Computing", On the Move to Meaningful Internet Systems: OTM 2012, vol. 7566: Springer Berlin / Heidelberg, pp. 566-583, 2012. Abstract2012._qoe-jvm_doa.pdf

Cloud computing has been dominated by system-level virtual machines to enable the management of resources using a coarse grained approach, largely in a manner independent from the applications running on these infrastructures. However, in such environments, although different types of applications can be running, the resources are often delivered in a equal manner to each one, missing the opportunity to manage the available resources in a more efficient and application aware or driven way. Our proposal is QoE-JVM supporting Java applications with a global and elastic distributed image of a high-level virtual machine (HLLVM), where total resource consumption and allocation (within and across applications in the infrastructure) are driven by incremental gains in quality-of-execution (QoE), which relates the resources allocated to an application and the performance the application can extract from having those resources. In this paper, we discuss how critical resources (memory and CPU) can be allocated among HLL-VMs, so that Cloud providers can exchange resource slices among virtual machines, continually adaptdressing where those resources are required, while being able to determine where the reduction will be more economically effective, i.e., will contribute in lesser extent to performance degradation.

Farchi, E., I. Segall, J. M. Lourenço, and D. G. Sousa, "Using Program Closures to Make an Application Programming Interface (Api) Implementation Thread Safe", Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, Minneapolis, MN, USA, ACM, pp. 18–24, 2012. Abstract2012-padtad.pdf

Consider a set of methods implementing an Application Programming Interface (API) of a given library or program module that is to be used in a multithreaded setting. If those methods were not originally designed to be thread safe, races and deadlocks are expected to happen. This work introduces the novel concept of program closure and describes how it can be applied in a methodology used to make the library or module implementation thread safe, by identifying the high level data races introduced by interleaving the parallel execution of methods from the API. High-level data races result from the misspecification of the scope of an atomic block, by wrongly splitting it into two or more atomic blocks sharing a data dependency. Roughly speaking, the closure of a program P, clos(P), is obtained by incrementally adding new threads to P in such a way that enables the identification of the potential high level data races that may result from running P in parallel with other programs. Our model considers the methods implementing the API of a library of program module as concurrent programs and computes and analyses their closure in order to identify high level data races. These high level data races are inspected and removed to make the interface thread safe. We illustrate the application of this methodology with a simple use case.

Dias, R. J., D. Distefano, J. C. Seco, and J. M. Lourenço, "Verification of Snapshot Isolation in Transactional Memory Java Programs", ECOOP 2012 – Object-Oriented Programming, vol. 7313, Beijing, China, Springer Berlin Heidelberg, pp. 640-664, 2012. Abstract2012-ecoop.pdf

This paper presents an automatic verification technique for transactional memory Java programs executing under snapshot isolation level. We certify which transactions in a program are safe to execute under snapshot isolation without triggering the write-skew anomaly, opening the way to run-time optimizations that may lead to considerable performance enhancements. Our work builds on a novel deep-heap analysis technique based on separation logic to statically approximate the read- and write-sets of a transactional memory Java program. We implement our technique and apply our tool to a set of micro benchmarks and also to one benchmark of the STAMP package. We corroborate known results, certifying some of the examples for safe execution under snapshot isolation by proving the absence of write-skew anomalies. In other cases our analysis has identified transactions that potentially trigger previously unknown write-skew anomalies.

Simão, J., and L. Veiga, "VM Economics for Java Cloud Computing - An Adaptive and Resource-Aware Java Runtime with Quality-of-Execution", The 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2012) : IEEE, 2012. Abstract2012-ccgrid-phd-simao.pdf

n/a