Version 45 (modified by groessli, 9 years ago) (diff)


The Polyhedral Loop Parallelizer: LooPo

LooPo is a project of the Chair for Programming at the Department of Informatics and Mathematics 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 focused 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 was sponsored by the DFG under the name LooPo/HPF. Simultaneously, we focused on improving the efficiency of our directly produced parallel code. Recent research efforts in LooPo include code generation for the Grid based on a master-worker scheme and for multicore processors like modern CPUs and GPUs.

LooPo development has been lead by Martin Griebl for many years. Since 2007, the project is managed by Armin Größlinger and Michael Classen. More than 25 students have been involved in the implementation of different modules. The LooPo team can be contacted by email at

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? and a new frontend in Java (in development). LooPo uses only freely available software to enable a wide-spread use. LooPo is known to run on Linux, Solaris and FreeBSD (and probably other *nix operating systems).

LooPo is being provided "as is" and has been put under the GNU General Public License. It contains Piplib (by Paul Feautrier) and the CLooG code generator (by Cédric Bastoul) and relies on externally installed Polylib (required) and Omega (optional).

Checking out LooPo via Subversion

Visit the Wiki page explaining how to checkout and commit using Subversion.

A snapshot of LooPo is available at LooPoSnapshot.

Logging in to LooPo's Trac system

Trac accounts for the members of the LooPo team have been created with the same user name and password as the respective Infosun account. The passwords of the trac accounts are not automatically synchronized with the Infosun accounts after their creation. If you have problems logging in, please contact Armin Größlinger.

Note: LooPo's Trac is now only accessible through HTTPS. Unfortunately, most browsers do not recognise the issuing certificate authorities. You can import the root CA into your browser from at "Wurzelzertifikat".

Mailing List for Tickets

All ticket creation/modification actions are not only logged by Trac but are also sent by email to the ticket creator, the ticket owner and the mailing list If you want to stay up-to-date, you can subscribe to the list at Note that you will get updates concerning all tickets. It may take up to 10 minutes before mail sent to the list is actually delivered.

Starting Points for using Trac

For a complete list of local wiki pages, see TitleIndex.



HOC / Master-Worker