Previous Work

In 1999, the Barcelona Java Suite (BJS) started their activities under CEPBA. The BJS was a platform for doing research on scheduling mechanisms and policies oriented towards the efficient execution of multithreaded Java applications on parallel platforms, in which the interactions and coordination between mechanisms and policies at different levels (application, compiler, threads library and kernel) was studied. The BJS made use of components previously developed at the CEPBA. The environment integrated techniques and tools proposed in different research frameworks, enabling the exploitation of their combined potential and the development of new algorithms and ideas. Mainly the work was devised across 3 lines:

Java Extensions: The use of Java for HPC faced a number of problems that were subject of research. One of them was related with the lack of programming models for the specification of parallelism. This makes difficult the parallelization of Java applications because it implies the explicit management of the parallelism/synchronization. The BJS project proposed the automatic restructuring of Java programs for parallelism exploitation based either on code annotations or compiler-driven analysis. The last one was based on the JOMP specification, an OpenMP-like interface proposed by EPCC.

Cooperation between Operating System and JVM:Other problem encountered when using Java in HPC was the performance degradation produced when parallel Java applications were executed in a multiprogrammed environment. The two main issues that lead to this degradation can be summarized as follows: (a) The Java runtime environment didn’t allow applications to have control on how Java threads map onto kernel threads and to make suggestions about the scheduling of theses kernel threads.(b) The Java runtime environment didn’t inform the applications about the dynamic status of the underlying system, so that the application cannot adapt its execution to these characteristics. The BJS project proposed the Java Nanos Environment (JNE), that provided additional mechanisms to improve the communications between the applications and the execution environment, thus allowing the applications to collaborate in thread management. The JNE was based in the execution of Java applications on the NANOS environment, which has been developed at CEPBA.

Performance Analysis and Visualization Framework Framework:Performance analysis and visualization of parallel applications was necessary in order to tune their behaviour on the target parallel systems and JVM. The BJS project developed  the Java Instrumentation Suite (JIS), a dynamic instrumentation package to trace Java applications. JIS generated traces that were visualized with Paraver. The combined use of JIS and Paraver offered an enormous analysis potential, both qualitative and quantitative.


Past Contributors:
Joan Garcia (Undergraduate Student)
Enric Tejedor (Undergraduate Student)
Lídia Montero (Associate Professor, Dept. EIO, UPC)
David Garcia (Graduate Student)
Jordi Palau (Undergraduated Project Assistant, UPC)
José Oliver (Graduate Project Assistant, UPC)
Xavier Martorell (Associated Professor, CEPBA-UPC)
J. Mark Bull (Edinburgh Parallel Computing Center - EPCC)
Javier Bartolomé (Undergraduated Project Assistant, UPC)
Liangxiao Zhu Wang (Undergraduate Student)
Juan Antonio Pérez (Undergraduated Project Assistant, UPC)
Marc Lopez (Undergraduated Project Assistant, UPC)
Joan Delgado (Undergraduated Project Assistant, UPC)
Ignasi Mieza (Undergraduated Project Assistant, UPC)
Manuel López (Undergraduated Project Assistant, UPC)
Xavier Aguilar (Undergraduated Project Assistant, UPC)