The Polyhedral Loop Parallelizer: LooPo
LooPo is a project of the
Chair for Programming at the Department of Mathematics and Computer Science of the
University of Passau.
Its purpose is to develop a prototype implementation of loop
parallelization methods based on the polyhedral model. LooPo is part of
the DFG-funded projects RecuR (Regular Concurrency in Recursions)
and, recently, LooPo/HPF (see below).
The first phase, an implementation of space-time mapping methods for
nested FOR loops [Loop
Parallelization in the Polytope Model], has been under way since
March 1994.
The second phase started in mid 1996 and gave LooPo the capability of
dealing with WHILE loops, FOR loops with unknown
bounds at compile time and IF conditions in the loop nest [On the
Space-Time Mapping of WHILE-Loops].
The third phase started in March 1999 and focuses on
generating more efficient target code by using HPF as a back end to
LooPo. The idea is to combine the higher abstraction level of LooPo -
which generates structural information useful for the parallelization -
with the machine level optimizations of HPF compilers. We chose ADAPTOR
from the GMD at St. Augustin among the existing HPF compilers,
since it is free, adaptable and respects the required directives. This
phase is sponsored by the DFG under the name LooPo/HPF.
Simultaneously, we focus on improving the efficiency of our directly
produced parallel code.
With Martin
Griebl as the project manager, up to now, more than 25 students have been
involved in the implementation of different modules.
The LooPo team can be contacted by email at loopo@fmi.uni-passau.de.
Since currently there is no public release available, please contact
us via mail for getting LooPo. The distribution contains the complete
source code of LooPo, written in C++, with a front-end in Tcl/Tk. LooPo
uses only freely available software to enable a wide-spread use. LooPo
runs on Sun workstations under Solaris 2.x, and on PCs
under Linux.
LooPo is being provided "as is" and has been put under the GNU General
Public License. It contains a modified version of the tool PIP by
Paul Feautrier, which has been included by permission.
Furthermore some optional modules are based on additional free tools:
one module for schedule and allocation is based on the Polylib and one
module for index set splitting will be based on Omega.
Details
More information is available about:
The internal information is only available within the
local pool, as well as job offers.
Related Work
(C)opyright
by University of Passau,
Sven Anders
25.07.1997