Pergunta

Em uma palestra sobre programação paralela HPC (para CPUs) discutimos vários modelos disponíveis a partir de Pthreads para OpenMP para MPI e outros como charme ++, x10, upc, capela ....O foco principal foi claramente nos três primeiros.Intrigado pelo tópico que fiz algumas pesquisas por conta própria, mas poderia encontrar fontes, exemplos e discussões principalmente para os primeiros três.Mais tarde, descobri "Ampi", que pode até mesmo executar o aplicativo legado MPI com muitos dos benefícios charme ++ oferece, mas ninguém parece usá-lo.

Por que os outros modelos são tão negligenciados?Em comparação com as alternativas de MPI em vez de MPi, como o charme ++ e a UPC parecem mais convenientes, pois lidam com muito do "trabalho sujo" ordenadamente no fundo.

Foi útil?

Solução

Vou dar-lhe duas razões principais porque o MPI e o OpenMP dominam.

O primeiro é que eles são normas . Existem várias implementações disponíveis e você pode encontrá-los disponíveis em todas as máquinas de supercomputador possíveis. Isso é estritamente relacionado ao conceito de portabilidade : você escreve seu código paralelo e, se você não usar mais nada relacionado a uma máquina específica, você pode executar o mesmo código em todas as máquinas paralelas que você tem disponível.

A segunda razão é a resistência do programador . Com o MPI e o OpenMP cobrindo a programação paralela de memória e memória compartilhada (e você pode até mesmo usá-las simultaneamente, se útil e / ou necessária) por que um programador, especialmente um iniciante no campo, deve gastar seu tempo de aprendizado de novo paralelo Idiomas de programação que não são concedidos para se tornarem padrões? Claro, como você apontou, outras línguas fornecem alguns benefícios, mas a questão é, você investiria seu tempo apostar em algo que pode até mesmo desaparecer totalmente no futuro? Os padrões estão aqui para ficar. De qualquer forma, quanto a este ponto específico, minha humilde opinião é que, se possível, deve gastar algum tempo em diferentes idiomas (não apenas aquelas para programação paralela) porque esta é uma disciplina útil e aprender diferentes paradigmas é sempre benéfico. No entanto, ao ler o seu curriculum vitae para a contratação possível, as pessoas que podem contratá-lo para uma posição estarão em geral interessadas principalmente ao seu conhecimento dos padrões, não ao seu conhecimento de idiomas de nicho (em geral, embora possa haver exceções Claro).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top