<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Le traitement en parallèle sous Linux</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.68.1" name="generator"><meta name="description" content=" Le traitement en parallèle (Parallel Processing) se réfère à l'idée d'accélérer l'exécution d'un programme en divisant celui-ci en plusieurs fragments pouvant être exécutés simultanément, chacun sur son propre processeur, un programme exécuté sur N processeurs pouvant alors fonctionner N fois plus vite qu'il le ferait en utilisant un seul processeur. Ce document traite des quatre approches de base du traitement en parallèle accessibles aux utilisateurs de Linux : les systèmes Linux SMP, les grappes (cluster) de systèmes Linux mis en réseau, l'exécution en parallèle avec utilisation des instructions multimédia (ex : MMX), et l'utilisation des processeurs secondaires embarqués dans une machine fonctionnant sous Linux. "><link rel="start" href="index.html" title="Le traitement en parallèle sous Linux"><link rel="next" href="ar01s01.html" title="1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Le traitement en parallèle sous Linux</th></tr><tr><td align="left" width="20%"> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s01.html">Suivant</a></td></tr></table><hr></div><div class="article" lang="fr"><div class="titlepage"><div><div><h1 class="title"><a name="N10001"></a>Le traitement en parallèle sous Linux</h1></div><div><h3 class="subtitle"><i> Version française du <span class="foreignphrase"><em class="foreignphrase">Parallel Processing HOWTO</em></span> </i></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Hank</span> <span class="surname">Dietz</span></h3><code class="email"><<a href="mailto:hankd CHEZ engr POINT uky POINT edu">hankd CHEZ engr POINT uky POINT edu</a>></code></div></div><div><p class="othercredit"><span class="contrib">Adaptation française</span> : <span class="firstname">Dominique</span> <span class="surname">van den Broeck</span></p></div><div><p class="othercredit"><span class="contrib">Relecture de la version française</span> : <span class="firstname">Isabelle</span> <span class="surname">Hurbain</span></p></div><div><p class="othercredit"><span class="contrib">Préparation de la publication de la v.f.</span> : <span class="firstname">Jean-Philippe</span> <span class="surname">Guérard</span></p></div><div><p class="releaseinfo">Version : 980105.fr.1.1</p></div><div><p class="pubdate">4 septembre 2005</p></div><div><div class="revhistory"><table summary="Revision history" width="100%" border="1"><tr><th colspan="3" valign="top" align="left"><b>Historique des versions</b></th></tr><tr><td align="left">Version 980105.fr.1.1</td><td align="left">2005-09-04</td><td align="left">DV</td></tr><tr><td colspan="3" align="left">Quelques améliorations mineures de la version française</td></tr><tr><td align="left">Version 980105.fr.1.0</td><td align="left">2004-09-13</td><td align="left">DV, IH, JPG</td></tr><tr><td colspan="3" align="left">Première traduction française</td></tr><tr><td align="left">Version 980105</td><td align="left">1998-01-05</td><td align="left">HGD</td></tr><tr><td colspan="3" align="left">Version originale</td></tr></table></div></div><div><div class="abstract"><p class="title"><b>Résumé</b></p><p> Le <span class="emphasis"><em>traitement en parallèle</em></span> (« <span class="quote"><span class="foreignphrase"><em class="foreignphrase">Parallel Processing</em></span></span> ») se réfère à l'idée d'accélérer l'exécution d'un programme en divisant celui-ci en plusieurs fragments pouvant être exécutés simultanément, chacun sur son propre processeur, un programme exécuté sur <span class="emphasis"><em>N</em></span> processeurs pouvant alors fonctionner <span class="emphasis"><em>N</em></span> fois plus vite qu'il le ferait en utilisant un seul processeur. Ce document traite des quatre approches de base du traitement en parallèle accessibles aux utilisateurs de Linux : les systèmes Linux SMP, les grappes (« <span class="quote"><span class="foreignphrase"><em class="foreignphrase">cluster</em></span></span> ») de systèmes Linux mis en réseau, l'exécution en parallèle avec utilisation des instructions multimédia (ex : MMX), et l'utilisation des processeurs secondaires embarqués dans une machine fonctionnant sous Linux. </p></div></div></div><hr></div><div class="toc"><p><b>Table des matières</b></p><dl><dt><span class="sect1"><a href="ar01s01.html">1. Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s01.html#N1009A">1.1. Le traitement en parallèle correspond-il à mes besoins ?</a></span></dt><dt><span class="sect2"><a href="ar01s01.html#N100C3">1.2. Terminologie</a></span></dt><dt><span class="sect2"><a href="ar01s01.html#N1021D">1.3. Algorithme d'exemple</a></span></dt><dt><span class="sect2"><a href="ar01s01.html#N1023D">1.4. Structure du document</a></span></dt><dt><span class="sect2"><a href="ar01s01.html#N1027A">1.5. Note du traducteur</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s02.html">2. Linux sur SMP</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s02.html#N102FD">2.1. L'électronique SMP</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#N1034E">2.2. Introduction à la programmation en mémoire partagée</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#N10564">2.3. bb_threads</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#N10601">2.4. LinuxThreads</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#N1066C">2.5. La mémoire partagée de System V</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#N106D8">2.6. Projection mémoire (<span class="foreignphrase"><em class="foreignphrase">Memory Map Call</em></span>)</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s03.html">3. <span class="foreignphrase"><em class="foreignphrase">Clusters</em></span> de systèmes Linux</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s03.html#N1071A">3.1. Pourquoi un <span class="foreignphrase"><em class="foreignphrase">cluster</em></span> ?</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N1078F">3.2. Le matériel réseau</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N10E23">3.3. Interface Logicielle Réseau</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N10EEF">3.4. PVM (« <span class="quote"><span class="foreignphrase"><em class="foreignphrase">Parallel Virtual Machine</em></span></span> »)</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N10F38">3.5. MPI (« <span class="quote"><span class="foreignphrase"><em class="foreignphrase">Message Passing Interface</em></span></span> »)</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N10FF0">3.6. AFAPI (« <span class="quote"><span class="foreignphrase"><em class="foreignphrase">Aggregate Function API</em></span></span> »)</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N11022">3.7. Autres bibliothèques de gestion de <span class="foreignphrase"><em class="foreignphrase">clusters</em></span></a></span></dt><dt><span class="sect2"><a href="ar01s03.html#N11073">3.8. Références générales aux <span class="foreignphrase"><em class="foreignphrase">clusters</em></span></a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s04.html">4. SIMD <span class="foreignphrase"><em class="foreignphrase">Within A Register</em></span> : SWAR (Ex : utilisation de MMX)</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s04.html#N111DA">4.1. Quels usages pour le SWAR ?</a></span></dt><dt><span class="sect2"><a href="ar01s04.html#N1121A">4.2. Introduction à la programmation SWAR</a></span></dt><dt><span class="sect2"><a href="ar01s04.html#N113E5">4.3. SWAR MMX sous Linux</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s05.html">5. Processeurs auxiliaires des machines Linux</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s05.html#N11443">5.1. Un PC Linux est une bonne station d'accueil</a></span></dt><dt><span class="sect2"><a href="ar01s05.html#N1145E">5.2. Avez-vous essayé le DSP ?</a></span></dt><dt><span class="sect2"><a href="ar01s05.html#N114A8">5.3. Calcul à l'aide des FPGA et circuits logiques reconfigurables</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s06.html">6. D'intérêt général</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s06.html#N114D6">6.1. Compilateurs et langages de programmation</a></span></dt><dt><span class="sect2"><a href="ar01s06.html#N11635">6.2. Question de performance</a></span></dt><dt><span class="sect2"><a href="ar01s06.html#N11662">6.3. Conclusion — C'est fini !</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s01.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%"> </td><td align="center" width="20%"> </td><td valign="top" align="right" width="40%"> 1. Introduction</td></tr></table></div></body></html>