Nanos++ RTL

Nanos++ es un entorno de ejecución diseñado para servir como soporte de entorno de ejecución en entornos paralelos. Se utiliza principalmente para dar soporte a OmpSs, una extensión de OpenMP desarrollada en BSC.

Institución:

Institution

Grupo de investigación:

.

Investigador/es:

Xavier Teruel

Nanos++ RTL

Web:

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

Descripción:

Nanos++ proporciona servicios para dar soporte al paralelismo de tareas mediante sincronizaciones basadas en dependencias de datos. El paralelismo de datos también se apoya mediante servicios mapeados sobre su soporte de tareas. Las tareas se implementan como subprocesos a nivel de usuario cuando es posible (actualmente se admiten x86, x86-64, ia64, ppc32 y ppc64).

Nanos++ también proporciona soporte para mantener la coherencia entre diferentes espacios de direcciones (como con GPU o nodos de clúster). Proporciona módulos de caché y directorio de software para este fin.

El objetivo principal de Nanos++ es ser utilizado en la investigación de entornos de programación paralela. Como tal, está diseñado para ser extensible mediante complementos. Actualmente, se pueden agregar complementos de tiempo de ejecución (y seleccionarlos para cada ejecución) para:

Política de programación de tareas
Barrera de subprocesos
Compatibilidad con dispositivos
Formatos de instrumentación
Enfoque de dependencias
Políticas de limitación

Varios de estos complementos ya están disponibles en la distribución de la biblioteca: diferentes políticas de programación y limitación. En particular, compatibilidad con dispositivos para tareas CUDA y ejecución en un entorno de clúster. La compatibilidad con clúster aún no es pública, pero si está interesado, puede contactarnos.

Nanos++ viene con soporte para instrumentación con la biblioteca Extrae que permite obtener trazas para el análisis de rendimiento con la herramienta de visualización Paraver. Con el complemento de instrumentación también puede crear el gráfico de dependencia de su aplicación. Este tipo de herramientas le proporciona información valiosa para comprender mejor las características de su aplicación.

No está destinado a que los programadores escriban aplicaciones que llamen a Nanos++ directamente, la forma preferida es usarlo a través de uno de los modelos de programación compatibles. Para hacer eso, probablemente también necesitará instalar nuestro compilador Mercurium.

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:

Models de programació

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