Mercurium

Mercurium is a source-to-source compilation infrastructure aimed at fast prototyping. Current supported languages are C99, C++11 and Fortran 95.

Institution:

Institution

Research Group:

.

Researcher/s:

Roger Ferrer Ibáñez, Sara Royuela Alcázar, Sergi Mateo Bellido, Diego Caballero De Gea

Mercurium

Website:

https://github.com/bsc-pm/mcxx

Description:

Mercurium is a source-to-source compilation infrastructure aimed at fast prototyping. Current supported languages are C99, C++11 and Fortran 95. Mercurium is mainly used along with the Nanos++ runtime to implement projects for OmpSs and OpenMP but since it is quite extensible it has been used in other projects including (but not limiting to) Cell Superscalar, ACOTES, software transactional memory, vectorization and correctness.

Existing compilation infrastructures for production are usually too big to tackle in an academic environment where manpower and resources are limited. Mercurium has been designed with the goal to be productive in a fast prototyping context of new ideas requiring compiler analyses and transformations.

Mercurium architecture provides a rich shared internal representation for C, C++ and Fortran and can be extended by means of compiler phases implemented as plugins. Code transformations can easily be implemented using source snippets that are integrated in the intermediate representation of the compiler. A more traditional mechanism manually building nodes is also available for more advanced transformations.

Mercurium has built-in several single-source features aimed at heterogeneous computing: from a single file the compiler can generate several files that can be compiled with other backend compiler and finally integrated into a single executable. This mechanism available since the Cell architecture has been exploited also for CUDA and other manycore heterogeneous clusters.

Problem:

N/A

Solution:

N/A

Aplication areas:

N/A

Novelty:

N/A

Protection:

LGPL License (Version 3.0)

Target market:

N/A

Keywords:

Programming Models

TRL: N/A

CRL: N/A

BRL: N/A

IPRL: N/A

TmRL: N/A

FRL: N/A

More information

if you want to know more about this project do not hesitate to contact us

Contact us