Architecture Dataflow

Le dataflow (en français : flux de données) est une architecture où les données sont des entités actives qui traversent le programme de manière asynchrone, contrairement à l'architecture classique von Neumann, où elles attendent passivement en mémoire pendant que le programme est exécuté séquentiellement suivant le contenu du pointeur de programme (PC). On parle aussi d'ordinateur cadencé par les données.

Principe de fonctionnement

Dans une architecture flux de données, les programmes sont représentés sous forme de graphes : un nœud représente une opération à effectuer, tandis que les données circulent sur les arcs et forment les entrées aux nœuds. Les données sont transportées par des jetons (tokens). La règle de base, dite « de déclenchement », instaure que lorsqu'un nœud voit toutes ses entrées satisfaites, il est activé et produit une valeur en sortie, et les jetons présents en entrée sont supprimés.

Ces architectures sont étroitement couplées aux langages de programmation fonctionnelle. Elles ne génèrent pas d'effet de bord, donc ne nécessitent pas de mémoire partagée, ni de séquenceur ou de pointeur de programme. Elles sont aussi éminemment parallèles : l'unité responsable de l'exécution des instructions issue de la mémoire contenant le programme doit posséder un nombre relativement élevé de processeurs (16 et plus) afin de maximiser la puissance totale de l'ordinateur.

Plusieurs unités de calcul traitant des données différentes les classent dans la famille des ordinateurs MIMD (Multiple Instructions, Multiple Data).

Les graphes comme langage

Un nœud computationnel peut être représenté comme le sommet d'un graphe. Les jetons circulent sur les arcs reliant les sommets. Quand deux jetons contenant respectivement les valeurs 3 et 5 se présentent aux entrées du nœud, celui-ci exécute l'opération pour laquelle il est conçu (ici une addition), génère un jeton en sortie représentant la somme (3 + 5), 8, et supprime les jetons d'entrée :

Un nœud de base d'une architecture dataflow.
Activation d'un nœud. Notez la disparition des jetons d'entrée après la production d'une valeur en sortie.

L'expression plus complexe z = (x + y) × (x - y) correspond au graphe ci-dessous. On constate que le parallélisme est implicite : les deux nœuds + et - sont activables simultanément.

Le programme (graphe) correspondant à l'expression z = (x + y) * (x - y).

Grâce à deux types de nœuds appelés switch et merge, on peut coder la condition si. Le premier type possède deux entrées et deux sorties, tandis que le second possède trois entrées et une sortie. Le type switch répercutera son jeton d'entrée sur l'une ou l'autre de ses sorties suivant l'état de sa seconde entrée. Le type merge fera la sélection d'un de ses deux jetons d'entrée suivant la valeur d'un troisième. Schématiquement :

Un nœud de type switch. V et F tiennent lieu de Vrai et Faux.
Un nœud de type merge. V et F tiennent lieu de Vrai et Faux.

Voici deux exemples de ces instructions, dans un test conditionnel et dans une boucle. Notez l'initialisation à Faux sur le nœud merge pour correctement sélectionner la valeur de x.

Le graphe du programme y = (IF x > 3 THEN x + 2 ELSE x -1) × 4.
Le graphe du programme WHILE x > 0 DO x - 1.

Implications de l'utilisation de graphes

  1. Localité : les interdépendances entre les données sont très localisées, contrairement aux langages impératifs habituels qui utilisent des variables globales (situées « loin » des procédures qui sont susceptibles de les modifier).
  2. Pas d'effets de bord, pas de notion de passage de paramètres par référence : les valeurs sont dupliquées.
  3. Dépliage des boucles : pour paralléliser l'exécution des boucles, le code doit être déplié pour que chaque itération puisse être exécutées en parallèle.
  4. Règle de la référence unique :
le nom d'une variable ne peut apparaître qu'une seule fois dans une assignation. Pour éviter cela, on renomme la variable à partir de ce point, et on utilise ce nouveau nom par la suite. Par exemple :


X = P - Q X = P - Q
X = X × Y X1 = X × Y
W = X - Y W = X1 - Y
Cette règle a été proposée en 1968.

Structure des graphes

Pour mieux comprendre comment les programmes flot de données peuvent être exécutés par un ordinateur, il est plus aisé de représenter les graphes sous la forme d'une collection de structures reliées entre elles par des pointeurs.

Le premier graphe z = (x + y) × (x - y) peut être représenté par cette structure :

Représentation structurelle de l'expression z = (x + y) × (x - y).

Chaque nœud est représenté par un bloc dont le premier élément est l'opération à effectuer, puis suivent les emplacements indiqués par des parenthèses « [ ] » qui sont destinées à contenir les paramètres de l'opération, ainsi que des emplacements contenant les adresses où sera placé le résultat. Certains emplacements peuvent éventuellement contenir des constantes.

Les itérations ne posent pas de problème non plus, ci-dessous la structure de la boucle WHILE précédemment évoquée :

Représentation structurelle d'une itération.

Types de machine

Il existe plusieurs types d'ordinateur flot de données, mais on peut distinguer deux modèles :

  • Le modèle statique : il n'y a qu'un seul jeton sur un arc à un instant donné ;
  • Le modèle dynamique : il peut y avoir plusieurs jetons en attente sur un arc.

Des machines hybrides dataflow/von Neumann ont aussi été conçues (MIT P-RISC).

Machines statiques

Rentrent dans cette catégorie la machine conçue par Jack Dennis du Massachusetts Institute of Technology en 1974. La difficulté rencontrée sur cette architecture est la contrainte de n'avoir qu'une seule valeur (jeton) sur un arc à un moment donné (car on ne peut pas faire de différence entre les jetons). Elle est effacée par l'utilisation de jetons de contrôles qui acquiescent la transmission des données d'un nœud à un autre.

Machines dynamiques

Ces machines associent un marqueur (tag), ou une couleur, à chaque jeton. La règle de base est modifiée, et devient : « lorsqu'un nœud voit toutes ses entrées satisfaites par des jetons de même couleur, il est activé et produit une valeur en sortie, avec sa propre couleur, et les marqueurs et jetons d'entrées sont effacés ». L'architecture en est simplifiée et le dépliage des boucles se fait tout seul : il est créé autant de couleurs et jetons que nécessaire.

Exemple : la machine dataflow dynamique de Manchester

Synoptique simplifié de la machine de l'Université de Manchester (1981).

Son architecture simplifiée est représentée par la figure ci à droite. Elle est volontairement simplifiée, mais est tout à fait représentative des machines de type dynamique. On remarque immédiatement qu'elle est très facilement « pipelinable », ce qui bien sûr améliore sensiblement les performances. Il est spécifié en caractères italiques le type de paquets circulant entre deux unités.

Les jetons appartenant à une même instruction sont appairés dans l'unité de correspondance. Ils sont envoyés vers l'unité où sont stockées les instructions, d'où ils chargent les instructions dont ils dépendent. Ces paquets enfin exécutables sont dirigés vers l'unité de calcul qui, à la suite de l'exécution de l'instruction reçue en entrée, va émettre de nouveaux jetons. L'unité d'entrée/sortie sert à communiquer avec l'ordinateur externe qui contrôle la machine dataflow, par le biais du bus schématisé verticalement, qui permet l'injection de paquets ou bien leur récupération. La file d'attente « jetons » est simplement une mémoire tampon FIFO.

Les jetons sont formés de :

  • 37 bits de données, associées à
  • un marqueur de 36 bits suivi de
  • une adresse de destination sur 22 bits, puis
  • un second marqueur de 1 bit.

Étant donné que de larges itérations ou de vastes ensembles de données peuvent provoquer un dépassement de capacité (en nombre de jetons), une unité particulière est couplée à l'unité de correspondance pour pallier ce cas. L'unité de calcul va bien sûr contenir plusieurs unités arithmétiques et logiques pour permettre d'exécuter les instructions en parallèle.

Langages

  • Id a été mis au point à Irvine (Université de Californie), puis au MIT
  • Val au MIT.
  • SISAL (Streams and Iteration in a Single Assignment Language) à l'université de Manchester.

Historique

Les premières idées et concepts qui ont donné naissance à ces architectures sont nés dans les années 1960.

Les premiers ordinateurs de ce type sont nés au début des années 1970, d'abord aux États-Unis et au Japon, mais aussi en France avec le LAU (Langage à Assignation Unique, CERT-ONERA de Toulouse). Les constructeurs qui se sont impliqués sont : Texas Instruments, NEC, OKI etc. Certaines machines ont été construites sur la base de microprocesseurs tel que le Zilog Z8001 et Motorola 88110 ou bien encore des microprocesseurs en tranches AMD.

Quelques machines

Machines à architecture statique

  • MIT Static Dataflow Architecture, un prototype avec 8 processeurs.
  • HDFM, Hughes Dataflow Multiprocessor, avec 512 processeurs.
  • LAU, TI's Distributed Data Processor, DDM1, etc.

Machines a jetons marqués (architecture dynamique)

  • MIT Tagged-Token Dataflow Machine, 4 processeurs par cluster, les clusters sont interconnectés sur un réseau en boucle.
  • SIGMA-1, superordinateur Japonais, 128 processeurs, 1988.
  • PATTSY, Processor Array Tagged-Token System, système expérimental australien. 18 processeurs Intel 8085 reliés à un IBM-PC.
  • DDDP, Distributed Data Driven Processor, conception Japonaise, 16 processeurs.
  • Q-p, SDFA, CSIRAC II, PIM-D etc.

Il est tout à fait possible que le dataflow soit utilisé sous une forme « moderne » pour équiper un superordinateur.

Références

Liens internes

Liens externes

Read other articles:

Puteri Indonesia BaliLogo Puteri IndonesiaPembuatMooryati SoedibyoNegara asal Bali, IndonesiaRilisRilis asli1992 –SekarangPranala luarSitus web Puteri Indonesia Bali adalah kontes regional yang diadakan di provinsi Bali untuk memilih perwakilan provinsi tersebut di kontes Puteri Indonesia. Pemegang titel saat ini adalah Anak Agung Sagung Istri Nanda Widya Saraswati dari Kota Denpasar. Persyaratan Persyaratan bagi peserta pemilihan Puteri Indonesia: Warga Negara Indonesia, berusia ...

  لمعانٍ أخرى، طالع آيا صوفيا (توضيح). تحتوي هذه المقالة على استشهادات بالمصادر بحاجة إلى تجميع. فضلاً، ساهم في تطوير هذه المقالة من خلال تجميع المصادر لتصبح بالصورة المُثلى. جامع آيا صوفيا (بالتركية: Ayasofya Camii)‏ واجهة آيا صوفيا سنة 2013 إحداثيات 41°00′30″N 28°58′48″E / ...

青森県の県道一覧(あおもりけんのけんどういちらん)は、青森県を通る県道の一覧である。 主要地方道 1994年(平成6年)3月25日に現在の番号体制となった。 1 八戸階上線(旧・主要地方道八戸港線・一般県道榊八戸線・一般県道階上停車場線) 2 屏風山内真部線(冬期閉鎖区間あり) 3 弘前岳鰺ケ沢線(弘前市内に一方通行区間あり) 4 むつ恐山公園大畑線(冬期閉鎖

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2019) مارتن كريبز معلومات شخصية الميلاد 2 نوفمبر 1956 (67 سنة)  إسن  مواطنة ألمانيا  مناصب أرشمندريت   تولى المنصب8 سبتمبر 2008  مطران كاثوليكي   تولى المنص...

Tory Burch LLCJenisSwastaIndustriModeDidirikanFebruari 2004; 19 tahun lalu (2004-02)PendiriTory BurchKantorpusatNew York City, New York, Amerika SerikatCabang250Wilayah operasiSeluruh duniaSitus webwww.toryburch.com Tory Burch LLC adalah sebuah label mode asal New York City, New York, Amerika Serikat. Perusahaan ini didirikan oleh Tory Burch pada tahun 2004. Pierre-Yves Roussel saat ini menjabat sebagai CEO.[1] Sejarah Tory Burch memulai label modenya dengan nama TRB by Tory Burc...

Dewan Nasional NationalratPeriode Legislatif ke-26JenisJenisMajelis rendah dari Parlemen Austria PimpinanPresidenWolfgang Sobotka, ÖVP sejak 20 Desember 2017 Presiden KeduaDoris Bures, SPÖ sejak 9 November 2017 Presiden KetigaAnneliese Kitzmüller, FPÖ sejak 20 Desember 2017 KomposisiAnggota183Partai & kursi NationalratPemerintah (97)   ÖVP (71)   Greens (26) Oposisi (86)   SPÖ (40)   FPÖ (30)   NEOS (15)   Independen (1) PemilihanSistem pem...

Grafik 6 bunyi pip Greenwich Time Signal (Sinyal Waktu Greenwich, disingkat GTS, biasa dikenal sebagai The Pips) adalah bunyi singkat yang dibunyikan di banyak stasiun radio BBC setiap pergantian jam. Sinyal ini telah digunakan sejak tahun 1924, tetapi penggunaannya sekarang ini diragukan terkait dengan adanya keterlambatan waktu dalam sistem penyiaran digital. Semuanya ada 6 pip (bunyi tit pendek). 5 pip pertama disiarkan setiap jam dan bermula pada menit ke-59 dan detik ke-55, 5 pip pertama...

This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this article by introducing more precise citations. (May 2021) (Learn how and when to remove this template message) 36th Army Tank Brigade36th Tank BrigadeFormation sign of the 36th Army Tank Brigade.[1]Active1941–1943Disbanded30 July 1943CountryUnited KingdomBranchBritish ArmyTypeArmoured brigadeRoleHome DefenceTrai...

The Magic AsterSutradaraProduserDitulis olehPemeranYao MingLin Chi-lingLeon LaiTanggal rilis 19 Juni 2009 (2009-06-19) Negara Tiongkok Bahasa Tionghoa The Magic Aster (马兰花; Ma Lan Hua) adalah sebuah film animasi Cina yang dirilis pada 19 Juni2009 oleh Shanghai Animation Film Studio, Xiamen Shangchen Science and Technology, dan Shanghai Chengtai.[1][2] Pemeran Film ini memakai selebriti terkenal untuk mengisi suara karakternya.[3] Nama Disuarakan oleh Lin Chi...

Emperor and Autocrat of the Romans Andronikos V PalaiologosEmperor and Autocrat of the RomansAndronikos V (center) and his parents, as depicted in an ivory pyxis from Thessalonica. The letters ANΔP are written above his head, standing for Ανδρ(όνικος)Byzantine co-emperor in Thessalonica under John VII Palaiologos Reignc. 1403–1407Bornc. 1400Constantinople(now Istanbul, Turkey)Diedc. 1407 (aged 7)Thessalonica(now Thessaloniki, Greece)DynastyPalaiologosFatherJohn VII PalaiologosMot...

Railway station in Andhra Pradesh, India AngalakuduruCommuter and Regional rail stationA Train Station/Halt station in TenaliGeneral informationLocationYedlapalli Road, Angalakuduru, Tenali, Guntur district, Andhra PradeshIndiaCoordinates16°14′33″N 80°36′31″E / 16.2426°N 80.6086°E / 16.2426; 80.6086Owned byIndian RailwaysOperated byIndian RailwaysLine(s) Guntur–Tenali section Distance 22 km (14 mi) from Guntur 5 km (3.1 mi) from Tenali...

2002 Polish comedy-drama film Day of the WackoFilm posterPolishDzień świra Directed byMarek KoterskiWritten byMarek KoterskiScreenplay byMarek KoterskiProduced by Juliusz Machulski Włodzimierz Otulak Starring Marek Kondrat Janina Traczykówna Andrzej Grabowski Michał Koterski Joanna Sienkiewicz Monika Donner-Trelińska CinematographyJacek BławutEdited byEwa SmalMusic byJerzy SatanowskiProductioncompanies Studio Filmowe Zebra Vision Film Production Non Stop Film Service Distributed byVisi...

قرية الرصدين  - قرية -  تقسيم إداري البلد  اليمن المحافظة محافظة صنعاء المديرية مديرية الحيمة الخارجية العزلة عزلة مفحق السكان التعداد السكاني 2004 السكان 59   • الذكور 33   • الإناث 26   • عدد الأسر 9   • عدد المساكن 12 معلومات أخرى التوقيت توقيت اليمن (+3 غري...

Doa MengancamGenre Drama Roman Laga Satire Religi BerdasarkanDoa yang Mengancamoleh Hanung BramantyoSkenario Jujur Prananto Hanung Bramantyo Sutradara Hanung Bramantyo Senoaji Julius Pengarah kreatif Salsa Hirawan Akshay Devgan Ray Pemeran Kevin Ardilova Tissa Biani Lagu pembukaDoa yang Mengancam — RohasLagu penutupDoa yang Mengancam — RohasMusikKrisna PurnaNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode8ProduksiProduser eksekutif Monika Rudijono Tina Arwin Produs...

Saint-Hippolyte Entidad subnacional Saint-HippolyteLocalización de Saint-Hippolyte en Francia Coordenadas 47°04′N 1°06′E / 47.06, 1.1Entidad Comuna de Francia • País Francia • Región Centro • Departamento Indre y Loira • Distrito distrito de Loches • Cantón cantón de Loches • Mancomunidad Communauté de communes Loches DéveloppementAlcalde Patrick Pasquier, desde 2001(2008-2014)Superficie   • Total 32.99 km²Alt...

Martin GarrixGarrix ditahun 2019Informasi latar belakangNama lahirMartijn Gerard GarritsenNama lainGRX[1]YTRAM[2]Lahir14 Mei 1996 (umur 27)Amstelveen, BelandaGenreProgressive housebig room houseelectro housefuture bassPekerjaanDJProduser rekamanMusisiInstrumenDigital audio workstationgitarTahun aktif2012 - sekarangLabelSTMPD RCRDSSpinnin'Musical FreedomWallRepublicSchool BoyCasablancaUniversalEpic AmsterdamRCA Records (Amerika Utara) (2016–sekarang)Columbia Records (Bri...

Iranian footballer Mohammad Mohsen Delir Delir in 2014Personal informationDate of birth (1988-07-03) 3 July 1988 (age 35)Place of birth Marand, IranHeight 1.80 m (5 ft 11 in)Position(s) ForwardTeam informationCurrent team Sepidrood RashtNumber 21Youth career2008–2010 GostareshSenior career*Years Team Apps (Gls)2009–2015 Gostaresh 42 (13)2011–2012 → Machine Sazi (loan) 14 (4)2013–2015 → Tractor Sazi (loan) 22 (7)2015 Siah Jamegan 11 (0)2015–2016 Machine Sazi 1...

French homebuilt aircraft G1 Role Ultralight aircraftType of aircraft National origin France Manufacturer G1 Aviation Status In production Developed from Alisport Yuma The G1 Aviation G1 is a French STOL ultralight aircraft, designed and produced by G1 Aviation of Tallard. The aircraft is supplied as a kit for amateur construction or as a complete ready-to-fly-aircraft.[1] Zenith Aircraft considers the G1 an unauthorized copy of the Zenith STOL CH 701.[2] Design and developmen...

American jazz musician David Moss at the Moers Festival 2017 David Moss (born January 21, 1949 in New York City) is an American composer, percussionist and self-taught vocalist, founder of the David Moss Dense Band; co-founder and artistic director of the Institute for Living Voice, Antwerp. His performances are noted for their innovative style, multimedia approach and improvisation.[1] Moss has lived in Berlin, Germany since 1991, when he received a fellowship from the prestigious Be...

UK service revolver from 1887 to 1970 Webley Revolver A Webley Mk. VI top-break revolver.TypeService revolverPlace of originUnited KingdomService historyIn service1887–1970Used bySee UsersWarsSecond Boer WarBoxer RebellionWorld War IEaster RisingIrish War of IndependenceIrish Civil WarWorld War IINorthern CampaignIndonesian National RevolutionMalayan EmergencyFirst Indochina WarKorean WarVietnam WarBritish colonial conflictsBorder CampaignThe TroublesProduction historyDe...