Publications

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

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

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

Thesis
Rameshan, N., Efficient Thread Scheduling for Distributed Java VM, : Instituto Superior Técnico, 2012. Abstract2012-msc-ist-rameshan.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.