Premium
Strategies for the efficient exploitation of loop‐level parallelism in Java
Author(s) -
Oliver José,
Guitart Jordi,
Ayguadé Eduard,
Navarro Nacho,
Torres Jordi
Publication year - 2001
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.573
Subject(s) - java , computer science , parallel computing , embedded java , parallelism (grammar) , java concurrency , loop (graph theory) , java annotation , class (philosophy) , programming language , instruction level parallelism , real time java , code (set theory) , set (abstract data type) , mathematics , combinatorics , artificial intelligence
This paper analyzes the overheads incurred in the exploitation of loop‐level parallelism using Java Threads and proposes some code transformations that minimize them. The transformations avoid the intensive use of Java Threads and reduce the number of classes used to specify the parallelism in the application (which reduces the time for class loading). The use of such transformations results in promising performance gains that may encourage the use of Java for exploiting loop‐level parallelism in the framework of OpenMP. On average, the execution time for our synthetic benchmarks is reduced by 50% from the simplest transformation when eight threads are used. The paper explores some possible enhancements to the Java threading API oriented towards improving the application–runtime interaction. Copyright © 2001 John Wiley & Sons, Ltd.