L’exécution parallèle accélère les gros calculs

Le 27/01/2009 à 10:50

Deux fois par an, The Mathworks propose une mise à jour de son logiciel de calcul scientifique. La version 2008b de Matlab comprend deux nouveaux outils grâce auxquels les calculs trop gourmands en ressources peuvent être séparés en plusieurs tâches parallèles. Ces calculs peuvent ainsi être portés sur des clusters d’entreprise, voire sur un réseau européen de supercalculateurs.
Selon une enquête réalisée par le cabinet IDC, 50 % des ingénieurs et des chercheurs ont aujourd’hui besoin d’utiliser des “clusters” (des serveurs en réseau) plutôt que des postes de travail traditionnels. Il faut dire que la complexité des modèles est désormais telle que les performances des PC deviennent insuffisantes. Du coup, certains calculs durent des jours, voire des semaines, et parfois ils ne peuvent tout simplement pas être lancés par manque d’espace mémoire. Une des solutions traditionnelles consiste à lancer ces calculs sur de gros calculateurs d’entreprise, qui répartissent la charge entre les différents serveurs. « Mais cela impose de redévelopper l’application, car tout le programme doit être modifié pour s’exécuter en parallèle, explique Silvina Grad-Freilich, directeur marketing de l’activité Parallel Computing chez The Mathworks. Sans compter les problèmes de licences que pose le fait d’exécuter un programme sur plusieurs machines. Enfin, le calcul matriciel était totalement incompatible avec le fonctionnement des clusters. » En effet, un calcul matriciel doit toujours être effectué en une seule fois, car toute opération sur une matrice (une simple multiplication, par exemple) nécessite d’en connaître toutes les lignes et toutes les colonnes. Pour y remédier, la version 2008b de Matlab s’accompagne de deux nouveaux outils pour la mise en parallèle des calculs. Le premier, “Parallel Computing Toolbox”, s’installe sur la station de travail. Grâce à la fonction SPMD (Single Program Multiple Data) et à la boucle “parfor” (boucle “for” qui s’exécute en parallèle), l’utilisateur peut lancer des calculs distribués. Il choisit uniquement le nombre de sessions à exécuter simultanément, et le découpage des matrices en sous-matrices s’effectue automatiquement.
Le second outil, appelé “Matlab Distributed Computing Server”, s’installe quant à lui sur le cluster. Il contient tous les mécanismes internes à la parallélisation des calculs. Concrètement, chaque serveur du cluster possède un morceau de la grande matrice originale. Pour calculer chaque élément de cette matrice, on met à disposition de chaque serveur les lignes et les colonnes dont il a besoin (des données qui sont réparties entre tous les serveurs). Au final, il s’agit donc d’un ensemble d’instructions assez complexes pour l’échange de données entre serveurs. L’avantage étant qu’une fois l’outil installé sur le cluster, les calculs sont lancés en parallèle sans aucune modification du code.
Un morceau s’exécute à Paris, l’autre à Londres
L’autre atout de cette distribution parallèle des calculs est d’étendre le concept aux “cloud computers” (toujours un réseau, mais entre clusters cette fois). Ces ensembles de supercalculateurs sont nombreux, mais restaient jusqu’alors réservés à une élite. Or The Mathworks a conclu un accord avec l’EGEE (Enabling Grids for E-sciencE), l’un des plus importants de ces réseaux. Il regroupe plusieurs clusters universitaires et industriels, répartis sur toute l’Europe. « Ainsi, conclut Silvina Grad-Freilich, une partie des calculs peut s’effectuer à Paris tandis que le reste est partagé entre Londres et Berlin. Il faut bien entendu que l’organisation EGEE autorise la mise à disposition des ressources (en estimant la valeur scientifique du projet), mais dans tous les cas cela se fait sans aucun coût supplémentaire pour l’utilisateur. »

 


 

Copy link
Powered by Social Snap