De ce algoritmii sunt nașpa și computerele analogice sunt viitorul

Știu că titlul acestui articol poate părea ușor provocator, dar este adevărat: Calculul algoritmic pur și simplu nu se adaptează prea bine atunci când vine vorba de probleme care necesită cantități imense de putere de procesare.

Aruncă o privire la cea mai recentă listă Top500 a computerelor de înaltă performanță. În prezent, cel mai puternic supercomputer este Sunway TaihuLight de la National Supercomputing Center din Wuxi, China. Acest mastodont oferă o performanță impresionantă de 93 de petaflopi (un petaflop este egal cu un cvadrilion de operații în virgulă mobilă pe secundă), ceea ce este cu adevărat de neînchipuit.

Supercalculatoare și consumul de energie

Cu toate acestea, o asemenea putere enormă de procesare are un cost. În acest caz, este nevoie de 10.649.600 de unități de procesare, așa-numitele nuclee, care consumă 15.371 de megawați – o cantitate de electricitate care ar putea alimenta un orășel de aproximativ 16.000 de locuitori, pe baza unui consum mediu de energie egal cu cel din San Francisco.

Dacă ne întoarcem atenția de la cele mai puternice supercalculatoare și ne concentrăm în schimb asupra celor mai eficiente din punct de vedere energetic, vom găsi sistemul TSUBAME3.0 de la Institutul de Tehnologie din Tokyo în fruntea listei Green500. Acesta oferă 14,11 gigaflops/watt cu un consum total de energie de „doar” 142 de kilowați necesari pentru cele 36288 de nuclee ale sale. În ceea ce privește eficiența energetică, aceasta este de aproximativ 2 ori mai bună decât TaihuLight. Dar 142 de kilowați reprezintă totuși o cantitate imensă de energie electrică.

Dar nu există supercomputere care să nu necesite atât de multă energie pentru a funcționa? Într-adevăr, există: Creierul uman este un mare exemplu – puterea sa de procesare este estimată la aproximativ 38 de petaflopi, aproximativ două cincimi din cea a lui TaihuLight. Dar tot ce are nevoie pentru a funcționa este de aproximativ 20 de wați de energie. Watts, nu megawați! Și, cu toate acestea, îndeplinește sarcini pe care – cel puțin până acum – nicio mașină nu a reușit să le execute vreodată.

„Nu există supercalculatoare care să nu necesite atât de multă energie pentru a funcționa? Într-adevăr, există: Creierul uman este un mare exemplu.”

Ce determină această diferență? În primul rând, creierul este un computer specializat, ca să spunem așa, în timp ce sisteme precum TaihuLight și TSUBAME3.0 sunt mașini mult mai generaliste, capabile să abordeze o mare varietate de probleme.

Mașini ca acestea sunt programate prin intermediul unui algoritm, un așa-numit program. Practic, acesta este o secvență de instrucțiuni pe care fiecare procesor le execută prin citirea lor dintr-un subsistem de memorie, decodificarea instrucțiunilor, preluarea operanzilor, efectuarea operației cerute, stocarea rezultatelor etc.

Un supercomputer economic: Creierul uman

Toate aceste solicitări de memorie necesită o cantitate substanțială de energie și încetinesc considerabil lucrurile. Faptul de a avea sute de mii de nuclee individuale necesită, de asemenea, o țesătură de interconectare complexă pentru a face schimb de date între nuclee, în funcție de necesități, ceea ce adaugă, de asemenea, la timpul și energia necesare pentru a efectua un calcul.

Un creier, pe de altă parte, lucrează cu o abordare complet diferită. Nu există niciun program implicat în funcționarea sa. El este pur și simplu „programat” de interconexiunile dintre componentele sale active, în cea mai mare parte așa-numiții neuroni.

Creierul nu are nevoie să preia instrucțiuni sau date din vreo memorie, să decodifice instrucțiuni etc. Neuronii primesc date de intrare de la alți neuroni, operează cu aceste date și generează date de ieșire care sunt transmise neuronilor receptori. OK – acest lucru este un pic prea simplificat, dar este suficient pentru a ne duce la următoarele întrebări:

  1. 1. Nu există un echivalent electronic al unei astfel de arhitecturi de calculator?
  2. 2. Avem cu adevărat nevoie de supercomputere de uz general?
  3. 3. Ar putea un sistem specializat să fie mai bun pentru abordarea unor probleme?

Răspunsul la prima întrebare este: Da, există un echivalent electronic al unei astfel de arhitecturi.

Se numește calculator analogic.

Introducem calculatoare analogice

„Analogic” derivă din cuvântul grecesc „analogon” care înseamnă „model”. Și asta este exact ceea ce este un calculator analogic: Un model pentru o anumită problemă care poate fi apoi folosit pentru a rezolva exact acea problemă prin intermediul simulării ei.

Așa-numitele analogii directe – care se bazează pe același principiu de bază ca și problema investigată – formează cea mai simplă clasă de astfel de metode analogice. Bulele de săpun folosite pentru a genera suprafețe minime sunt un exemplu clasic în acest sens.

„Un calculator analogic este un model pentru o anumită problemă care poate fi apoi folosit pentru a rezolva exact acea problemă prin intermediul simulării ei.”

O clasă mai general utilizabilă conține analogii indirecte care necesită o corespondență între problemă și domeniul de calcul. În mod obișnuit, astfel de analogii se bazează pe circuite electronice analogice, cum ar fi sumatoare, integratoare și multiplicatoare. Dar ele pot fi implementate și cu ajutorul unor componente digitale, caz în care se numesc analizoare diferențiale digitale.

Ambele abordări au în comun o caracteristică: nu există un program memorat care să controleze funcționarea unui astfel de calculator. În schimb, îl programați modificând interconectarea dintre numeroasele sale elemente de calcul – un fel de creier.

De la calculatoarele analogice la cele hibride

Considerați propriul meu prototip de calculator analogic, care este un exemplu de calculator analogic-electronic clasic. Întrepătrunderea firelor poate fi descrisă ca fiind programul mașinii. În acest caz, ea este configurată pentru a simula curgerea aerului în jurul unui așa-numit profil Joukowsky – o sarcină deloc banală.

Această fotografie a fost făcută de Tibor Florestan Pluto și arată propriul prototip de calculator analogic al autorului.

Toate elementele de calcul ale mașinii lucrează în paralelism complet, fără memorie centrală sau distribuită care să fie accesată și să aștepte. Programarea calculatorului se face prin conectarea și deconectarea cablurilor de conectare. Acest lucru poate fi destul de util pentru un singur cercetător și în scopuri didactice, dar pentru un adevărat calculator analogic de uz general ar trebui să se renunțe la această procedură manuală de racordare.

Din fericire, cu tehnologia electronică de astăzi este posibil să se construiască circuite integrate care să conțină nu numai elementele de calcul de bază, ci și o bară transversală care poate fi programată de la un calculator digital atașat, eliminând astfel complet cuibul de șobolani al firelor.

Aceste calculatoare analogice ating o putere de calcul extrem de mare pentru anumite clase de probleme. Printre altele, ele sunt de neegalat pentru abordarea problemelor bazate pe ecuații diferențiale și sisteme ale acestora – ceea ce se aplică la multe, dacă nu chiar la majoritatea celor mai relevante probleme actuale din știință și tehnologie.

De exemplu, într-o lucrare din 2005, Glenn E. R. Cowan a descris un Very-Large-Scale-Integrated Analog Computer (VLSI), adică un calculator analogic pe un cip, ca să spunem așa. Acest cip a livrat un număr impresionant de 21 de gigaflops pe watt pentru o anumită clasă de ecuații diferențiale, ceea ce este mai bine decât cel mai eficient sistem de astăzi din punct de vedere energetic din lista Green500.

Viitorul analogic al calculatoarelor

Calculatorul analogic, care a fost forma predominantă de calcul de înaltă performanță până în anii 1970, a fost în mare parte uitat de când calculatoarele digitale cu programe stocate de astăzi au preluat conducerea. Dar a sosit momentul să schimbăm acest lucru.

„Aplicațiile de mâine cer puteri de calcul mai puternice la niveluri de consum de energie mult mai mici. Calculatoarele digitale nu pot oferi acest lucru.”

Aplicațiile de mâine cer puteri de calcul mai puternice la niveluri de consum de energie mult mai mici. Dar calculatoarele digitale pur și simplu nu pot oferi acest lucru din start. Așadar, a sosit momentul să începem să dezvoltăm co-procesoare analogice moderne care să preia sarcina rezolvării ecuațiilor diferențiale complexe de pe calculatoarele tradiționale. Rezultatul ar fi așa-numitele computere hibride.

Aceste mașini ar putea oferi o putere de calcul mai mare decât supercomputerele actuale la un consum de energie comparabil sau ar putea fi utilizate în domenii în care sunt disponibile doar cantități infime de energie, cum ar fi controlerele implantate în medicină și alte sisteme încorporate.

Provocări viitoare

În mod clar, calculul analogic este foarte promițător pentru viitor. Una dintre principalele probleme de abordat va fi faptul că programarea computerelor analogice diferă complet de tot ceea ce studenții învață astăzi în universitate.

În computerele analogice nu există algoritmi, nu există bucle, nu există nimic așa cum îl cunosc ei. În schimb, există câteva elemente de calcul de bază, dar puternice, care trebuie să fie interconectate inteligent pentru a configura un analog electronic al unei probleme descrise matematic.

Provocările tehnologice, cum ar fi interconexiunile puternice sau elementele de calcul foarte integrate, dar precise, par minore în comparație cu această provocare educațională. În cele din urmă, schimbarea modului în care oamenii gândesc despre programare va fi cel mai mare obstacol pentru viitorul calculului analogic.

.