Publications

Export 53 results:
Sort by: Author Title [ Type  (Asc)] Year
Book Chapter
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.

Dias, R. J., T. M. Vale, and J. M. Lourenço, "Framework Support for the Efficient Implementation of Multi-Version Algorithms", Transactional Memory: Foundations, Algorithms, Tools, and Applications: Springer, 2014. Abstractdias_vale_lourenco.pdf

Software Transactional Memory algorithms associate metadata with the memory locations accessed during a transaction’s lifetime. This metadata may be stored in an external table and accessed by way of a function that maps the address of each memory location with the table entry that keeps its metadata (this is the out-place or external scheme); or alternatively may be stored adjacent to the associated memory cell by wrapping them together (the in-place scheme). In transactional memory multi-version algorithms, several versions of the same memory location may exist. The efficient implementation of these algorithms requires a one-to-one correspondence between each memory location and its list of past versions, which is stored as metadata. In this chapter we address the matter of the efficient implementation of multi-version algorithms in Java by proposing and evaluating a novel in-place metadata scheme for the Deuce framework. This new scheme is based in Java Bytecode transformation techniques and its use requires no changes to the application code. Experimentation indicates that multi-versioning STM algorithms implemented using our new in-place scheme are in average 6× faster than when implemented with the out-place scheme.

Vale, T. M., R. J. Dias, and J. M. Lourenço, "On the Relevance of Total-Order Broadcast Implementations in Replicated Software Transactional Memories", Multicore Software Engineering, Performance, and Tools, vol. 8063: Springer Berlin Heidelberg, pp. 49–60, 2013. Abstract2013-musepat.pdf

n/a

Dias, R. J., V. Pessanha, and J. M. Lourenço, "Precise Detection of Atomicity Violations", Hardware and Software: Verification and Testing, vol. 7857: Springer Berlin / Heidelberg, pp. 8-23, 2013. Abstract2012-hvc.pdf

n/a

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.

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.

Conference Paper
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. 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

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

Vasques, J. L. V., and L. Veiga, "A Decentralized Utility-based Grid Scheduling Algorithm", 28th ACM Symposium On Applied Computing (SAC 2013): ACM, 2013. Abstract2013-sac-simao.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

Dias, R. J., J. M. Lourenço, and N. Preguiça, "Efficient and Correct Transactional Memory Programs Combining Snapshot Isolation and Static Analysis", Proceedings of the 3rd USENIX Conference on Hot Topics in Parallelism (HotPar'11), Berkeley, USA, Usenix Association, May, 2011. Abstract2011-hotpar.pdf

Concurrent programs may suffer from concurrency anomalies that may lead to erroneous and unpredictable program behaviors. To ensure program correctness, these anomalies must be diagnosed and corrected. This paper addresses the detection of both low- and high-level anomalies in the Transactional Memory setting. We propose a static analysis procedure and a framework to address Transactional Memory anomalies. We start by dealing with the classic case of low-level dataraces, identifying concurrent accesses to shared memory cells that are not protected within the scope of a memory transaction. Then, we address the case of high-level dataraces, bringing the programmer's attention to pairs of memory transactions that were misspecified and should have been combined into a single transaction. Our framework was applied to a set of programs, collected form different sources, containing well known low- and high-level anomalies. The framework demonstrated to be accurate, confirming the effectiveness of using static analysis techniques to precisely identify concurrency anomalies in Transactional Memory programs.

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

Pessanha, V., R. J. Dias, J. M. Lourenço, E. Farchi, and D. Sousa, "Practical verification of high-level dataraces in transactional memory programs", Proceedings of 9th the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, New York, NY, USA, ACM, pp. 26–34, July, 2011. Abstract2011-padtad.pdf

In this paper we present MoTh, a tool that uses static analysis to enable the automatic verification of concurrency anomalies in Transactional Memory Java programs. Currently MoTh detects high-level dataraces and stale-value errors, but it is extendable by plugging-in sensors, each sensor implementing an anomaly detecting algorithm. We validate and benchmark MoTh by applying it to a set of well known concurrent buggy programs and by close comparison of the results with other similar tools. The results achieved so far are very promising, yielding good accuracy while triggering only a very limited number of false warnings.

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

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

Rameshan, N., and L. Veiga, "RATS - Resource Aware Thread Scheduling for JVM-level Clustering", INFORUM 2012 - Simpósio de Informática, sep, 2012. Abstractinforum-2012-navaneeth.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

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

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., 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

Pina, L., L. Veiga, and M. Hicks, "Rubah: DSU for Java on a stock JVM", ACM Conference on Object-Oriented Programming Languages, Systems, and Applications (OOPSLA 2014): ACM, sep, 2014. Abstract2014-oopsla-pina-core-a.pdf

n/a

Luís, J. E., J. M. Lourenço, and P. A. Lopes, "Suporte Transaccional para o Sistema de Ficheiros Btrfs", InForum 2011: Proceedings of InForum Simpósio de Informática, Coimbra, Universidade do Coimbra, 2011. Abstract2011-inforum-jel.pdf2011-inforum-short-jel.pdf

Em caso de falha abrupta de um sistema, é imperativo garantir a consistência do Sistema de Ficheiros (SF). Actualmente existem várias solu{\c c}ões que visam garantir que tanto os dados como os metadados do SF se encontram num estado consistente, mas que não contemplam a garantia de consistência dos dados do ponto de vista das aplica{\c c}ões. Por exemplo, aplica{\c c}ões que pretendam alterar vários ficheiros de configura{\c c}ão terão de encontrar mecanismos para garantir que, ou todos os ficheiros são devidamente alterados, ou nenhum o é, evitando assim que numa situa{\c c}ão de falha o conteúdo dos ficheiros fique inconsistente. Do ponto de vista da aplica{\c c}ão, pode não ser simples implementar este comportamento sobre um SF t{\'ıpico; e pode também não ser razoável utilizar um Sistema de Gestão de Bases de Dados (SGBD), que oferece propriedades ACID. Neste artigo propomos, testamos e avaliamos uma integra{\c c}ão das propriedades ACID num SF. Partindo do suporte para snapshots do sistema de ficheiros Btrfs, oferece-se uma semântica transaccional às aplica{\c c}ões que operam sobre volumes (sub-árvores) do SF, sem comprometer a semântica POSIX do SF.

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

Sampaio, P., P. Ferreira, and L. Veiga, "Transparent scalability with clustering for Java e-science applications", Proceedings of the 11th IFIP WG 6.1 international conference on Distributed applications and interoperable systems, Berlin, Heidelberg, Springer-Verlag, pp. 270–277, 2011. Abstract2011-dais-sampaio.pdf

The two-decade long history of events relating object-oriented programming, the development of persistence and transactional support, and the aggregation of multiple nodes in a single-system image cluster, appears to convey the following conclusion: programmers ideally would develop and deploy applications against a single shared global memory space (heap of objects) of mostly unbounded capacity, with implicit support for persistence and concurrency, transparently backed by a possibly large number of clustered physical machines.

In this paper, we propose a new approach to the design of OODB systems for Java applications: (O3)2 (pronounced ozone squared). It aims at providing to developers a single-system image of virtually unbounded object space/heap with support for object persistence, object querying, transactions and concurrency enforcement, backed by a cluster of multi-core machines with Java VMs that is kept transparent to the user/developer. It is based on an existing persistence framework (ozone-db) and the feasibility and performance of our approach has been validated resorting to the OO7 benchmark.