Abstract:In this paper we show how implicit parallelism in Java programs can be made explicit by a restructuring compiler using the multi‐threading mechanism of the language. In particular, we focus on automatically exploiting implicit parallelism in loops and multi‐way recursive methods. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After compilation of the transformed Java program into byte‐code, speedup can be obtained on any platform on which the Java… Show more
“…Practical approaches for parallelizing programs include parallelizing compilers [9,3]. Parallelizing compilers focuses on loop parallelization and do not consider arbitrary pieces of code.…”
Abstract. We show how, given a program and its separation logic proof, one can parallelize and optimize this program and transform its proof simultaneously to obtain a proven parallelized and optimized program. To achieve this goal, we present new proof rules for generating proof trees and a rewrite system on proof trees.
“…Practical approaches for parallelizing programs include parallelizing compilers [9,3]. Parallelizing compilers focuses on loop parallelization and do not consider arbitrary pieces of code.…”
Abstract. We show how, given a program and its separation logic proof, one can parallelize and optimize this program and transform its proof simultaneously to obtain a proven parallelized and optimized program. To achieve this goal, we present new proof rules for generating proof trees and a rewrite system on proof trees.
“…Exceptions that may be thrown during the parallel execution of the JavaSpMT code are handled by catching the exception in the corresponding Java thread's run method [1]. This caught exception may be thrown back to the main thread of execution if necessary.…”
Section: Exception Handlingmentioning
confidence: 99%
“…JAVAR parallelization tool. JAVAR [1] parallelizes serial Java programs using standard Java multithreading and synchronization primitives. It can automatically parallelize loops with static data-dependences as well as multiway recursive methods.…”
Section: Comparison To Related Workmentioning
confidence: 99%
“…Other parallelization tools. Among the different existing Java parallelization techniques [1,2,3,6,7,8,10,11], High Performance Java [1], Do! [10], and the Tiny Data-Parallel language [6] target parallelization on shared-memory architectures.…”
Section: Comparison To Related Workmentioning
confidence: 99%
“…The other approaches [2,3,7,8,11] attempt to improve performance of Java programs in a distributed en- vironment. JavaSpMT targets shared-memory architectures and is similar to the JAVAR tool [1] in that the parallelization is achieved by a Java source code transformation using Java multithreading and a library that is implemented entirely in Java. However, the speculative execution combined with run-time data-dependence checking make our approach unique.…”
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.