QsNet

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 5 august 2020; verificările necesită 2 modificări .

QsNet - mediu de comunicare de la Quadrics, oferind întârzieri la nivel SCI și debit de până la 900 MB /s (QsNet II). Datorită costului ridicat al echipamentelor, QsNet este de obicei folosit pentru a construi clustere teraflop deosebit de mari .

QsNet constă din două blocuri hardware: o interfață de rețea programabilă Elan și un comutator de comunicații Elite cu lățime de bandă mare și latență redusă. Switch-urile de elită pot fi interconectate într-o topologie Fat Tree . În ceea ce privește software-ul, QsNet oferă mai multe niveluri de biblioteci de comunicare care oferă un compromis între performanță și ușurință în utilizare. QsNet combină aceste componente hardware și software pentru a implementa acces eficient și sigur la memoria virtuală globală folosind operațiuni DMA de la distanță .(DMA). De asemenea, îmbunătățește rezistența rețelei cu protocoale link și end-to-end care detectează defecțiunile și retransmit automat pachetele.

Elan

Interfața de rețea Elan conectează rețeaua Quadrics la un nod de procesare care conține unul sau mai multe procesoare . Pe lângă generarea și primirea de pachete către și de la rețea, Elan oferă o putere de procesare locală semnificativă pentru implementarea protocoalelor de mesagerie de nivel înalt, cum ar fi Interfața de trecere a mesajelor (MPI). Structura funcțională internă a lui Elan este centrată în jurul a două procesoare principale: procesorul cu microcod și procesorul thread-ului. Procesorul cu microcod pe 32 de biți acceptă patru fire hardware. Fiecare thread poate emite în mod independent solicitări de memorie pipeline către sistemul de memorie. Până la opt interogări pot fi executate în orice moment. Programarea procesorului cu microcod permite unui fir să se trezească, să programeze un nou acces la memorie pe baza rezultatului accesului anterior la memorie și să revină în stare de repaus în doar două ceasuri de sistem.

Cele patru fluxuri de microcod sunt dedicate

Un procesor de flux este un procesor RISC pe 32 de biți care ajută la implementarea bibliotecilor de mesagerie de nivel superior fără intervenția explicită din partea procesorului principal. Pentru a face acest lucru, QsNet extinde setul de instrucțiuni cu instrucțiuni suplimentare care ajută la crearea pachetelor de rețea, gestionarea evenimentelor, planificarea eficientă a firelor de execuție și blocarea salvarii și restabilirea stării firului de execuție în timpul programării.

Unitatea de gestionare a memoriei (MMU) traduce adresele virtuale pe 32 de biți fie în adrese fizice locale SDRAM de 28 de biți, fie în adrese fizice PCI ( Peripheral Component Interconnect ) pe 48 de biți . Pentru a traduce aceste adrese, MMU conține un buffer asociativ de traducere complet asociativă cu 16 intrări, o mașină de operare și o mașină de stare pentru a traversa tabelul de pagini pentru a umple bufferul și a salva informații atunci când MMU se blochează.

Elan conține tabele de rutare care traduc fiecare număr de procesor virtual într-o secvență de etichete care definesc o rută de rețea. Software-ul de sistem poate încărca mai multe tabele de rutare pentru a oferi strategii de rutare diferite.

Elan are 8 KB cache (organizat în patru seturi de câte 2 KB fiecare) și 64 MB SDRAM . Dimensiunea liniei de cache este de 32 de octeți. Cache-ul realizează umpleri pipeline din SDRAM și poate emite mai multe umpleri cache și scrieri inverse pentru diferite blocuri în timp ce deservește accesurile pentru blocurile din cache. Interfața SDRAM are o lungime de 64 de biți cu opt biți de verificare adăugați pentru a furniza un cod de corectare a erorilor. Interfața de memorie conține, de asemenea, buffer-uri de citire și scriere de 32 de octeți.

Legătura logică transmite și primește date din rețea și generează 9 biți și un semnal de ceas la fiecare jumătate de ciclu de ceas. Fiecare legătură oferă spațiu tampon pentru două canale virtuale cu 128 de intrare FIFO RAM pe 16 biți pentru controlul fluxului.

Elita

Elite oferă

QsNet conectează comutatoarele Elite într-o topologie quad fat tree . Arborele cu dimensiuni cvadruple îngroșate constă din noduri de procesare și comutatoare interconectate sub forma unei rețele delta; poate fi construit recursiv prin unirea a patru copaci îngroșați cvadruplu de dimensiune .

Rutarea pachetelor

Rețelele de elită sunt direcționate la sursă. Interfața de rețea Elan , care se află la nodul rețelei, adaugă informații de rutare la antetul pachetului înainte ca pachetul să intre în rețea. Informațiile despre rută sunt o secvență de etichete de link Elite. Pe măsură ce pachetul călătorește în interiorul rețelei, fiecare comutator Elite elimină prima etichetă de rută din antet și redirecționează pachetul către următorul comutator din rută sau destinația finală. O etichetă de rutare poate identifica fie o singură legătură de ieșire, fie un grup de legături.

Interfața Elan trece fiecare pachet în rețea folosind un control al fluxului de găuri de vierme . La nivel de legătură, interfața Elan împarte fiecare pachet în blocuri mai mici de 16 biți. Fiecare pachet este închis cu un jeton de sfârșit de pachet, dar originalul Elan trimite de obicei un jeton de sfârșit de pachet numai după ce a primit jetonul de confirmare a pachetului. Acest proces implică faptul că fiecare transmisie de pachet creează un circuit virtual între sursă și destinație.

Nodurile de rețea pot trimite pachete către mai multe destinații folosind capacitatea de difuzare a rețelei. Pentru a livra cu succes un pachet de difuzare, nodul sursă trebuie să primească o confirmare pozitivă de la toți destinatarii grupului de difuzare. Toate interfețele Elan conectate la rețea pot primi pachete de difuzare, dar, dacă dorește, expeditorul poate limita setul de mesaje difuzate la un subset de Elan-uri învecinate fizic.

Memoria virtuală globală

Elan poate transfera informații direct între spațiile de adrese ale grupurilor de procese cooperante, menținând în același timp securitatea hardware între acele grupuri de procese. Această capacitate - numită operație virtuală - este o extensie complexă a mecanismului convențional de memorie virtuală bazată pe două concepte: memoria virtuală Elan și contextul Elan.

Elan memorie virtuală

Elan are un MMU pentru a converti adresele de memorie virtuală date de diverse blocuri funcționale de pe cip (procesor de flux, motor DMA etc.) în adrese fizice. Aceste adrese de memorie fizică pot fi fie memoria locală Elan ( SDRAM ) fie memoria principală gazdă. Pentru a sprijini accesul la memoria principală, tabelele de configurare pentru MMU-urile Elan sunt sincronizate cu tabelele MMU ale procesorului principal, astfel încât Elan să poată accesa spațiul său de adrese virtuale . Software-ul de sistem este responsabil pentru sincronizarea tabelelor MMU și este invizibil pentru programatori.

MMU Elan poate converti între adrese virtuale în formatul procesorului principal și adrese virtuale scrise în format Elan (cuvânt de 32 de biți, arhitectură little-endian).

Tabelele MMU se pot mapa la o zonă partajată de memorie virtuală numită heap . Alocatorul la cerere mapează paginile fizice - principale sau Elan - cu acest interval de adrese virtuale. Astfel, folosind funcțiile de alocare oferite de biblioteca Elan, utilizatorul poate aloca porțiuni de memorie virtuală fie din memoria principală, fie din memoria Elan, iar procesorul principal și MMU Elan pot fi potriviți.

Sens contextual

Într-un sistem de memorie virtuală convențional, fiecărui proces utilizator i se atribuie un număr de identificare a procesului care definește setul de tabele MMU și, prin urmare, spațiile de adrese fizice disponibile pentru procesul utilizatorului. QsNet extinde acest concept astfel încât spațiile de adrese ale utilizatorilor dintr-un program paralel se pot suprapune. Elan înlocuiește valoarea ID-ului procesului cu valoarea contextului. Procesele utilizatorului pot accesa direct segmentul de memorie la distanță exportat folosind valoarea contextului și adresa virtuală. În plus, valoarea contextului determină, de asemenea, ce procese la distanță pot accesa spațiul de adrese prin intermediul rețelei Elan și unde se află acele procese. Dacă procesul utilizatorului este multithread, firele de execuție vor împărtăși același context în același mod în care împart același spațiu de adresă de memorie principală. Dacă un nod are mai multe procesoare fizice, atunci diferite procesoare pot executa fire separate. Cu toate acestea, firele vor împărtăși în continuare același context.

Detectarea defecțiunilor de rețea și toleranța la erori

Este important de reținut că detectarea defecțiunilor și toleranța la erori au loc între două Elan-uri care interacționează. În timpul funcționării normale, o sursă Elan transmite un pachet (adică informații de rută pentru rutarea sursei urmate de una sau mai multe tranzacții). Când un destinatar din Elan țintă primește o tranzacție cu flag ACK Now, aceasta înseamnă că această tranzacție este ultima pentru pachet. După atribuire, Elan trimite un pachet de confirmare, jetonul este returnat la sursa Elan. Doar atunci când sursa Elan primește un jeton de confirmare a pachetului și trimite un jeton de sfârșit de pachet pentru a indica finalizarea transmisiei pachetului. Regula de bază a rețelei Elan este că pentru fiecare pachet trimis prin legătură, interfața Elan returnează un jeton de confirmare a pachetului. Rețeaua nu va reutiliza legătura până când Elan nu trimite un astfel de token.

Dacă Elan detectează o eroare în timp ce transmite un pachet prin QsNet, trimite imediat un mesaj de eroare fără a aștepta jetonul de confirmare a pachetului. Dacă Elite detectează o eroare, transmite automat mesajul de eroare înapoi către sursă și destinatar. În timpul acestui proces, sursa și destinația Elan și Elite între ele izolează legătura eșuată și/sau comută prin detectarea defecțiunii la fiecare hop; sursa este notificată despre componenta eșuată și poate retransmite pachetul implicit de mai multe ori. Dacă acest lucru eșuează, originea își poate reconfigura tabelele de rutare în consecință pentru a evita o componentă eșuată.

Caracteristici

Mai jos sunt cele mai utilizate tipuri de comunicații pentru supercalculatoare și principalele lor caracteristici.

Alte rețele pentru supercalculatoare

Link -uri