Calcul parallèle : Présentation
Introduction
Pourquoi le calcul parallèle ?
- Permettre à Flux de tirer profit des architectures de machines de calcul qui dominent le marché actuel
- Résoudre plus rapidement
- Résoudre des modèles plus complexes
Calcul parallèle
Afin de rendre le solveur Flux plus rapide, 2 stratégies de parallélisation ont été adoptées pour différentes parties de la résolution :
- La parallélisation via multithread de deux étapes coûteuses en temps de calcul : l'intégration sur les éléments finis locaux et l'assemblage global de la matrice
- La parallélisation via multithread pouvant être associée à la distribution de calcul de la résolution des systèmes linéaires via le solveur MUMPS.
Mise en garde
- Légère augmentation des besoins mémoires, en fonction du nombre de threads utilisés (environ 10 à 20% par thread).
- La technologie de calcul parallèle ne permet pas de distinguer un cœur physique d'un cœur virtuel. Pour Flux, il est préférable de ne pas dépasser le nombre de cœurs physiques lors de la configuration du nombre de cœur.
- Les performances obtenues dépendent de l'architecture de la machine, car les threads sont gérés par le système d'exploitation.
- Les performances atteintes ne sont pas prédictibles précisément, car elles dépendent de plusieurs facteurs (machine, taille du problème, type de calcul, système d'exploitation, ...).
- D'autres programmes fonctionnant en même temps sur la machine de calcul peuvent affecter les performances de parallélisation.
- Utiliser toutes les ressources disponibles ne donnera pas nécessairement les meilleures performances. Adapter les ressources utilisées en fonction du projet est indispensable.