Question

Dans une conférence sur la programmation parallèle HPC (pour les CPU), nous avons discuté de divers modèles disponibles chez Pthreads à OpenMP à MPI et d'autres personnes comme Charm ++, X10, UPC, chapelle ....L'objectif principal était clairement sur les trois premiers.Intrigué par le sujet que j'ai fait des recherches seuls, mais j'ai pu trouver des sources, des exemples et des discussions principalement pour ces trois premiers.Plus tard, j'ai découvert "AMPI" qui peut même exécuter une application MPI héritée avec de nombreuses offres de charme ++ avantages, mais personne ne semble l'utiliser.

Pourquoi les autres modèles sont-ils si négligés?Par rapport aux alternatives de MPI plutôt brut comme Charm ++ et UPC semblent plus pratiques car elles gèrent beaucoup le "travail sale" soigneusement à l'arrière-plan.

Était-ce utile?

La solution

Je vais vous donner deux raisons principales pour lesquelles MPI et OpenMP dominent.

Le premier est qu'ils sont standards . Il existe plusieurs implémentations disponibles et vous pouvez être sûr de les trouver disponibles sur chaque machine de supercalculateur possible. Ceci est strictement lié au concept de portabilité : vous écrivez votre code parallèle et, si vous n'utilisez rien d'autre lié à une machine particulière, vous pouvez exécuter le même code sur toutes les machines parallèles que vous ont disponible.

La deuxième raison est la résistance du programmeur . Avec MPI et OpenMP couvrant à la fois une programmation parallèle passant et parallèle à la mémoire partagée (et vous pouvez même les utiliser simultanément si utile et / ou requis) Pourquoi un programmeur, en particulier un débutant sur le terrain, devrait passer son temps à apprendre de nouveau parallèle Les langages de programmation qui ne sont pas accordés pour devenir des normes? Bien sûr, comme vous l'avez souligné, d'autres langues offrent des avantages, mais la question est de savoir votre temps de parier votre temps sur quelque chose qui pourrait même disparaître complètement à l'avenir? Les normes sont là pour rester. Quoi qu'il en soit, sur ce point spécifique, mon opinion humble est que, si possible, il faudrait plutôt passer du temps sur différentes langues (non seulement celles-ci pour une programmation parallèle), car il s'agit d'une discipline utile et d'apprentissage différents paradigmes est toujours bénéfique. Cependant, lors de la lecture de votre curriculum vitae pour un recrutement possible, les personnes qui peuvent vous engager pour une position seront généralement intéressées par votre connaissance des normes, pas à votre connaissance des langues de niche (en général, même s'il pourrait y avoir des exceptions bien sûr).

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top