Programming using message passing or distributed shared memory are the two major parallel programming paradigms on clusters. However, these two models have high programming complexity, produce less maintainable parallel code, and are not suitable for multi-core multiprocessor clusters. While object-oriented programming is dominant in serial programming, it has not been well exploited in parallel programming. In this paper, we propose an innovative automatic parallelization framework that employs past experience to parallelize serial programs and outputs the parallel code in the form of objects. Supported by a data-driven runtime environment, each parallel task is managed as a thread, exploiting the multiple processing cores on a cluster node. Based on this proposed framework, we have implemented a proof-of-concept parallelizer called PJava to parallelize Java code. The performance benefit of this framework is evaluated through case studies by comparing the execution time of the automatically generated PJava code to that of handcrafted JOPI (a Java dialect of MPI) code.
Mendeley saves you time finding and organizing research
Choose a citation style from the tabs below