Mercurium

Mercurium es una infraestructura de compilación de código fuente a código fuente destinada a la creación rápida de prototipos. Los lenguajes compatibles actualmente son C99, C++11 y Fortran 95.

Institución:

Institution

Grupo de investigación:

.

Investigador/es:

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

Mercurium

Web:

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

Descripción:

Mercurium es una infraestructura de compilación de código fuente a código fuente destinada a la creación rápida de prototipos. Los lenguajes compatibles actualmente son C99, C++11 y Fortran 95. Mercurium se utiliza principalmente junto con el entorno de ejecución Nanos++ para implementar proyectos para OmpSs y OpenMP, pero como es bastante extensible, se ha utilizado en otros proyectos, incluidos (entre otros) Cell Superscalar, ACOTES, memoria transaccional de software, vectorización y corrección.

Las infraestructuras de compilación existentes para producción suelen ser demasiado grandes para abordarlas en un entorno académico donde la mano de obra y los recursos son limitados. Mercurium se ha diseñado con el objetivo de ser productivo en un contexto de creación rápida de prototipos de nuevas ideas que requieren análisis y transformaciones del compilador.

La arquitectura de Mercurium proporciona una rica representación interna compartida para C, C++ y Fortran y se puede ampliar mediante fases del compilador implementadas como complementos. Las transformaciones de código se pueden implementar fácilmente utilizando fragmentos de código fuente que se integran en la representación intermedia del compilador. También está disponible un mecanismo más tradicional de creación manual de nodos para transformaciones más avanzadas.

Mercurium ha incorporado varias funciones de código único destinadas a la computación heterogénea: a partir de un único archivo, el compilador puede generar varios archivos que se pueden compilar con otros compiladores backend y, finalmente, integrar en un único ejecutable. Este mecanismo, disponible desde la arquitectura Cell, también se ha utilizado para CUDA y otros clústeres heterogéneos de varios núcleos.

Problema:

N/A

Solución:

N/A

Áreas de aplicación:

N/A

Novedad:

N/A

Protección:

LGPL License (Version 3.0)

Mercado objetivo:

N/A

Keywords:

Modelos de programación

TRL: N/A

CRL: N/A

BRL: N/A

IPRL: N/A

TmRL: N/A

FRL: N/A

Más información

Si quieres saber más sobre este proyecto no dudes en contactarnos

Contáctanos