Un supercomputador o superordinador és un ordinador amb una capacitat de càlcul i processament molt més elevada que una computadora d'ús comú.[2]
El rendiment d'un supercomputador és mesurat en operacions de punt flotant per segon (FLOPS). Durant l'any 2015, els supercomputadors aconseguien un rendiment de bilions de FLOPS (Teraflops) segons el TOP500.[3]
Els supercomputadors tenen un paper important en el camp de la ciència computacional, i s'utilitzen per a una àmplia gamma de tasques de càlcul en diversos camps, incloent la mecànica quàntica, el pronòstic meteorològic, la climatologia, l'exploració de petroli i gas, química computacional (calcular les estructures i propietats de compostos químics, macromolècules biològiques, polímers i vidres), i simulacions físiques (com ara simulacions dels primers moments de l'univers, avions i naus espacials aerodinàmiques, la detonació d'armes nuclears, i la fusió nuclear). A més, al llarg de la seva història, han estat essencials en el camp del criptoanàlisi.[4]
Els sistemes amb un nombre massiu de processadors generalment prenen un dels dos camins possibles. El primer és l'enfocament (per exemple, a la computació distribuïda) de centenars o milers d'ordinadors discrets (com ara ordinadors portàtils) distribuïts a través d'una xarxa (per exemple Internet) on dediquen una part o tot el seu temps a la solució d'un problema comú; cada equip individual (client) rep i processa una gran quantitat de petites tasques, on finalment informa dels resultats a un servidor central que integra els resultats de la tasca de tots els clients en la solució global.[5][6]
En l'altre camí, també hi ha la possibilitat de considerar milers de processadors dedicats (per exemple, en les arquitectures de xarxa en malla), que s'instal·len a una distància molt propera entre si (per exemple, en un clúster d'ordinadors). Això comporta un estalvi de temps considerable quant a la transmissió de dades, i fa possible que els processadors treballin junts (en lloc de tasques separades).
L'ús de processadors de múltiples nuclis combinat amb la centralització és una tendència emergent; un pot pensar en això com un petit grup (per exemple un processador multinucli en un telèfon intel·ligent, tauleta, ordinador portàtil, etc.) que tant depèn com contribueix al núvol.[7][8]
Història
Les primeres màquines classificables com a supercomputadors es varen introduir a la dècada de 1960 i van ser dissenyats en la seva majoria per Seymour Cray a la companyia nord-americana Control Data Corporation, que va liderar el mercat fins a la dècada del 1970.[9] Va ser aleshores quan Cray va abandonar l'empresa per fundar la seva pròpia companyia, Cray Research, que va passar a ser líder del mercat amb els seus nous dissenys, arribant a fabricar els supercomputadors més ràpids durant cinc anys (1985–1990).[10]
Mentre que els superordinadors de la dècada de 1980 utilitzen només uns pocs processadors, a la dècada de 1990, van començar a aparèixer les màquines amb milers de processadors tant als Estats Units com el Japó, establint nous records de rendiment computacional. El supercomputador Fujitsu's Numerical Wind Tunnel utilitzava 166 processadors vectorials per guanyar-se el primer lloc dels millors supercomputadors al 1994 amb una velocitat màxima de 1,7 Gigaflops (GFLOPS) per processador.[11] El Hitachi SR2201 va obtenir un rendiment màxim de 600 GFLOPS l'any 1996 utilitzant 2048 processadors connectats mitjançant una ràpida xarxa travessera en tres dimensions.[12] El processador Intel Paragon podia tenir de 1000 a 4000 processadors Intel i860 en diverses configuracions, i va ser classificat com el més ràpid del món l'any 1993. El Paragon era una màquina MIMD, que connectava els processadors a través d'una malla d'alta velocitat de dues dimensions, permetent executar processos en nodes separats i comunicant-se a través de la interfície de pas de missatges.[13]
Disseny de maquinari
Les primeres arquitectures de superordinador iniciades per Seymour Cray es van basar en dissenys compactes, innovadors i de paral·lelisme local per aconseguir el màxim rendiment computacional.[9] No obstant això, amb el temps, la demanda de més potència de càlcul va marcar el començament de l'era dels sistemes massivament paral·lels (sistemes que treballen majoritàriament de forma paral·lela).
A la fi del segle xx, la norma general eren superordinadors en paral·lel amb desenes de milers de processadors. Els superordinadors del segle xxi poden utilitzar més de 100.000 processadors (pocs d'ells són unitats gràfiques) connectats per connexions ràpides.[14][15]
Al llarg de les dècades, la gestió de la densitat de calor ha seguit sent un tema clau per als superordinadors més centralitzats.[16][17][18] La gran quantitat de calor generada per un sistema també pot tenir altres efectes, per exemple, reduir el temps de vida d'altres components del sistema.[19] Hi ha hagut diversos enfocaments per a la gestió de la calor, com l'ús d'un sistema de refrigeració d'aire-líquid híbrid o d'aire de refrigeració amb temperatures d'aire condicionat normals.[20][21]
Els sistemes amb un nombre massiu de processadors generalment prenen un de dos camins. En un primer cami podem destacar la computació per núvols, on la potència de processament de molts ordinadors organitzats de forma distribuïda i diversos dominis administratius s'utilitza de forma oportunista sempre que un equip està disponible.[5] En un altre enfocament, un gran nombre de processadors s'utilitzen en proximitat entre si, per exemple, en un clúster d'ordinadors. En un sistema centralitzat paral·lel la velocitat i la flexibilitat de la interconnexió es torna molt important i els superordinadors moderns han utilitzat diversos enfocaments que van des de sistemes millorats per InfiniBand fins a sistemes connectats tridimensionalment segons la topologia Torus.[22][23] L'ús de processadors multinuclis combinat amb la centralització és una opció emergent utilitzada per exemple en el sistema Cyclops64.[7][8]
A mesura que l'eficiència de preu, rendiment i energia dels processadors gràfics de propòsit general (GPGPU) han millorat,[24] una sèrie de superordinadors petaflop com Tianhe-I i Nebulae han començat a confiar-hi.[25] No obstant això, altres sistemes com la computadora K segueixen utilitzant processadors convencionals, com ara dissenys basats en SPARC i l'aplicabilitat general de GPGPUs en aplicacions de computació d'alt rendiment d'ús general ha estat objecte de debat, en què sent un GPGPU pot ser sintonitzat per obtenir una bona puntuació en punts de referència específics, la seva aplicabilitat general als algoritmes més habituals pot estar limitada a menys que s'apliqui un esforç significatiu per sintonitzar específicament l'aplicació.[26][27] No obstant això, les GPU estan guanyant terreny i el 2012 el superordinador Jaguar es va transformar en Cray Titan mitjançant l'adaptació de la Unitat central de processament amb una Unitat de procés gràfic (GPU).[28][29][30]
Els ordinadors d'alt rendiment tenen un cicle de vida útil d'uns tres anys.[31]
Un nombre de sistemes específics s'han dissenyat, dedicats a resoldre un sol problema concret. Això permet l'ús de xips FPGA específicament programats o fins i tot xips amb circuits integrats a molt gran escala (VLSI) personalitzats, permeten una millor relació preu / rendiment a costa de sacrificar la generalitat. Alguns exemples de superordinadors per a usos específics són Belle,[32]Deep Blue,[33] i Hydra,[34] per jugar a escacs, Gravity Pipe per a l'astrofísica,[35] i Deep crac,[36] per trencar el xifrat DES.
Ús d'energia i gestió de la calor
Un superordinador típic consumeix grans quantitats d'energia elèctrica, gairebé tota es converteix en calor, i aquest fet comporta que li cal sistemes de refredament. Un exemple de cost energètic, és el de Tianhe-1A que consumeix 4,04 megawatts (MW) d'electricitat.[37] El cost de l'energia i el sistema de refrigeració del sistema pot ser significant. En el cas de Tianhe-1A, considerant un cost de 0,10 € per kWh, pot arribar a ascendir a 3,5 milions d'euros l'any.
La gestió de calor és un problema molt important dels dispositius electrònics complexos i afecta els sistemes informàtics de gran abast de diverses maneres.[38] La potència de disseny de la unitat central de processament (CPU) i els problemes de dissipació d'energia tèrmica a la supercomputació superen els de les tecnologies de refrigeració de l'ordinador tradicional. Els premis de supercomputació per a la computació verda (baix consum energétic) reflecteixen aquest assumpte.[39][40]
L'embalatge de milers de processadors junts genera inevitablement quantitats significatives de densitat de calor que necessiten ser tractades. El Cray-2 va ser refrigerat per líquid, i s'utilitza un Fluorinert "cascada de refredament", que va ser forçat a través dels mòduls sota pressió.[20] No obstant això, l'enfocament de refrigeració per líquid submergit no era pràctic per als sistemes multi-gabinet basats en processadors "off-the-shelf", i en el Sistema X va ser desenvolupat un sistema de refredament especial que combina aire condicionat amb refrigeració líquida en conjunt amb l'empresa Liebert.[21]
En el sistema Blue Gene, IBM va utilitzar deliberadament processadors de baix consum per fer front a la densitat de calor.[41] L'IBM Power 775, llançat al 2011, té elements que requereixen refrigeració per aigua.[42] El sistema IBM Aquasar utilitza refrigeració per aigua calenta per aconseguir l'eficiència energètica, i aquesta aigua s'utilitza també per escalfar els edificis.[43]
L'eficiència energètica dels sistemes informàtics es mesura generalment en termes de "FLOPS per watt". El 2008, el Roadrunner d'IBM operaba a 3,76 MFLOPS / W.[44] Al novembre de 2010, el Blue Gene / Q va assolir 1684 MFLOPS / W.[45][46] El juny de 2011 els dos primers llocs de la llista verda 500 estaven ocupats per màquines Blue Gene a Nova York (una aconseguint 2097 MFLOPS / p) amb el clúster DEGIMA a Nagasaki posant tercer amb 1375 MFLOPS / W.
La capacitat dels sistemes de refrigeració per eliminar la calor residual és un factor limitant, ja que és possible que els cables de coure d'un superordinador transfereixin energia amb densitats de potència molt més elevades que l'aire forçat o que la capacitat dels circuits refrigerants en poder eliminar la calor de residus.[47][48] A partir de 2015, molts superordinadors tenen més capacitat d'infraestructura que el pic de demanda real de la màquina - els dissenyadors generalment dissenyen de manera conservadora la infraestructura d'energia i refredament per manejar més de la potència elèctrica màxima teòrica consumida pel superordinador.
Els dissenys per a futurs superordinadors són d'energia limitada - la potència de disseny tèrmic del superordinador en el seu conjunt, la quantitat d'energia i refredament que la infraestructura pot manejar, és alguna cosa més que el consum d'energia normal esperat, però menor que el consum teòric de potència màxima del maquinari electrònic.[49]
Islàndia pot ser un punt de referència per al futur amb el primer superordinador de zero emissions del món. Situat al Centre de Dades Thor a Reykjavik, Islàndia, aquest superordinador es recolza completament en fonts renovables per la seva potència en lloc dels combustibles fòssils. El clima fred també redueix la necessitat de refrigeració activa, pel que és una de les instal·lacions més verdes del món.[50]
Programari i gestió del sistema
Tanmateix, per tal que un supercomputador sigui efectiu, el programari s'ha de dissenyar de tal manera que s'eviti al màxim les interdependències de dades, i així pugui ser disposat en paral·lel eficientment d'acord amb la llei d'Amdahl.
Sistemes operatius
A la fi del segle xx, els sistemes operatius de superordinadors han estat objecte d'importants transformacions, sobre la base dels canvis en l'arquitectura del superordinador.[51] Mentre que els primers sistemes operatius van ser adaptats a mida per a cada superordinador per guanyar velocitat, la tendència ha estat a allunyar-se dels sistemes operatius interns a l'adaptació de programari genèric com Linux.[52]
Com els superordinadors massivament paral·lels moderns típicament separen els càlculs d'altres serveis per l'ús de diversos tipus de nodes, en general s'executen diferents sistemes operatius en diferents nodes, per exemple, utilitzant un petit i eficient nucli de pes lleuger com ara el node nucli de cómput (CNK) o el node Linux de còmput (CNL) en nodes de càlcul, tal com un sistema més gran com per exemple un derivat de Linux en el servidor i nodes d'E / S (entrada/sortida).[53][54]
Mentre que la planificació de tasques d'un sistema tradicional multi-usuari és un problema relacionat amb la capacitat de processament i de recursos perifèrics, en un sistema massivament paral·lel el sistema de gestió de treball ha de gestionar l'assignació dels recursos tant de càlcul com de comunicació, així com tractar amb fallades inevitables de maquinari quan desenes de milers de processadors són presents.[55]
Encara que la majoria dels superordinadors moderns utilitzen el sistema operatiu Linux, cada fabricant té la seva derivació-Linux específica, i no existeix cap norma estàndard de la indústria, en part a causa del fet que les diferències en les arquitectures de maquinari requereixen canvis per optimitzar el sistema operatiu per a cada disseny de maquinari.[51]
Instruments de programari i pas de missatges
Les arquitectures paral·leles de superordinadors sovint dicten l'ús de tècniques de programació especials per a explotar la seva velocitat. Les eines de programari per a processament distribuït inclouen APIs estàndards, com ara MPI i PVM, VTL, i solucions de programari basades en codi obert, com Beowulf.
A l'escenari més comú, s'utilitzen entorns com ara PVM i MPI per a clústers dèbilment connectats i OpenMP per a màquines de memòria compartida ben coordinades. Es requereix un esforç significatiu per optimitzar un algoritme per a la interconnexió de les característiques de la màquina que s'executarà; l'objectiu és evitar que qualsevol de les CPU perdi temps esperant dades d'altres nodes. Les GPGPUs tenen centenars de nuclis de processament i es programen utilitzant models de programació com ara CUDA o OpenCL.
D'altra banda, és bastant difícil depurar i testejar programes paral·lels. Es necessari utilitzar tècniques especials per testejar y depurar aplicacions.
Supercomputació distribuïda
Enfocaments oportunistes
La supercomputació oportunista és una forma de computació distribuïda en xarxa mitjançant la qual un "superordinador virtual" de moltes màquines de computació voluntàries dèbilment acoblades realitzen tasques de computació molt grans. La computació per núvols (o xarxa) s'ha aplicat a una sèrie de problemes altament paral·lelitzables (paral·lel massiu) a gran escala que requereixen escales de rendiment supercomputacionals. No obstant això, la xarxa bàsica i la computació al núvol es basen en el fet que la computació voluntària no pot manejar les tasques de supercomputació tradicionals com ara simulacions de dinàmica de fluids.
El sistema de xarxa de computació més ràpid és el projecte de computació distribuïdaFolding@home. F@h notificaba 101 PFLOPS de potència de processament x86 fins a octubre de 2016. D'aquesta xifra, més de 100 PFLOPS són aportats pels clients que s'executen en diverses GPU, i la resta de diversos sistemes de CPU.[57]
La plataforma BOINC alberga una sèrie de projectes de computació distribuïda. A partir de febrer de 2017, BOINC va registrar una capacitat de processament de més de 166 petaflops a través de més de 762.000 computadores actives (hosts) a la xarxa.[58]
A partir d'octubre de 2016, el projecte GIMPS va obtenir a la búsqueda del nombre primer de Mersenne un rendiment de 0.313 PFLOPS a través de més de 1,3 milions d'ordinadors.[59]
Enfocaments gairebé oportunistes
La supercomputació gairebé oportunista és una forma de computació distribuïda mitjançant la qual el "superordinador virtual" de molts ordinadors en xarxa dispersats geogràficament porta a terme tasques que requereixen gran capacitat de processament de còmput.[60] La supercomputació gairebé oportunista té com a objectiu proporcionar una major qualitat de servei de computació que la computació per núvols, mitjançant l'assoliment d'un major control sobre l'assignació de tasques als recursos distribuïts. També aprofita la intel·ligència sobre la disponibilitat i fiabilitat dels sistemes individuals dins de la xarxa de supercomputació. No obstant això, l'execució distribuïda gairebé oportunista d'exigir programari de computació paral·lel a les xarxes s'hauria d'aconseguir mitjançant l'aplicació dels acords de xarxa-prudent i assignació, de subsistemes co-assignació, de mecanismes d'assignació de topologia-conscient de comunicació, de biblioteques tolerants a errors de missatges i de dades de condicionament previ.[60]
HPC al núvol
La computació al núvol amb les seves recents i ràpides expansions i desenvolupaments han acaparat l'atenció dels usuaris i desenvolupadors de la computació d'altes prestacions (HPC) en els últims anys. La computació al núvol intenta proporcionar HPC-as-a-Service (HPC com a servei) exactament igual que altres formes de serveis disponibles en l'actualitat en el núvol com Software-as-a-Service, Platform-as-a-Service, i Infraestructura-as-a-Service. Els usuaris HPC poden beneficiar-se del núvol des de diferents angles, com ara escalabilitat, obtenció dels recursos sota demanda, rapidesa i baix cost.
D'altra banda, desplaçar aplicacions HPC presenta també un conjunt de reptes. Bons exemples d'aquest tipus de reptes es troben en òrbita de virtualització en el núvol, multi-lloguer dels recursos, i en problemes de latència de xarxa. Molta de la recerca s'està fent actualment per superar aquests reptes i fer de l'HPC en el núvol una possibilitat més realista.[61][62][63][64]
Mesures de rendiment
Potencia contra capacitat
Els superordinadors pretenen en general aconseguir la màxima potència de computació en lloc de capacitat de computació. La potència de computació és generalment considerada com l'ús de la maxima potència de càlcul possible per a resoldre un sol problema gran en el menor temps possible. Sovint, un sistema basat en la potència és capaç de resoldre un problema d'una grandària o complexitat que cap altre equip pot tenir, per exemple, una aplicació molt complexa de simulació del temps.[65]
La capacitat de computació, per contra, es pensa típicament com a utilitzar eficientment la potència de computació per a resoldre o bé problemes molt grans o bé molts problemes petits.[65] Les arquitectures que es presten a donar suport a molts usuaris per a les tasques rutinaries deuen tenir molta capacitat, però no es consideren supercomputadors, atès que no resolen un sol problema molt complex.[65]
Métriques de rendiment
En general, es mesura i compara (benchmark) la velocitat dels superordinadors en "FLOPS" (operacions punt flotant per segon), i no en termes de "MIPS" (milions d'instruccions per segon), com és el cas de les computadores de propòsit general.[66] Aquests mesuraments utilitzen normalment prefixos SI com tera, combinat en la forma abreujada "TFLOPS" (1012 FLOPS, pronunciats teraflops), o peta-, combinat en la forma abreujada "PFLOPS" (1015 FLOPS, pronunciats petaflops.) Superordinadors "Petaescala " poden processar mil bilions (1015) de FLOPS. Sobre la exascala, es calcula el rendiment en el rang de exaFLOPS (EFLOPS). Un EFLOPS és un trilió (1018) de FLOPS (un milió de TFLOPS).
No existeix un sol número que pugui reflectir el rendiment global d'un sistema de computació, encara que l'objectiu de Linpack benchmark és aproximar com de ràpid el computador soluciona problemes numèrics i de fet es àmpliament utilitzat a la indústria.[67] La mesura dels FLOPS és o bé basat en el rendiment teoric de punt flotant d'un processador (derivat de les especificacions del fabricant del procesador i mostrat com "Rpeak" a les llistes TOP500) que generalment es inabastable quan s'executen càrregues de treballs reals, o el rendiment assolible, derivat de la LINPACK benchmark i mostrat com "Rmax" a la llista TOP500. El benchmark LINPACK sol dur a terme la descomposició LU d'una matriu gran. El rendiment LINPACK dona alguna indicació del rendiment d'alguns problemes del món real, però no necessàriament coincideixen amb els requisits de processament de moltes altres càrregues de treball del superordinador, que, per exemple, poden requerir més amplada de banda de memòria, o poden requerir un millor rendiment de càlcul de enters, o poden necessitar una sistema d'alt rendiment d'E / S per aconseguir alts nivells de rendiment.[67]
La llista Top 500
La llista TOP500 mostra els 500 sistemes computacionals més potents coneguts fins a la data utilitzant com a criteri de rendiment la seva actuació segons el “LINPACK Benchmark” introduït per Jack Dongarra, on s'ha de resoldre un sistema dens d'equacions lineals per tal de mesurar de la potència de computació en punt flotant del sistema.
Com a norma, el sistema informàtic ha de ser capaç d'utilitzar-se per resoldre una sèrie de problemes científics. Qualsevol sistema dissenyat específicament per resoldre el problema de referència de LINPACK o té com a objectiu principal l'objectiu d'un alt rànquing TOP500 serà desqualificat.
La necessitat d'augmentar el processament de còmput dels supercomputadors ha anat sempre acompanyat de la necessitat que tenien les aplicacions, sobretot les d'investigació, per la gran quantitat d'informació que generen i/o per la gran quantitat d'operacions que realitzen. La llista no pretén ser imparcial o definitiva, però és una definició actual àmpliament esmentada de la supercomputadora "més ràpida" disponible en qualsevol moment donat.
Seguidament se'n descriu una taula resum de les aplicacions més importants que han existit en la història del supercomputador:
Dècada
Usos i equip implicat
1970s
Predicció del temps, investigació aerodinàmica ([[Processador vectorial#El_Cray-1_de_Cray_Reseach[8]|Cray-1]]).[68]
1980s
Anàlisi probabilístic,[69] modelatge de blindatge contra la radiació[70] (CDC Cyber).
L'ordinador IBM Blue Gene/P s'ha utilitzat per simular un nombre de neurones artificials equivalents a aproximadament un u per cent de l'escorça cerebral humana, que conté 1,6 mil milions de neurones amb aproximadament 9 bilions de connexions. El mateix grup de recerca també va tenir èxit en l'ús d'un superordinador per simular un nombre de neurones artificials equivalent a la totalitat del cervell d'una rata.[74]
Es destaca també el projecte europeu The Human Brain Project (HBP)Arxivat 2017-03-19 a Wayback Machine., que pretén finalitzar-se en un termini de 10 anys, un cop es va establir-ne les bases el 2013. HBP està dividit en dotze subprojectes, dels quals un se centra amb la supercomputació, on s'investigaràn noves arquitectures d'Alt Rendiment, entre altres.[75] L'objectiu principal del projecte és simular les funcionalitats a més alt nivell del cervell humà al complert. Això comportarà deixar de fer experiments amb animals, entendre el funcionament del cervell humà, i ajudar a la cura de malalties mentals.[76]
Avui en dia, la predicció del temps també es basa en els superordinadors. L'Administració Nacional Oceànica i Atmosfèrica (NOAA) dels Estats Units utilitza superordinadors per tractar centenars de milions d'observacions i ajudar a fer previsions més precises.[77]
El Programa de Simulació i Computació Avançada actualment utilitza superordinadors per mantenir i simular l'arsenal nuclear dels Estats Units.[78]
Tendències de recerca i desenvolupament
Donada la velocitat d'avanç actual, experts de la indústria estimen que els supercomputadors arribaran a 1 EFLOPS (1021, 1000 PFLOPS o un trilió de FLOPS) al 2018. El govern xinès en particular està pressionant per atènyer aquest objectiu després que van aconseguir el superordinador més potent del món amb Tianhe-1A en 2010 (en el lloc cinquè l'any 2012).[79] Utilitzant l'arquitectura del processador multicore Intel MIC, que és la resposta d'Intel als sistemes de GPU, SGI també planeja aconseguir un augment en el rendiment de 500 vegades més en l'any 2018 per tal d'aconseguir un EFLOP. Les mostres de xips de micro amb 32 nuclis, que combinen les unitats de processament de vectors amb la CPU estàndard, s'han tornat disponibles al mercat.[80] El govern de l'Índia també ha declarat aspiracions per a un superordinador del rang EFLOPS, que esperen completar l'any 2017.[81] Al novembre de 2014, es va informar que l'Índia està treballant en el superordinador més ràpid vist mai, que es va posar a treballar en les 132 EFLOPS.[82]
Moltes simulacions de Montecarlo utilitzen el mateix algorisme per processar un conjunt de dades generades a l'atzar; en particular, les equacions íntegre-diferencials que descriuen els fenòmens físics de transport, els camins aleatoris, col·lisions i deposicions d'energia i moment de neutrons, fotons, ions, electrons, etc. El següent pas per als microprocessadors pot estar en la tercera dimensió; i especialitzament per Montecarlo, les moltes capes poden ser idèntiques, el que simplifica el procés de disseny i fabricació.[83]