Qu'est-ce que le Massively Parallel Processing ?
Le Massively Parallel Processing (MPP) (traitement massivement parallèle) est un paradigme de traitement dans lequel des centaines ou des milliers de nœuds de traitement travaillent en parallèle sur des parties d'une tâche de calcul. Chacun de ces nœuds exécute des instances individuelles d'un système d'exploitation. Ils disposent de leurs propres périphériques d'entrée et de sortie, et ne partagent pas la mémoire. Ils réalisent une tâche de calcul commune en communiquant entre eux via une interconnexion à haut débit.
Les organisations qui traitent d'énormes volumes de données en constante expansion utilisent le massively parallel processing pour le traitement de leurs données. Par exemple, imaginez une compagnie d'assurance populaire comptant des millions de clients. Le nombre de clients augmente, tout comme les données des clients. Même si l'entreprise utilise un traitement en parallèle, elle peut subir un retard dans le traitement des données des clients. Supposons qu'un analyste de données exécute une requête sur 100 millions de lignes d'une base de données. Si l'entreprise utilise un système de massively parallel processing comprenant 1000 nœuds, chaque nœud n'aura qu'une charge de calcul de 1/1000.

Quels sont les principaux composants matériels du massively parallel processing ?
Il est essentiel de connaître les composants matériels d'un système de massively parallel processing pour comprendre les différentes architectures.
Nœuds de traitement
Les nœuds de traitement sont les éléments de base du massively parallel processing. Ces nœuds sont des cœurs de traitement simples et homogènes dotés d'une ou de plusieurs unités centrales de traitement. Les nœuds peuvent être visualisés comme de simples ordinateurs de bureau.
Interconnexion à haut débit
Les nœuds d'un système de massively parallel processing travaillent en parallèle sur les parties d'un même problème de calcul. Même si leurs traitements sont indépendants les uns des autres, ils doivent communiquer régulièrement entre eux, car ils tentent de résoudre un problème commun. Une connexion à faible latence et à large bande passante est nécessaire entre les nœuds. C'est ce qu'on appelle une interconnexion ou un bus à haut débit. Il peut s'agir d'une connexion Ethernet, d'une interface de données distribuées par fibre optique ou de toute autre méthode de connexion propriétaire.
Gestionnaire de verrouillage distribué (DLM)
Dans les architectures de massively parallel processing où la mémoire externe ou l'espace disque est partagé entre les nœuds, un gestionnaire de verrouillage distribué (DLM) organise ce partage des ressources. Le gestionnaire de verrouillage distribué reçoit une demande de ressources de différents nœuds et connecte les nœuds lorsque les ressources sont disponibles. Dans certains systèmes, le gestionnaire de verrouillage distribué assure la cohérence des données et la récupération des nœuds défaillants éventuels.
Architecture du massively parallel processing
Les architectures du massively parallel processing appartiennent à deux grands groupes selon la façon dont les nœuds partagent leurs ressources.
Systèmes de disques partagés
Chaque nœud de traitement du système de disque partagé possède une ou plusieurs unités centrales de traitement (CPU) et une mémoire à accès aléatoire (RAM) indépendante. Ces nœuds partagent toutefois un espace disque externe pour le stockage des fichiers. Ces nœuds de traitement sont reliés par un bus à haut débit. L'évolutivité des systèmes à disques partagés dépend de la bande passante de l'interconnexion à haute vitesse et des contraintes matérielles du gestionnaire de verrouillage distribué.
Quels sont les avantages des systèmes de disques partagés ?
Comme tous les nœuds partagent une seule base de données externe, le système de massively parallel processing devient hautement disponible. Aucune donnée n'est définitivement perdue, même si un nœud est endommagé. Les systèmes à disque partagé sont plus simples, car ils n'ont pas besoin d'utiliser une base de données distribuée. Il est facile d'ajouter de nouveaux nœuds dans les systèmes de disques partagés.
Quels sont les inconvénients des systèmes de disques partagés ?
Comme les nœuds de traitement partagent un disque commun, la coordination de l'accès aux données est complexe. Le système doit s'appuyer sur un gestionnaire de verrouillage distribué. Ces communications entre les nœuds occupent une partie de la bande passante de l'interconnexion à haut débit. Le disque partagé a besoin d'un système d'exploitation pour le contrôler. Cela ajoute des frais généraux supplémentaires.
Systèmes sans partage
Une architecture plus populaire de systèmes de massively parallel processing est l'architecture « sans partage ». Les nœuds de traitement disposent d'une mémoire à accès aléatoire indépendante et d'un disque qui stocke les fichiers et les bases de données nécessaires. Les données qui doivent être traitées sont partagées entre les nœuds à l'aide de diverses techniques.
Base de données répliquée : avec cette méthode, chaque nœud de traitement possède une copie complète des données. Dans ce modèle, le risque de perte de données est faible, même si quelques nœuds tombent en panne. Ce modèle est caractérisé par un espace de stockage supplémentaire.
Base de données distribuée : dans ce modèle, la base de données est partitionnée en plusieurs tranches. Chaque nœud de traitement possède une tranche particulière de la base de données et travaille sur celle-ci. Cette méthode permet d'économiser beaucoup d'espace disque, car il n'y a aucune redondance. Cependant, cette méthode est plus complexe que celle des bases de données répliquées. Ici, beaucoup de données se déplacent entre les nœuds pour compléter le traitement et augmentent ainsi le trafic sur le bus d'interconnexion. Ce modèle peut également entraîner une perte de données en raison de l'absence de redondance.

Quels sont les avantages des systèmes « sans partage » ?
Les systèmes de type « sans partage » peuvent évoluer horizontalement pour inclure un nombre massif de nœuds. Comme les nœuds de traitement sont relativement indépendants les uns des autres, il est plus facile d'ajouter un nouveau nœud de traitement. Si la base de données est en lecture seule, les systèmes « sans partage » fonctionnent parfaitement. La défaillance d'un nœud n'affecte pas les autres nœuds car ils sont presque indépendants. Les risques de corruption de la base de données sont minimes dans le cas des systèmes « sans partage ».
Quels sont les inconvénients des systèmes « sans partage » ?
Les systèmes « sans partage » avec des bases de données distribuées nécessitent beaucoup de coordination pour accomplir une tâche commune. Chaque nœud possède des tranches de la base de données. La gestion de cette base de données peut s'avérer très difficile. Les systèmes de type « sans partage » avec une base de données répliquée ne conviennent pas aux applications ayant d'énormes besoins en données. Si le calcul nécessite beaucoup d'opérations de modification des données, comme l'insertion et la jointure de données, l'architecture « sans partage » risque de ne pas être viable.
Massively Parallel Processing (MPP) et multiprocesseur symétrique (Symmetric Multi-Processing, ou SMP)
Le massively parallel processing est un système faiblement couplé dans lequel les nœuds ne partagent pas de mémoire ou d'espace disque dans certains cas. Le massively parallel processing peut être considéré comme un ensemble de nœuds de traitement indépendants communiquant par un bus d'interconnexion à haut débit.
Le multiprocesseur symétrique est un système unique doté de plusieurs processeurs étroitement couplés. Ces processeurs partagent le système d'exploitation, les périphériques d'E/S et la mémoire. Les systèmes de multiprocesseur symétrique sont souvent moins chers que le massively parallel processing. Mais cette méthode est limitée dans sa capacité à évoluer. Tous les nœuds de traitement du système multiprocesseur symétrique partagent un seul bus de mémoire, de sorte que lorsque le nombre de processeurs augmente, des goulets d'étranglement de la mémoire peuvent se produire et entraîner le ralentissement du système. Les systèmes de massively parallel processing sont coûteux et complexes, mais ils peuvent se développer à l'infini. Le massively parallel processing fonctionne mieux lorsque les tâches de traitement peuvent être parfaitement partitionnées et que la communication entre les nœuds est minimale.