Parallel computing systems have become omnipresent in recent years through the penetration of multi-core processors in all IT markets, ranging from small scale embedded systems to large scale supercomputers. These systems have a profound effect on software development in science as most applications are not designed to exploit multiple cores. The complexity in developing and optimizing parallel programs will rise sharply in the future, as many-core computing systems become highly heterogeneous in nature, integrating general purpose cores with accelerator cores. Modern and in particular future parallel computing systems will be so complex that it appears to be impossible for any human programmer to effectively parallelize and optimize programs across architectures.
The Insieme compiler project at the University of Innsbruck was initiated to address the multicore software challenge by developing a source-to-source compiler for C/C++ using multiple programming substrates including OpenMP, MPI and OpenCL that supports portable parallel abstractions for heterogeneous multi-core architectures.

The major goals of the Insieme parallelizing compiler include: