26.06.2013 Views

Le calcul parallèle - Le CETMEF

Le calcul parallèle - Le CETMEF

Le calcul parallèle - Le CETMEF

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

communication. Elle facilite la répartition de charge mais entraîne un surcoût important de communication<br />

et laisse peu d'opportunités d'augmenter les performances.<br />

Une granularité forte, à l'inverse, signifie qu'il y a relativement peu de communication en comparaison<br />

avec les périodes de <strong>calcul</strong>. Cela laisse plus d'opportunités d'augmenter les performances mais la<br />

répartition de la charge est beaucoup moins évidente à mettre en place.<br />

<strong>Le</strong>s limites des applications <strong>parallèle</strong>s<br />

La loi d'Amdahl montre que le gain maximum que l'on peut avoir lors que l'on développe une application<br />

<strong>parallèle</strong> par rapport à la même application mais non <strong>parallèle</strong> est fonction du pourcentage du code qu'il<br />

est possible de rendre <strong>parallèle</strong>.<br />

Soit P le pourcentage de code parallélisable, le gain maximum est 1 / ( 1 - P )<br />

Soit N le nombre de processeurs et S le pourcentage de code non <strong>parallèle</strong>, le gain est 1 / ( P/N + S)<br />

On voit bien que plus on ajoute de processeurs, plus le gain sera élevé. Mais ceci n'est que la limite<br />

théorique, elle ne prend pas en compte les problèmes soulevés par la mise en <strong>parallèle</strong> des <strong>calcul</strong>s<br />

(communications, synchronisations, dépendances, ...).<br />

De plus, les applications <strong>parallèle</strong>s sont plus complexes à développer. En effet, les exécutions<br />

simultanées et les flots de données entre ces exécutions ne sont pas des plus faciles à appréhender.<br />

<strong>Le</strong> choix de la technique dépend donc fortement du <strong>calcul</strong> à effectuer en fonction des propriétés de ce<br />

dernier. Il faut trouver un compromis entre la communication entre les sites qui est souvent coûteuse et la<br />

taille des données du <strong>calcul</strong>.<br />

<strong>Le</strong>s facteurs limitant la vitesse d'un <strong>calcul</strong> <strong>parallèle</strong> sont :<br />

• <strong>Le</strong> démarrage de la tâche<br />

• <strong>Le</strong>s synchronisations<br />

• <strong>Le</strong>s communications des données<br />

• <strong>Le</strong>s limites fixées par le compilateur, les bibliothèques, les outils, le système d'exploitation.<br />

Conclusion<br />

Comme je l'ai dit à plusieurs reprises, la conception d'un système de <strong>calcul</strong> <strong>parallèle</strong> et distribué est très<br />

fortement influencée par la ou les applications que devra faire fonctionner ce système. Mais une fois que<br />

l'architecture matérielle a été choisie, il convient également de bien choisir les algorithmes qui seront<br />

utilisés. En effet, certains mécanismes sont plus efficaces sur des architectures bien particulières.<br />

Par exemple, une application programmée à l'aide de threads sera plus adaptée sur des processeurs à<br />

mémoire partagée puisque les threads partagent le même espace mémoire.<br />

Si le volume des données est trop important pour tenir dans la mémoire d'un des processeurs, il est plus<br />

judicieux, si cela est possible, de la répartir sur les différents processeurs du système. Dans ce cas, les<br />

systèmes à base de mémoire distribuée seront à privilégier pour mieux répartir le volume des données<br />

entre les noeuds.<br />

Par contre, il est intéressant de noter, que si l'on souhaite lancer une même application sur des volumes<br />

limités de données différentes, les deux architectures peuvent convenir.<br />

Donc, si le système de <strong>calcul</strong> est amené à faire fonctionner un panel d'applications diverses, il peut être<br />

préférable de mélanger les deux types d'architecture mémoire et d'optimiser l'équilibrage de charge (et<br />

donc la répartition de la charge de travail) sur les processeurs les plus adaptés à la tâche.<br />

Conception d'un système à haute performance - <strong>Le</strong> <strong>calcul</strong> <strong>parallèle</strong> 6/6 Copyright © <strong>CETMEF</strong> 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!