iCetusABOUT THE PROJECT

Our Motivation:

Today's computers are all Multicores. With parallelization techniques, one can convert sequential code into multi-threaded or vectorized code to simultaneously use multiple processors' power in a modern shared-memory Architecture.

Our Goal:

Our aim for the iCetus tool is to involve the user in the decisions that compilers struggle with. User feedback is being factored into program parallelization. To that end, iCetus provides the user with information about how the compiler analyzes, transforms, and parallelizes the program, as well as displaying the speedup gained from applying such optimization to the code. It offers a user interface for controlling program parallelization, based on this information. Doing so combines user knowledge and classical compiler capabilities.

iCetus can be used for self-paced learning of different parallelization techniques.

Cetus, the Compiler Engine:

The underneath compiler infrastructure used in this project is Cetus. Cetus is a source-to-source compiler research infrastructure supported by the National Science Foundation(NSF). Cetus assists domain experts and researchers in efficiently parallelizing their existing C/C++ applications using OpenMP parallel programming model. It represents one of several software infrastructures that support research and development of program analysis, optimization, and translation techniques.