Qu'est-ce que le calcul parallèle ?
Le calcul parallèle permet d'effectuer de nombreux calculs simultanément. Les gros problèmes peuvent souvent être divisés en problèmes plus petits, qui sont ensuite résolus en même temps.
Les principales raisons d’envisager le calcul parallèle sont les suivantes :
Gagner du temps en répartissant les tasks et en les exécutant simultanément.
Résoudre les problèmes de Big Data en distribuant les données
Tirer parti des ressources de votre PC et évoluez vers les clusters et le cloud computing
Avec Parallel Computing Toolbox™, vous pouvez
Accélérez votre code à l'aide d'outils de calcul parallèle interactifs, tels que
parforetparfevalAugmentez vos capacités de calcul à l'aide d'outils de traitement Big Data interactifs, tels que
distributed,tall,datastoreetmapreduceUtilisez
gpuArraypour accélérer vos calculs sur le GPU de votre ordinateurUtilisez
batchpour décharger vos calculs vers des clusters informatiques ou des installations de cloud computing
Voici quelques concepts utiles sur le calcul parallèle :
Nœud : ordinateur autonome, contenant un ou plusieurs CPU / GPU. Les nœuds sont mis en réseau pour former un cluster ou un supercalculateur
Thread : plus petit ensemble d’instructions pouvant être géré indépendamment par un planificateur. Sur un GPU, un système multiprocesseur ou multicœur, plusieurs threads peuvent être exécutés simultanément (multi-threading)
Batch : décharger l'exécution d'un script fonctionnel pour l'exécuter en arrière-plan
Évolutivité : augmentation de l'accélération parallèle avec l'ajout de ressources supplémentaires
Quels outils proposent MATLAB® et Parallel Computing Toolbox ?
MATLAB workers : MATLAB moteurs de calcul qui s'exécutent en arrière-plan sans interface desktop. Vous utilisez des fonctions dans Parallel Computing Toolbox pour diviser automatiquement les task et les affecter à ces workers pour exécuter les calculs en parallèle. Vous pouvez exécuter des workers locaux pour tirer parti de tous les cœurs de votre ordinateur de bureau multicœur. Vous pouvez également évoluer pour exécuter vos workers sur un cluster de machines, à l'aide de MATLAB Parallel Server™. La session MATLAB avec laquelle vous interagissez est connue sous le nom de client MATLAB. Le client instruit les workers avec des fonctions de langage parallèles.
Pool parallèle : un pool parallèle de MATLAB workers créé à l'aide de
parpoolou de fonctions avec support parallèle automatique. Par défaut, les fonctions de langage parallèle créent automatiquement un pool parallèle pour vous lorsque cela est nécessaire. Pour en savoir plus, voir Exécuter du code sur des pools parallèles .Pour le profil local par défaut, le nombre de workers par défaut est d'un par cœur de processeur physique utilisant un seul thread de calcul. Cela est dû au fait que même si chaque cœur physique peut avoir plusieurs cœurs virtuels, les cœurs virtuels partagent certaines ressources, notamment généralement une unité à virgule flottante (FPU) partagée. La plupart des calculs MATLAB utilisent cette unité car ils sont à virgule flottante double précision. La limitation à un seul worker par cœur physique garantit que chaque worker dispose d'un accès exclusif à une unité à virgule flottante, ce qui optimise généralement les performances du code de calcul. Si votre code n'est pas gourmand en ressources de calcul, par exemple s'il nécessite beaucoup d'entrées/sorties (E/S), envisagez d'utiliser jusqu'à deux workers par cœur physique. L'exécution d'un trop grand nombre de workers sur trop peu de ressources peut avoir un impact sur les performances et la stabilité de votre machine.
Accélérer : Accélérez votre code en l'exécutant sur plusieurs MATLAB workers ou GPU, par exemple, en utilisant
parfor,parfevalougpuArray.Augmentez la taille de vos données : Partitionnez vos big data sur plusieurs MATLAB workers, en utilisant des tall array et des tableaux distribués. Pour en savoir plus, voir Traitement des Big Data .
Traitement asynchrone : Utilisez
parfevalpour exécuter une task informatique en arrière-plan sans attendre qu'elle se termine.Passez aux clusters et aux clouds : Si votre task de calcul est trop importante ou trop lente pour votre ordinateur local, vous pouvez décharger votre calcul sur un cluster sur site ou dans le cloud à l'aide de MATLAB Parallel Server. Pour plus d'informations, voir Clusters et clouds.