Multiple instructions on multiple data
Apparence
Multiple Instructions multiple data ou MIMD désigne les machines multi-processeurs où chaque processeur exécute son code de manière asynchrone et indépendante. Pour assurer la cohérence des données, il est souvent nécessaire de synchroniser les processeurs entre eux, les techniques de synchronisation dépendent de l'organisation de la mémoire.
On distingue pour cela 2 types d'architectures :
MIMD à mémoire partagée
Les processeurs accèdent à une mémoire commune : la synchronisation peut se faire au moyen de:
- sémaphores
- verrous, ou Mutex (exclusion mutuelle)
- barrières de synchronisation
MIMD à mémoire distribuée
Chaque processeur dispose de sa propre mémoire. Cette architecture nécessite un réseau d'interconnexion pour la synchronisation. On citera pour l'échange d'informations entre les processeurs :
- appel de procédure distante RPC
- envoi / réception de messages synchrone, ou asynchrone