Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 10
Parallélisme, taxinomies et classifications
Année 2002-2003

Suite N°3...

10.4.3 La classification de Handler

La classification de W. Handler a été publiée en 1977. Son objectif est de préciser le pipeline et le parallélisme des structures. L'ordinateur est observé sous trois espèces :

L'UCP correspond au pipeline actuel.
L'UAL est une unité fonctionnelle ou un processeur dans un tableau.
Le BLC correspond à la logique nécessaire pour faire des opérations sur un seul bit dans l'UAL.
Handler décrit un ordinateur avec trois paires d'entiers :

Ordinateur = (k * k', d * d', w * w')

k = nombre d'UCP
k'= nombre d'UCP qui peuvent être en pipeline
d = nombre d'UAL commandés par chaque UCP
d'= nombre d'UAL qui peuvent être en pipeline
w = nombre de bits dans l'UAL ou l'élément processeur de mot (PE)
w'= nombre de segments de pipeline pour tous les UAL ou pour un seul PE

Les règles et les opérateurs suivants sont utilisés pour monter les liens entre les différents éléments d'un ordinateur.

L'opérateur * est utilisé pour indiquer que les unités sont en pipe line ou macro pipeline avec un flot de données unique à travers toutes les unités.

L'opérateur + est utilisé pour indiquer que les unités ne sont pas en pipeline mais travaillent sur des flots de données indépendants ou séparés

Ces opérateurs sont utilisés pour assembler des matériels différents.

L'opérateur V est utilisé pour indiquer que le matériel peut travailler dans un mode parmi plusieurs. Il combine des descriptions du même matériel, c'est un OU.

Le symbole ~ est utilisé pour indiquer un jeu de valeurs pour un des paramètres.

Les processeurs périphériques sont présentés avant le processeur principal. On utilise pour eux, trois autres paires d'entiers. Si la valeur du second élément d'une paire est 1, il est omis pour faire court.

Voyons ce qui en résulte sur quelques exemples :

Exemple 1, CDC 6600.
Il a un processeur central unique , son unité de commande de type pipeline commande une UAL à 10 unités fonctionnelles indépendantes dont les mots sont de 60 bits. Il a 10 processeurs périphériques d'entrée et sortie qui peuvent simultanément entre eux et avec le processeur central. Chaque processeur d'entrée-sortie contient une UAL simple sur 12 bits.

Les processeurs d'entrée et sortie sont décrits par :

CDC 6600 (E-S) = (10, 1, 12)
Le processeur principal est décrit par :
CDC 6600 principal = (1, 1 * 10, 60)
Le processeur principal et les processeurs d'entrée et sortie peuvent être vus comme formant un macro pipeline, on utilise alors l'opérateur * pour combiner les deux structures, au total le CDC 6600 est décrit par :

CDC 6600 = (10, 1, 12) * (1, 1 * 10, 60)

Exemple 2, Advanced Scientific Computer (ASC).
Cette machine de Texas Instrument a une unité de commande pour quatre unités arithmétiques. Chacune d'elles a un pipeline à huit étages sur des mots de 64 bits. On obtient alors :

ASC = (1, 4, 64 * 8)

Exemple 3, Cray-1.
C'est un monoprocesseur de 64 bits. Son UAL a 12 unités fonctionnelles, huit d'entre elles peuvent être chaînées pour former un pipeline. Différentes unités fonctionnelles ont de 1 à 14 segments qui peuvent être mis en pipeline.
La description de Handler pour le Cray-1 est :

Cray-1 = (1, 12 * 8, 64 * (1 ~ 14))

Exemple 4, C.mmp.
Cette machine très aisément reconfigurable a été mentionnée. Elle consiste en 16 PDP-11, mini ordinateurs des années 70, à mots ont 16 bits. Ils sont interconnectés par un réseau de type «crossbar».
Normalement, le C.mmp travaille en mode MIMD, sa description est alors (16, 1, 16).

Il peut aussi travailler en mode SIMD, où tous les processeurs sont coordonnés par un seul contrôleur maître, sa description est alors (1, 16, 16).

Enfin, le système peut être réorganisé pour travailler en mode MISD. Les processeurs sont alors chaînés. Un seul flot de données les traverse tous, sa description est alors (1 * 16, 1, 16).

La description de Handler pour le C.mmp complet est alors :

C.mmp = (16, 1, 16) V (1, 16, 16) V (1 * 16, 1, 16)

Exemple 5, DAP.
Le «distributed array of processors» d'ICL est lui aussi reconfigurable. C'est un ensemble de processeurs de bits organisés en treillis avec une seule unité de commande. Il peut travailler comme un ensemble de 128 UAL de 32 bits avec 64 kbits de mémoire. Par reconfiguration il devient un ordinateur avec 4.096 UAL de 1 bit et 4 kbits de mémoire. À ses débuts, il devait être machine frontale d'un ICL 2900 dont la description est (1, 1, 32). Le DAP était construit pour ressembler à un bloc de mémoire de 2 Moctets vu par un ICL 2900.

ICL DAP = (1, 1, 32) * [(1, 128, 32) v (1, 4096, 1)]
La taxinomie de Handler est muette sur les moyens d'interconnexion.

Le lecteur s'est rendu compte que Handler a fait évoluer l'appartenance à une classe vers une sorte de résumé descriptif.

10.4.4 La taxinomie de Shore

Shore l'a proposée en 1973. Elle est fondée sur la structure et le nombre des unités fonctionnelles de l'ordinateur. Elle a six classes chacune désignée par un chiffre romain.

Type I

L'ordinateur série classique de Neumann appartient à la catégorie I, identique au SISD de Flynn. Une seule unité de commande est consacrée à une ou plusieurs unités fonctionnelles. Les ordinateurs vectoriels relèvent donc de cette classe eux aussi, même avec pipeline. Le processeur travaille sur des mots de mémoire, il est dit mot-série, bits-parallèle. Les CDC 7600 et Cray-1 sont de ce type.

Type II

Les machines de cette classe sont semblables à celles du type I à part le fait qu'elles travaillent sur des tranches de bits (vertical slices) de la mémoire, plutôt que sur des mots (horizontal slices). Le processeur travaille en “mot-parallèle”, “bit-série”. Deux exemples sont le DAP d'ICL et STARAN de Goodyear Aerospace.

Type III

Les machines de cette classe sont des combinaisons des types I et II. Une machine de type III a deux unités de traitement, une travaillant sur des mots de données, l'autre sur des tranches de données.

Le DAP et le STARAN peuvent être programmés ainsi. Toutefois, ils le font dans la même unité de traitement et donc pas de façon simultanée, ils ne sont donc pas proprement de ce type. Les OMEN-60 de Sanders Associates appartient à cette catégorie.

Type IV

Les machines de type IV sont semblables au type I, sauf que l'unité de traitement et la mémoire sont doublées. La communication entre les processeurs ne peut se faire que par l'unité de commande.

La machine est facile à étendre par addition de processeurs. La bande passante est limitée par le fait que tous les messages passent par l'unité de commande. Les machines de cette classe peuvent être nommées : réseaux non connectés. Un exemple est PEPE.

Type V

Les machines de cette classe sont semblables à celles du type IV, sauf que les processeurs sont organisés en chaîne. Chaque processeur peut adresser la mémoire de ses voisins directs. Un exemple est ILLIAC IV. D'autres communications existaient dans ILLIAC IV. Ces machines sont parfois appelées réseaux connectés.

Type VI

Les cinq premiers types ont des unités de traitement distinctes et des mémoires interconnectées par bus ou par réseau à commutation. La classe finale de machines identifiées par Shore est constituée de machines dont la mémoire porte une partie de la logique : «Logic in memory array» ou LIMA.

Les mémoires associatives simples et les processeurs associatifs complexes sont de ce type.

Commentaire

Cette taxinomie a passablement vieilli. Les machines travaillant sur un bit ou sur des tranches de bits verticales ont disparu. Cette taxinomie cédait à la mode et n'avait pas de vision prospective.

10.4.5 La méthode de Hockney and Jesshope

Hockney et Jesshope ont présenté une notation compliquée en 1988, appelée notation structurelle de type algébrique (algebraic-style structural notation ou ASN) pour décrire les ordinateurs parallèles.

Elle serait particulièrement longue à exposer en détail. La taxinomie proprement dite est constituée de plusieurs arbres dont les nœuds contiennent des annotations algébriques. Une machine installée sur un nœud sera décrite par la chaîne de descripteurs obtenue en collectant les annotations à partir de la racine jusqu'au nœud en cause.

Illustrons simplement cette méthode par la description du Cray I :

C(Cray-1) = Iv12[12Ep12 - 16M50]r; 12Ep = {3Fp64,9B}

On n'a plus une définition de classes, mais une description abrégée de la machine en cause.
La ligne ci-dessus se lit pour un spécialiste de la chose :
«une unité d'exécution non pipeline avec une horloge de 12 ns. Une unité d'exécution en pipe line à 12 étages, horloge à 12 ns, connectée à 16 bancs de mémoire dont le temps d'accès est de 50 ns. Les instructions sont émises quand l'unité d'exécution et les registres sont libres. Les douze unités d'exécution sont constituées de 3 pipelines arithmétiques en virgule flottante 64 bits qui peuvent travailler en parallèle avec neuf unités entières non pipeline.»

Le résultat pour chaque machine est un descripteur encore plus complexe que celui de Handler.

On trouve cette méthode dans l'ouvrage des auteurs [HOC88].

10.4.6 Conclusion sur les taxinomies

Il en est des taxinomies comme des normes, certaines sont utilisées, d'autres ne le sont pas. Actuellement, la taxinomie de Flynn est utilisée pour distinguer les SIMD des MIMD. Les MIMD font l'objet de distinctions sur d'autres bases.

10.5 LA CLASSIFICATION ACTUELLE DES MIMD

Elle est fondée sur la nature du moyen de communication entre les processeurs :

10.5.1 Machines à communication spatiale, mémoire distribuée entre les processeurs

Une autre dénomination est système à accès non uniforme (NUMA pour «non uniform memory access»).

Chacun des processeurs a sa propre mémoire, un bus ordinaire y suffit.
La communication entre les processeurs est faite par messages.


Les exemples sont nombreux Ncube/2, Cray T3E, Hypercube, CM5, HP-Convex, Intel Paragon, IBM SP1, SP2, réseaux de stations...

Variantes

Systèmes à mémoire distribuée virtuellement.

La distribution est faite par logiciel dans la mémoire commune (sauf dans le KSR).
Le modèle de programmation classique est conservé.

Le système de communication est ici aussi primordial.
Exemples : KSR, DASH, Alliant...

Systèmes à hiérarchies de mémoires.

On y combine la mémoires partagée entre un groupe de processeurs et plusieurs groupes communicant via une grande mémoire.

Exemples : Cedar, Supremum.

10.5.2 Machines à communication temporelle, mémoire commune aux processeurs

Une autre dénomination est système à accès uniforme (UMA pour «uniform memory access»).
Les processeurs ont la même mémoire et y ont accès chacun dans le même délai, notion d'uniformité.

Il y a bien sur un moyen de communication entre les processeurs et la mémoire, mais il ne s'agit pas ici du moyen sur lequel est fondé le classement. On utilise des bus dans les SGI, DEC, SUN... et des commutateurs dans les CRAY, FUJITSU, NEC...

Ils sont utilisés pour la gestion des bases de données, et comme serveurs.
Ils fonctionnent sous UNIX, Linux, NetWare, Windows NT.
Exemples : Sequent, SGI Challenge, SUN Sparc Center, Cray Y-MP, Convex C-2, Cray C-90,

Selon l'implantation du système d'exploitation et des programmes, on distingue les multiprocesseurs :

Note sur les processeurs parallèles «logiques»

Intel a mis en service en 2002 sur le Xéon, une technique nommée «hyper threading» qui consiste à  émuler deux processeurs sur un seul. On peut en rendre compte de deux façons :

L'innovation d'Intel est d'émuler la présence d'un deuxième processeur logique. Le travail d'intercalage des processus entre eux est poussé vers le matériel.
Si le premier flux utilise une certaine quantité d'unités logiques, le second flux ne peut pas intégrer le pipeline pour profiter des unités déjà occupées. Le gain existe dans la mesure où certaines ressources sont dupliquées et est limité par les aléas structurels qu'implique un deuxième flux simultané. Un auteur a parlé à ce propos de «veryCISC» pour en souligner la complexité.

10.6 CARACTÈRES DU PARALLÉLISME

On récapitule ici plusieurs caractères par lesquels on trie, on classe (mal), on étiquette des machines parallèles ou des fonctionnements simultanés :

Le degré au sens du nombre de travaux que l'on peut exécuter simultanément tâches, miniprocessus, etc.

La granularité au sens de la quantité moyenne de travail incorporée dans chaque travail élémentaire, grain fin (fine grain) pour des tâches petites, grain grossier (coarse grain) pour des tâches grandes.

Le niveau au sens de l'origine de la simultanéité :

Les moyens de synchronisation dans deux sens pour garantir : Le mode de construction et de répartition des items logiciels :
Questionnaire

Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 10
Parallélisme, taxinomies et classifications
Année 2002-2003