Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where João P. Cachopo is active.

Publication


Featured researches published by João P. Cachopo.


acm sigplan symposium on principles and practice of parallel programming | 2011

Lock-free and scalable multi-version software transactional memory

Sergio Miguel Fernandes; João P. Cachopo

Software Transactional Memory (STM) was initially proposed as a lock-free mechanism for concurrency control. Early implementations had efficiency limitations, and soon obstruction-free proposals appeared, to tackle this problem, often simplifying STM implementation. Today, most of the modern and top-performing STMs use blocking designs, relying on locks to ensure an atomic commit operation. This approach has revealed better in practice, in part due to its simplicity. Yet, it may have scalability problems when we move into many-core computers, requiring fine-tuning and careful programming to avoid contention. In this paper we present and discuss the modifications we made to a lock-based multi-version STM in Java, to turn it into a lock-free implementation that we have tested to scale at least up to 192 cores, and which provides results that compete with, and sometimes exceed, some of todays top-performing lock-based implementations. The new lock-free commit algorithm allows write transactions to proceed in parallel, by allowing them to run their validation phase independently of each other, and by resorting to helping from threads that would otherwise be waiting to commit, during the write-back phase. We also present a new garbage collection algorithm to dispose of old unused object versions that allows for asynchronous identification of unnecessary versions, which minimizes its interference with the rest of the transactional system.


Operating Systems Review | 2010

Cloud-TM: harnessing the cloud with distributed transactional memories

Paolo Romano; Luís E. T. Rodrigues; Nuno Carvalho; João P. Cachopo

One of the main challenges to harness the potential of Cloud computing is the design of programming models that simplify the development of large-scale parallel applications and that allow ordinary programmers to take full advantage of the computing power and the storage provided by the Cloud, both of which made available, on demand, in a pay-only-forwhat-you-use pricing model. In this paper, we discuss the use of the Transactional Memory programming model in the context of the cloud computing paradigm, which we refer to as Cloud-TM. We identify where existing Distributed Transactional Memory platforms still fail to meet the requirements of the cloud and of its users, and we point several open research problems whose solution we deem as essential to materialize the Cloud-TM vision.


Proceedings of the 2nd workshop on Dependable distributed data management | 2008

Versioned transactional shared memory for the FénixEDU web application

Nuno Carvalho; João P. Cachopo; Luís E. T. Rodrigues; António Rito Silva

The FénixEDU system uses a novel infrastructure for web applications based on the Versioned Software Transactional Memory (VSTM) abstraction. The FénixEDU system has been deployed and is currently in operation in different facilities, including the Instituto Superior Técnico where it serves the entire academic community, processing between 1,000,000 and 4,500,000 transactions per day. This paper describes the ongoing work on the infrastructure support, in order to increase its scalability and fault-tolerance. For that purpose we are developing a distributed version of the VSTM, such that multiple application servers can concurrently serve different request and still coordinate in an efficient manner to provide strong consistency guarantees to the applications.


international conference on heterogeneous networking for quality, reliability, security and robustness | 2009

Towards the Integration of Distributed Transactional Memories in Application Servers’ Clusters

Paolo Romano; Nuno Carvalho; Maria Couceiro; Luís E. T. Rodrigues; João P. Cachopo

The transition to multicore architectures has raised the urge to identify novel programming paradigms aimed at simplifying the development of parallel programs.


international symposium on distributed computing | 2013

Practical Parallel Nesting for Software Transactional Memory

Nuno Diegues; João P. Cachopo

Transactional Memory TM provides a strong abstraction to tackle the challenge of synchronizing concurrent tasks that access shared state. Yet, most TMs do not allow a single transaction to contain parallel code. We propose an efficient parallel nesting algorithm to explore existing latent parallelism within a transaction. If this intra-transaction parallelism has reduced conflict probability compared to the inter-transaction parallelism, then it may be worthy to execute less transactions at a given time, but have each one parallelized and using several available cores. We provide practical support for parallel nesting in the first lock-free parallel nesting algorithm with support for multi-versions. Our prototype builds over an available multi-version TM, which we outperform on standard benchmarks by up to 2.8×. We show improvements over parallel nesting alternatives of up to 3.6×.


portuguese conference on artificial intelligence | 2001

Permissive Belief Revision

Maria R. Cravo; João P. Cachopo; Ana C. Cachopo; João P. Martins

We propose a new operation of belief revision, called permissive belief revision. The underlying idea of permissive belief revision is to replace the beliefs that are abandoned by traditional theories with weaker ones, entailed by them, that still keep the resulting belief set consistent. This framework allows us to keep more beliefs than what is usual using existent belief base-based revision theories.


conference on object-oriented programming systems, languages, and applications | 2002

Separation of concerns through semantic annotations

João P. Cachopo

Programming languages provide a limited range of mechanisms to represent concepts. This means that the final program lacks important information that the programmer has about the domain. We propose the use of programmer-extensible program annotations as a means to represent that information about the domain. Using these program annotations we can specify join points by means of semantic properties of the programs, thereby improving the reusability and robustness of aspects.


international conference on software engineering advances | 2010

Predicting Data Access Patterns in Object-Oriented Applications Based on Markov Chains

Stoyan Garbatov; João P. Cachopo

This work aims to create an innovative system for analyzing and predicting the behaviour of object-oriented applications, with respect to the domain objects they manipulate, based on Markov Chains. The results are validated by the execution of the TPC-W and oo7 benchmarks. The oo7 benchmark has been modelled as a stochastic process through Monte Carlo simulations. The system is sufficiently flexible to be applied to a broad spectrum of object-oriented applications. The results are precise, regarding the observed behaviour, and the overheads introduced by the data acquisition are low.


international conference on algorithms and architectures for parallel processing | 2013

Improving Continuation-Powered Method-Level Speculation for JVM Applications

Ivo Anjo; João P. Cachopo

Most applications running on the Java Virtual Machine (JVM) make extensive use of dynamic object-oriented programming features such as inheritance, polymorphism, and encapsulation. This makes them very hard or even impossible to analyze statically, defeating most of the automatic parallelization research done so far for traditional compute-heavy scientific applications. In this paper, we propose and evaluate multiple extensions to the JaSPEx-MLS framework, a speculative parallelization framework that is aimed at irregular applications. This framework works atop a modified JVM and employs Method-Level Speculation (MLS), a task-identification technique that is better suited for irregular applications. Our custom JVM is a modified version of the OpenJDK Hotspot VM that was extended with support for first-class continuations, while still inheriting Hotspots high-performance features such as just-in-time compilation, adaptive optimization, state-of-the-art garbage collection, and support for the latest Java versions. JaSPEx-MLS automatically modifies applications to use Software Transactional Memory (STM) and to allow the spawn and synchronization of speculative tasks in a scheme similar to Fork/Join parallelism. Speculative execution is supported by our novel relaxed STM model, which is tightly coupled with our framework and includes support for integrating with Futures. We present novel techniques for improving MLS runtime task extraction and coordination, describe our implementation of those techniques onto JaSPEx-MLS, and present experimental results showing their impact on both reducing speculative execution overheads and extracting further parallelism from sequential applications.


languages and compilers for parallel computing | 2012

A Software-Based Method-Level Speculation Framework for the Java Platform

Ivo Anjo; João P. Cachopo

With multicore processors becoming ubiquitous on computing devices, the need for both parallelizing existing sequential applications and designing new parallel applications is greatly intensified. With our work, we intend to tackle the former issue.

Collaboration


Dive into the João P. Cachopo's collaboration.

Top Co-Authors

Avatar

Stoyan Garbatov

Technical University of Lisbon

View shared research outputs
Top Co-Authors

Avatar

Ivo Anjo

Instituto Superior Técnico

View shared research outputs
Top Co-Authors

Avatar

Hugo Rito

Instituto Superior Técnico

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Fernando Miguel Carvalho

Instituto Superior de Engenharia de Lisboa

View shared research outputs
Top Co-Authors

Avatar

Luís Pina

Instituto Superior Técnico

View shared research outputs
Top Co-Authors

Avatar

Paolo Romano

Instituto Superior Técnico

View shared research outputs
Top Co-Authors

Avatar

Ana C. Cachopo

Instituto Superior Técnico

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge