This paper analyzes the overheads incurred in the exploitation of loop-leve
l parallelism using Java Threads and proposes some code transformations tha
t minimize them. The transformations avoid the intensive use of Java Thread
s and reduce the number of classes used to specify the parallelism in the a
pplication (which reduces the time for class loading). The use of such tran
sformations results in promising performance gains that may encourage the u
se 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 pape
r explores some possible enhancements to the Java threading API oriented to
wards improving the application-runtime interaction. Copyright (C) 2001 Joh
n Wiley & Sons, Ltd.