Il y a une version série de l'algorithme, une version OpenMP, une version coarrays, une version avec la fonction co_sum(). En fait la programmation parallèle en Fortran>=2008 ne se limite pas aux coarrays, qui sont des sortes de méta-tableaux qui permettent d'accéder aux données d'autres images (threads). On peut lancer plusieurs images en parallèle et utiliser des co-routines comme co_sum qui permet de sommer les résultats des différentes images : cette version-là est assez similaire à la version OpenMP et les performances pas très loin.
[^] # Re: coArrays vs. OpenMP
Posté par vmagnin (site web personnel, Mastodon) . En réponse au journal Encore des nouvelles de Fortran. Évalué à 2.
Je commence à apprendre, avec mes premières modestes expérimentations ici :
https://github.com/vmagnin/exploring_coarrays
Il y a une version série de l'algorithme, une version OpenMP, une version coarrays, une version avec la fonction
co_sum(). En fait la programmation parallèle en Fortran>=2008 ne se limite pas aux coarrays, qui sont des sortes de méta-tableaux qui permettent d'accéder aux données d'autres images (threads). On peut lancer plusieurs images en parallèle et utiliser des co-routines commeco_sumqui permet de sommer les résultats des différentes images : cette version-là est assez similaire à la version OpenMP et les performances pas très loin.Mais ça demande à être exploré. Ca ne se passe pas toujours comme on l'imagine... J'ai ouvert une discussion ici :
https://fortran-lang.discourse.group/t/learning-coarrays-collective-subroutines-and-other-parallel-features-of-modern-fortran/1146