preview

2 Systems’ Summaries 2.1 The Jrpm System Chen and Olukotun (2003) introduce a new system called

Decent Essays

2 Systems’ Summaries
2.1 The Jrpm System
Chen and Olukotun (2003) introduce a new system called Java Runtime Parallelizing Machine (Jrpm). It is dynamically parallelizing sequential Java Binaries’ programs at runtime. The Jrpm system is based on the Hydra Chip Multiprocessor (CMP), which has four processors on a single chip and that supports thread-level speculation (TLS). The system uses a hardware profiler to detect the dependency behavior of original source code and thus, finding the most effective chunk of codes to be parallelized. Chen and Olukotun (2003) focus on parallelizing loop iterations and they use Java Virtual Machine (JVM) to insert the new thread commands without affecting the original source code. Since Jrpm analyzes the …show more content…

It ensures read-after-write (RAW), write-after-read (WAR) and write- after-write (WAW) dependencies. Thus, if the new code violates any of the previous dependencies, it would have to take the following courses of action: in RAW restart the thread, in WAR speculate write buffer and commit, or only write buffer in WAW. CMP Hydra with TLS tracks the inter-processor data dependency by attaching tag bits to L1 caches’ data.
In the thread decompositions stage, Chen and Olukotun (2003) use Speculative Thread Loop (STL) which divides the loop iterations among threads. Each iteration in the loop will be executed by a thread. The RAW dependency in inter-thread data limits the parallelization process by causing large overhead when a RAW violation occurs in the end of loops. In addition, hardware limitation affects the process of parallelization when the buffer overflows and the system needs to stall. The local variables’ dependencies in the loop also add additional overhead. One loop level can be active at any given moment if the code has nested loops which limit the gained speed up of the thread speculation process as well.
The process of decomposition is done dynamically using the hardware profiler Tracer for Extracting Speculative Threads (TEST). The hardware profiler plays an important role in their system. It is based on collecting the timing of the data’s “event timestamps” of sequential code

Get Access