A Parallelizing Source-to-Source Compiler for C Programs

The Cetus tool provides an infrastructure for research on multi-core compiler optimizations that emphasizes automatic parallelization. The compiler infrastructure, which targets C programs, supports source-to-source transformations, is user oriented and easy to handle, and provides the most important parallelization passes as well as the underlying enabling techniques. You can download the latest version of Cetus from the Download page .

Cetus is written in Java and targets C programs. It takes an input program written in C and automatically parallelizes it (annotates the input program with OpenMP directives).

Cetus started as a class project in the 1990s and grew with support from Purdue University and from the National Science Foundation (NSF), as well as through countless volunteer projects by enthusiastic students. While many Version-1 releases were distributed via the Purdue download site, Version 2 is being distributed by the PAROT Group at the University of Delaware through this website. The official GitHub repository of the Cetus codebase is now at : Cetus on Github . All of the bug fixes and added features in Cetus 2.0, have been listed in the Cetus 2.0 Release notes.

Features:

  1. Automatic translation of a sequential C program to an OpenMP annotated program
  2. An easy to use and interactive Graphical User Interface (GUI)
  3. Application performance evaluation
  4. Provides all the relevant program analysis and transformation techniques
  5. For compiler developers, it’s easy to write your own passes or extend existing passes in Cetus

Intended Audience:

  1. Domain researchers – who intend to optimize their applications written in C
  2. Compiler pass writers
  3. Software tool developers – who intend to evaluate the various features in Cetus
  4. Educators who intend to use Cetus as a tool to demonstrate the various techniques that enable automatic parallelization.