rsnt_translations
56,430
edits
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
=Introduction= | =Introduction= | ||
Le terme ''pthreads'' provient de [https://fr.wikipedia.org/wiki/Threads_POSIX POSIX threads], l'une des premières techniques de parallélisation. Tout comme les autres outils faisant usage de fils d'exécution, pthreads s'emploie dans un contexte de mémoire partagée et donc habituellement sur un seul nœud où le nombre de fils actifs est limité aux cœurs CPU disponibles sur ce nœud. On utilise pthreads dans plusieurs langages de programmation, mais surtout en C. En Fortran, la parallélisation de fils d'exécution se fait préférablement avec[[OpenMP/fr|OpenMP]]. En C++, les outils de la bibliothèque [http://www.boost.org Boost] issus de la [https://fr.wikipedia.org/wiki/C%2B%2B11 norme C̝11] sont mieux adaptés à la programmation orientée-objet. | Le terme ''pthreads'' provient de [https://fr.wikipedia.org/wiki/Threads_POSIX POSIX threads], l'une des premières techniques de parallélisation. Tout comme les autres outils faisant usage de fils d'exécution, pthreads s'emploie dans un contexte de mémoire partagée et donc habituellement sur un seul nœud où le nombre de fils actifs est limité aux cœurs CPU disponibles sur ce nœud. On utilise pthreads dans plusieurs langages de programmation, mais surtout en C. En Fortran, la parallélisation de fils d'exécution se fait préférablement avec [[OpenMP/fr|OpenMP]]. En C++, les outils de la bibliothèque [http://www.boost.org Boost] issus de la [https://fr.wikipedia.org/wiki/C%2B%2B11 norme C̝11] sont mieux adaptés à la programmation orientée-objet. | ||
La bibliothèque pthreads a servi de base aux approches de parallélisation qui ont suivi, dont OpenMP. On peut voir pthreads comme étant un ensemble d'outils primitifs offrant des fonctionnalités élémentaires de parallélisation, contrairement aux APIs conviviales et de haut niveau comme OpenMP. Dans le modèle pthreads, les fils sont générés dynamiquement pour exécuter des sous-procédures dites légères qui exécutent les opérations de façon asynchrone; ces fils sont ensuite détruits après avoir réintégré le processus principal. Puisque tous les fils d'un même programme résident dans le même espace mémoire, il est facile de partager les données à l'aide de variables globales, contrairement à une approche distribuée comme [[MPI]]; toute modification aux données partagées risque cependant de créer des [https://en.wikipedia.org/wiki/Race_condition situations de compétition] (''race conditions''). | La bibliothèque pthreads a servi de base aux approches de parallélisation qui ont suivi, dont OpenMP. On peut voir pthreads comme étant un ensemble d'outils primitifs offrant des fonctionnalités élémentaires de parallélisation, contrairement aux APIs conviviales et de haut niveau comme OpenMP. Dans le modèle pthreads, les fils sont générés dynamiquement pour exécuter des sous-procédures dites légères qui exécutent les opérations de façon asynchrone; ces fils sont ensuite détruits après avoir réintégré le processus principal. Puisque tous les fils d'un même programme résident dans le même espace mémoire, il est facile de partager les données à l'aide de variables globales, contrairement à une approche distribuée comme [[MPI]]; toute modification aux données partagées risque cependant de créer des [https://en.wikipedia.org/wiki/Race_condition situations de compétition] (''race conditions''). |