Programação paralela multicore híbrida

HMPP ( Hybrid Multicore Parallel Programming ) é um conjunto de ferramentas de desenvolvimento para programação híbrida multicore. HMPP é um produto comercial da empresa CAPS.

Descrição

O pacote HMPP inclui duas ferramentas:

Plataformas suportadas:

Os princípios

A ideia base é: “Para abordar o mundo dos multicore híbridos, o desenvolvedor deve fazer anotações em sua aplicação e não modificá-la. “ Este princípio nasceu de um conjunto de diretivas de compiladores. Que permitem a declaração e chamada de codelets, que podem ser deportados e executados em aceleradores. Eles também indicam as condições para a execução de codelets (síncrono, assíncrono, guarda) e também permitem a especificação de transferências de dados.

Como os codelets estão dinamicamente vinculados ao aplicativo, o HMPP pode, sem a necessidade de recompilação, usar novos aceleradores ou até mesmo versões aprimoradas dos codelets.

Diretrizes HMPP

As diretivas HMPP permitem a execução remota de parte do código, bem como o gerenciamento de transferências de dados de e para aceleradores de hardware.

Reconhecer uma diretiva HMPP

<label>: identificador único para um par (codelet, callite)

<diretiva de tipo>: tipo de diretiva HMPP

<parâmetro da diretiva>: parâmetro da diretiva HMPP

[&]: permite continuar a diretiva em uma nova linha

Linguagem C

#pragma hmpp <label> <directive type> [, <directive parameter>]* [&]

Linguagem Fortran

!hmpp <label> <directive type> [, <directive parameter>]* [&]

Tipo de diretivas HMPP

As principais diretrizes são:


A diretiva codelet permite que uma função seja declarada como um codelet. A diretiva callsite permite a chamada de um codelet no código.


As seguintes diretivas permitem um uso mais avançado (assincronismo):

Referências

Publicações

Veja também

Artigos relacionados

links externos