Crec que en l'actualitat no es pot parlar de supercomputació sense relacionar-lo amb Linux, I és que, tot i que Linux va ser concebut en un inici per ser el sector de les computadores personals, es pot dir que ha dominat tots els sectors excepte aquest com veurem més endavant amb algunes interessants estadístiques. A més, és un sector en què tampoc hi ha molta informació publicada en espanyol que sigui accessible per a tothom.
En canvi, he pogut comprovar que el món de les superordinadors o la supercomputació interessa, però en general és força desconegut per a molts dels usuaris. És per això que he reunit temps per crear i publicar aquest mega post sobre superordinadors que espero que us ensenyi tots els secrets d'aquest "misteriós" molt, i que quan acabeu de llegir tot aquest text ja no tingui secrets per a vosaltres ...
Més que un article o mega post, serà una mena de Wiki teòrico-pràctica sobre supercomputació que podràs consultar en qualsevol moment. Aquest és l'objectiu, que aquest article d'LxA sigui un punt d'inflexió, un abans i un després. ¿Ho aconseguiré? Anem a comprovar-ho ...
Índex
- 1 Introducció a la supercomputació
- 2 Què són els superordinadors?
- 3 Taxonomia de les superordinadors:
- 4 Per a què serveixen els superordinadors?
- 5 Quines són les més potents de món?
- 6 Parts d'un supercomputador: com estan construïts?
- 7 Com crear un superordinador casolana?
- 8 Instal·lar un sistema operatiu a l'ordinador
- 9 El pare / mare! Puc tenir un supercomputador a casa?
- 10 Fonts:
Introducció a la supercomputació
Per deixar-ho clar des del principi, els ordinadors que tenim a les nostres cases són dels més potents que existeixen. El que vull dir amb això és que no hi ha un microprocessador molt més potents que els que fem servir cada dia. La clau de les superordinadors no està en microprocessadors ultrapotentes o components molt exòtics i diferents als que fem servir diàriament a les nostres llars, la clau de la supercomputació és el paral·lelisme.
M'explico, els bancs de memòria RAM, els discs durs, els microprocessadors, plaques base, etc. d'un supecomputador probablement s'assemblin més del que t'imagines als que tu estàs fent servir ara mateix o tens a casa teva. Només que en el cas de les superordinadors s'agrupen en centenars o milers per sumar la potència de totes i cadascuna d'aquestes «computadores» independents i així compondre una gran màquina que funciona com un sol sistema.
Parlo de la computació paral·lela, Si. Un paradigma que permet crear supecomputadoras o el que coneixem com HPC (High-Performance Computing) o computació d'alt rendiment. El que vull dir és que si tu a casa tens un AMD Ryzen 7, amb 16 GB de RAM, una targeta de xarxa, i un disc dur de 8 TB, ... imagina què passaria si multipliques això per 1000 i ho fessis funcionar com si només fossin un PC. Serien 1000 Ryzen funcionant en paral·lel, 16 TB de RAM, i 8 PB d'emmagatzematge. Wow !! Això ja comença a semblar-se més a una superordinador, Oi?
Disculpa si et sembla una introducció molt simple i una definició una mica xarona, però ha estat intencionadament. Perquè vull que fins a l'usuari amb menys coneixements i experiència capti la idea d'aquest paradigma, ja que en cas contrari no entendrà la resta d'aquesta guia. Vull que et quedis amb aquesta idea, ja que si captes això, ja veuràs com aquestes grans i estranyes màquines que ocupen grans superfícies no et semblaran tan estranyes ...
Què són els superordinadors?
En l'apartat anterior hem introduït els termes paral·lelisme i HPC, bé. Per aconseguir crear un superordinador, és a dir, un ordinador amb aquestes capacitats HPC es necessita el paral·lelisme com hem deixat clar. Per definició, les superordinadors són aquelles màquines les capacitats d'algun tipus són molt superiors a la d'un ordinador comú que puguem tenir a casa.
En general, gairebé totes les capacitats d'un superordinador són molt superiors a un PC, però especialment poden cridar-los l'atenció la potència de càlcul que es deu als nuclis o unitats de processament, la memòria RAM de què disposen aquestes unitats de processament, i en menor mesura la capacitat d'emmagatzematge, Ja que en general són més importants les dues primeres per a les aplicacions normals que es donen a aquest tipus de màquines. Encara que bé és cert que pot haver-hi algunes grans màquines en què es necessiti molt més emmagatzematge i ample de banda que potència de càlcul o RAM, és el cas dels servidors d'emmagatzematge ...
Història de les superordinadors:
Potser una de les primeres superordinadors, o que els historiadors la cataloguen així va ser la màquina construïda en la dècada dels 60 per Sperry Rand per a la Marina d'Estats Units. Després vindria una època en què IBM era el gran rei amb màquines com les IBM 7030, i moltes altres. També la Atles de la Universitat de Manchester i Ferranti a principis dels 60 com a competència europea a les màquines americanes. Màquines que ja començaven a fer servir transistors de germani com a substitut de les antigues vàlvules de buit (no circuits integrats) i memòries magnètiques per a la seva composició, però que encara eren molt primitives.
Després vindria una altra era en què va entrar un altre gran, CDC, amb el CDC 6600 dissenyada per un vell conegut que donaria nom temps després a una important empresa que és a dia d'avui líder en aquest sector. parlo de Seymour Cray. La màquina que va dissenyar es va acabar en 1964 i va ser una de les primeres a utilitzar transistors de silici. La rapidesa aportada per la nova tecnologia de silici i l'arquitectura dissenyada per Cray va fer que la màquina fos fins a 10 vegades més ràpida que la de la competència, venent 100 d'elles per 8.000.000 $ cadascuna.
Cray dejaría CDC (Control Data Corporation) en 1972 para formar la compañía líder que os he comentado, se trata de la Cray Research, creando el Cary-1 de 80 Mhz y uno de los primeros CPUs de 64-bit en 1976, convirtiendose en la supercomputadora más exitosa de la época y que podéis ver en la imagen principal de este apartado en la fotografía en blanco y negro. La Cray-2 (1985) seguiría el exitoso camino de la primera, con 8 CPUs, refrigeración líquida y marcando el camino de las modernas supercomputadoras en muchos sentidos. Aunque el rendimiento era de 1,9 GFLOPS.
Una quantitat que et pot semblar ara gairebé irrisòria, tenint en compte que el telèfon intel·ligent que ara tens a la butxaca supera per aquests supercomputadors d'aquesta època. Per exemple, un SoC Snapdragon 835 o Exynox 8895 de Qualcomm o Samsung respectivament, té una potència d'uns 13,4 GFLOPS, és a dir, gairebé 10 vegades més que el Cray-2 i unes 100 vegades superior a l'Cray-1. Aquelles gegantines màquines no li arriben a la sola de les sabates a un objecte tan petit i lleuger com el que ara tines a les mans. La qual cosa m'agradaria pensar que d'aquí a unes dècades, puguem tenir dispositius tan potents o més com els superordinadors actuals però reduïts a mides cas minúsculs.
Seguint amb la història, després d'aquesta època vi l'era dels dissenys massivament paral·lels, És a dir, aquest abaratiment dels cosches en la producció de xips i millores en les interconnexions van fer possible que en comptes de sofisticades màquines es poguessin construir superordinadors unint centenars o milers de xips bastant similars als que tenim a l'equip de casa nostra com he comentat anteriorment. De fet, en els 1970 hi va haver una màquina que feia servir aquest nou disseny massiu i que superava per molt als Cray-1 (250 MFLOPS), aquesta va ser la ILLIAC IV, amb 256 microprocessadors arribant a l'1 GFLOPS, encara que va tenir alguns problemes de disseny i no es va arribar a completar, només es va implementar un disseny amb 64 microprocessadors.
Un supercomputador per a gràfics LINKS-1 de la Universitat d'Osaka seria una altra d'aquestes màquines massivament paral·leles, amb 257 microprocessadors Zilog Z8001 i 257 FPUs Intel iAPX 86/20, aconseguint un bon rendiment per a l'època i poder renderitzar gràfics 3D realistes, amb 1.7 GFLOPS. I a poc a poc vindrien màquines més i més potents, passant dels centenars de microprocessadors a milers com les actuals ...
A Espanya tenim una de les més potents superordinadors d'Europa i també una de les més potents de món, creada per IBM i trucada Mareostrum, Situada a Bacelona i que pertany a la xarxa de supercomputació espanyola composta per diverses d'ella, com la Picasso de la Universitat de Màlaga, que es nodreix de l'material rebutjat en les actualitzacions que rep de forma periòdica la MareNostrum. De fet, MareNostrum és una màquina que fascina l'autor Dan Brown i que ha estat escollida com el centre de dades més bell (barrejant una arquitectura d'un antic monestir amb la més alta tecnologia), com podeu veure a la imatge principal d'aquest article .
rendiment màxim | 11.15 PFLOPS |
---|---|
microprocessadors | 165.888 Intel Xeon Platinum |
memòria RAM | 390 TB |
Xarxa | Omnipath |
dissenyador | IBM |
Sistema operatiu | SUSE Linux |
Característiques de les superordinadors:
Encara que molts autors separen (al meu parer erròniament) els servidors dels supercomputadors i fins i tot dels mainframes, segons la definició que et vaig fer de superordinador, es podrien englobar perfectament els servidors com superordinadors, ja que no són més que ordinadors amb unes capacitats molt superiors a les computadores normals, només que estan dedicades a oferir algun tipus de servei dins d'una xarxa ... l'únic que sí cal diferenciar és que segons per a què estigui destinada la màquina, sí que tindrem unes capacitats que volem per sobre de la resta o una altra.
Per exemple, per a un servidor destinat a dades, com un servei Storage del núvol, el que ens interessa és que tingui una capacitat d'emmagatzematge brutal. Mentre que per a un mainframe destinat a processar transaccions i operacions bancàries, l'important serà la seva potència de càlcul. Però insisteixo, tant un com l'altre són superordinadors. Dit això, anem a veure algunes de les principals característiques que ens interessen d'una supercomputadora / mainframe / servidor:
- Seguretat: Si és una superordinador que està aïllada, és a dir, desconnectada d'Internet, potser s'hagin de implementar mesures de seguretat perimetral, però la seguretat com a tal dins el propi sistema no sigui tan important com un servidor que està connectat i a què es connecten molts clients o pot ser objectiu d'atacs a l'estar connectat a Internet. Però sigui en un cas o en un altre, sempre hi haurà mesures de seguretat.
- Alta disponibilitat: Un servidor o supercomputador ha de funcionar correctament i reduir a l'màxim els possibles problemes de maquinari o programari, ja que tenir-lo aturat pot resultar fatal per als propòsits per als quals s'ha construït i en el 100% dels casos, un equip caigut significarà perduda de grans quantitats de diners. Per això es prenen mesures en els sistemes operatius per reduir els reinicis necessaris i robustos (UNIX / Linux), fonts de subministrament elèctric alternatives (SAI) en cas d'apagada, redundància de sistemes per si falla un que hi hagi una rèplica que no afecti massa a el rendiment general, tècniques de fencing per aislamiendo d'un node perquè no afecti altres i pugui ser substituït en calent sense afectar el funcionament de la resta, tolerància a fallades amb sistemes com RAID en els discos durs, memòria ECC, evitar escenaris Split- brain, tenir un DRP (Disaster Recovery Pla) per actuar en cas de problemes, etc. I a més, volem que la fiabilitat sigui màxima, a l'igual que la vida útil, i els següents paràmetres siguin sempre els menors o majors depenent de què sigui:
- MTTF (Mean Time To Failure): és el temps mitjà per fallades, és a dir, mesura el temps mitjà que un sistema és capaç de treballar sense interrupció fins a tenir una fallada. Per tant, com més elevat sigui millor.
- MTBF (Mean Time Between Failure): és el temps mitjà entre fallades, és a dir, també interessa que sigui més elevat, ja que no volem que les fallades siguin molt consecutius, o en cas contrari la fiabilitat de l'equip serà dolenta.
- MTTR (Mean Time To Repair): temps mitjà per a reparar, és a dir, és la mantenibilitat. Volem que sigui més baix, perquè no estigui el sistema inoperatiu durant molt de temps.
- Alt rendiment i balanceig de càrrega: això cobra especial importància quan es tracta d'un servei en el núvol que necessita executar apps per als seus clients, en els superordinadors o mainframes destinats a càlculs matemàtics o simulacions científiques, etc. S'aconsegueix augmentant les quantitats de RAM i la quantitat i / o rendiment dels microprocessadors. A més, cal tenir un bon balanceig de càrrega, que això depèn de la gestió dels processos que fem, així no sobrecarregarem uns nodes més que altres, sinó que equilibrarem la càrrega de treball sobre tot el supercomputador per igual o de la forma més homogènia possible.
- Escalaritat: Capacitat que té el programari i maquinari per a adaptar-se sense limitacions a canviar de configuració o mida. Aquest tipus de màquines han de ser flexibles a l'hora d'ampliar la capacitat de cómpuo o capacitat de memòria, etc., si fes falta sense necessitat d'adquirir un nou supercomputador.
- cost: Això no només depèn de el cost de la màquina en si i de l'manteniment, que sol pujar a diversos milions amb facilitat, sinó que també depèn de l'consum de la màquina que en general es mesura en MW (megawatts) i de el cost dels sistemes de refrigeració, que també és elevat per la quantitat de calor que generen. Per exemple, si posem com a exemple el centre de dades de Facebook on té el servidor on s'allotja seu servei, tenim milers de milions de despesa, unes 1600 enginyers treballant en això, això sense comptar tècnics i administradors dedicats, unes factures de la llum que són estratosfèriques (tingues en compte que els centres de dades en l'actualitat consumeixen el 2% de l'energia elèctrica que es genera a tot el món, és a dir, milers de milions de watts i milers de milions d'euros. de fet, només Google consumeix el 0,01% de l'energia mundial, per això sol instal·lar els seus centres de dades en les zones de l'món on més barata està l'energia elèctrica, perquè això li estalvia molts milions), etc. Et pots imaginar que no és barat mantenir un equip com aquest ... i no és per menys, ja que el servidor monstruós que Facebook té a Oregon està en una nau d'uns 28.000 m2 per valor de centenars de milions d'euros, una descomunal granja de servidors amb milers de processadors, discs durs com per sumar diversos PB d'emmagatzematge, molts bancs de memòria RAM, targetes de xarxa a mansalva (calcula que hi ha 6 km de cablejat de fibra òptica per a entrellaçar), i tot consumint 30 MW d'electricitat i generadors dièsel a manera de SAI per apagades, generant tot una calor que necessita un complex sistema de dissipació amb l'aire condicionat a gran escala.
I això és tot pel que fa a les més importants característiques, encara que pot haver aplicacions concretes que necessitin coses més específiques.
Tendències actuals:
des dels sistemes fets gairebé a mida com els primers d'IBM, CDC o Cray, tot ha canviat molt ràpid amb l'arribada dels xips o circuits integrats i el seu baix cost, permetent l'inici de la nova supercomputació massivament paral·lela, amb milers d'elements. No obstant això, no et pensis que les actuals superordinadors són sistemes simples que només necessiten ajuntar milers de dispositius i ja està, són màquines complexes que necessiten un disseny acurat i una fabricació que mima cada detall per poder treure el màxim partit i que tot funcioni de manera adequada d'acord amb les capacitats o característiques que volem aconseguir.
Després d'aquestes primeres màquines compostes per circuits custom o xips custom dissenyats gairebé de forma específica per a la màquina, hem passat a fer servir sistemes molt més estàndard com els microprocessadors, com veurem en el següent apartat.
Microprocessadors específics:
Al principi es feien servir gairebé els mateixos xips de processament que tenien els equips domèstics, però en l'actualitat, les grans empreses com IBM, AMD i Intel, dissenyen models específics de les seves microprocessadors per a escriptori o per a altres fins. Per exemple, tots coneixem els microprocessadors PowerPC d'IBM, que han estat instal·lats en els Apple fins fa uns anys quan van adoptar els xips d'Intel. Aquests mateixos xips que s'usaven en els Apple també han potenciat superordinadors. No obstant això, IBM té diversos dissenys específics per a grans màquines que aconsegueixen millor rendiment treballant junts, com és el cas de els POWER, Encara que comparteixin ISA amb els PowerPC.
Passa el mateix amb els SPARC, que encara que no tenen actualment models específics per a l'escriptori perquè és un sector que no dominen ni els interessa massa, sí que en el passat havia estacions de treball amb aquests mateixos microprocessadors, encara que els actuals siguin especialmetne dissenyats per treballar en aquestes grans màquines. El mateix podria dir dels xips de Intel i AMD, Que microprocessadors específics com els Intel Xeon que comparteixen la microarquitectura amb els Core i3 / i5 / i7 / i9 actuals i molts elements (no és així amb els Itanium), només que estan optimitzats per a treballar en mode MP. El mateix passa amb AMD, que va dissenyar una implementació especial per superordinadors de les seves K8 o Athlon64 anomenada Opteron, i actualment els EPYC (basats en Zen).
Aquí novament m'aturo i m'agradaria definir els tipus de microprocessadors segons certs paràmetres:
- Segons la seva arquitectura: En funció de l'arquitectura de la pròpia CPU o microprocessador podem trobar:
- microprocessador: És una CPU o microprocessador normal, sigui quina sigui la microarquitectura o tecnologies que implementi.
- microcontrolador: Es tracta d'una CPU normal (normalment de baix rendiment) impelementada en el mateix xip juntament amb una RAM, XNUMX sitema I / S i un bus, és a dir, una microcomputadora en un xip. En general aquests no s'usen en superordinadors, però sí estan molt presents en multitud d'aparells domèstics, industrials, plaques com Arduino, etc. Però per al tema de les superordinadors olvidalos ...
- DSP (processador de senyal digital): També pots pensar que aquests processadors de senyal digital no quadren amb el tema de la supercomputació, però veuràs com cobren sentit quan veiem més adelaten la computació heterogènia. Però ara només has de saber que són uns processadors específics per a ser capaços de tenir un bon rendiment a l'hora de processar senyals digitals, el que ho fan bons per a targetes de so, vídeo, etc. Però això podria tenir alguns avantatges en certs càlculs com veurem ...
- SoC (System-on-a-Chip): És un sistema en un xip com el seu nom indica, és a dir, un xip en el qual s'ha inclòs una mica més que l'inclòs en el microcontrolador. A més d'una CPU (en general ARM), també s'inclou una flash, memòria RAM, I / S, i alguns controladors. Però en el cas dels SoCs, la CPU integrada sol ser d'alt rendiment i destinada a smartphones, tablets, etc., encara que ara hi ha microservidores que estan fent servir aquest tipus de xips com a unitats de processament com veurem.
- processador vectorial: És un tipus de microporcesador SIMD, és a dir, que executa una instrucció amb múltiples dades. Es pot dir que molts microprocessadors moderns tenen característiques SIMD gràcies a aquestes extensions multimèdia com MMX, SSE, etc., de les que hem parlat. Però quan dic processador vectorial em refereixo als purs, que han estat dissenyats basant-se processar un vector o array de dades per a cada instrucció. Exemples d'aquest tipus de processador són el Fujitsu FR-V, usat en algunes superordinadors japoneses, i també les GPUs podrien considerar-se com a tal.
- ASIC: Són circuits integrats d'aplicació específica per les sigles en anglès, és a dir, xips personalitzats en funció del seu ús. Una cosa que pot donar un gran rendiment per a certes aplicacions específiques, encara que el seu disseny suposa un major cost que l'ús d'unitats de processament genèriques. A més, si es fan servir FPGAs per implementar-los, no serà el més eficient electrònicament parlant. Per exemple, en l'actualitat es fan servir molt per construir màquines de mineria de moneda digital.
- Altres: Hi ha altres que ara mateix per aquest tema no ens interessen massa, com les APUs (CPU + GPU), els NPU, clockless microprocessor, C-RAM, barrel processor, etc.
- Segons els seus nuclis o cores: Hem passat dels monocore o CPU d'un sol nucli a tenir diversos, però dins dels microprocessadors que tenen diversos podem diferenciar entre:
- Multicorre: Són els tradicionals multinucli que fem servir freqüentment, com els DualCore, quadcore, octacore, etc. Solen tenir 2, 4, 8, 12, 16, 32, ... cores o nuclis, en un mateix xip o al mateix empaquetament però diferents xips.
- Manycore: Similar a l'anterior, però solen ser centenars o milers de nuclis, i perquè això sigui possible, els cores integrats han ser més simples i petits que els dissenys d'Intel i AMD, per posar un exemple, a més de més eficients energèticament. Per això se solen basar en nuclis ARM, col·locats en forma de tiles. Ajuntant molts d'aquests es poden aconseguir capacitats de càlcul molt elevades. També Intel ha coquetejat amb aquest tipus, amb els seus Xeon Phi, que són manycore x86 usant nuclis molt més simples però agrupats en grans quantitats (57 a 72) per a potenciar algunes superordinadors actuals.
- Segons el seu ús: En aquest cas, només ens interessa un tipus, que és el MP o els sistemes multiprocessador. En el teu equip de sobretaula o portàtil veuràs que el teu placa base només té un sòcol on inserir un microprocessador, en canvi, les plaques base dels servidors tenen 2, 4, ... sòcols en cadascuna d'elles, a això em refereixo amb MP.
Però els microprocessadors poc a poc estan sent desplaçats a favor d'altres unitats de processament més específiques amb les que s'aconsegueixen millors capacitats de còmput, és a dir, una millor eficiència entre els FLOPS per W aconseguit com veurem en el següent apartat.
Altres mètodes de processament:
Com he dit, els microprocessadors s'han anat desplaçant a poc a poc, tot i que encara tenen una gran quota de mercat, però hi ha altres unitats de processament que estan entrant amb fueza últimament, com les GPGPU o GPUs de propòsit general. I és que els xips de les targetes gràfiques solen ser de tipus SIMD o vectorials, el que pot aplicar una mateixa instrucció a multitud de dades de forma simultània, amb l'increment de rendiment que això comporta.
I el millor de tot és que, modificant el controlador i mitjançant programació, Sense modificar el maquinari, es pot aconseguir utilitzar aquestes GPUs per al processament de dades com si d'una CPU es tractés, és a dir, per al processament general i no només per a gràfics com fan les GPUs dedicades, permetent aprofitar el seu enorme potencial de càlcul , ja que la quantitat de FLOPS aconseguida per una targeta gràfica és molt superior a la d'una CPU.
El motiu pel qual aconsegueixen aquest tremend rendiment de càlcul és perquè estan fetes per a treballar amb gràfics, i això necessita de gran quantitat de càlcul matemàtic per moure'ls. Ademñas de ser SIMD com he dit, solen seguir un paradigma de programació paral·lela tipus Simt (Single-Instruction - Multiple-Threads), Aconseguint bones taxes de rendiment fins i tot quan la latència de la memòria és alta.
Tingues en compte que per generar un gràfic 3D, Es necessita un modelat que comença per a fusionar un conjunt de triangles amb coordenades W, X, Y i Z sobre el pla, per després aplicar color (R, G, B, A) i crear les superfícies, donar il·luminació, texturitzar les superfícies , barrejat etc. Aquestes coordenades de dades i de colors significa que contenen processadors configurables per processar-los, i s'entén que aquestes coordenades les que precisament formen els vectors amb els quals treballen les unitats de processament de la GPU i són les que s'aprofiten per fer els càlculs de propòsit general. Exemple, mentre que una CPU ha d'executar abril instruccions de suma per sumar X4X1X2X3 + Y4Y1Y2Y3, és a dir, X4 + Y1, després X1 + Y2, i així successivament, una GPU podria fer-ho en una sola vegada.
Gràcies a això, hem GPUs que treballen a molt baixes freqüències de rellotge, fins a 5 o 6 vegades menor que les CPU i aconsegueixen una taxa de FLOPS molt superior, el que significa un ràtio FLOPS / W major. Per posar un exemple, un Intel Core i7 3960X arriba als 141 GFLOPS de rendiment de càlcul, mentre que una AMD Radeon R9 290X pot aconseguir 5.632 GFLOPS, el que té un cost aproximat de cada Gflop d'uns 0,08 €, mentre que a 2004 es va llançar una superordinador nipona anomenada Earth Simulator de NEC amb processadors vectorials i un rendiment total de 41.000 TFLOPS el cost per cada GFLOPS va suposar uns 10.000 €, ja que estava constituïda per milers de processadors amb 8 GFLOPS cadascun.
Com veus aquí és on rau l'interès per crear superordinadors actuals basades en GPUs de NVIDIA o AMD en comptes d'usar CPU. I també comença a tenir importància la computació heterogènia, és a dir, combinar diversos tipus d'unitats de processament i encarregar cada operació a la unitat que la processi en menor temps o de forma més eficient. Això xoca amb el paradigma de la computació homogènia, on la CPU s'encarrega de la lògica, la GPU dels gràfics, DSP de senyals digitals, etc.
En canvi, per què no usar-los tots com proposa la computació heterogènia per optimitzar el rendiment. Cada un d'aquests xips són bons en alguna cosa, tenen els seus avantatges i inconvenients, per tant deixem que cadascú faci el que millor se li dóna ...
paral·lelisme:
I encara que no m'agradaria ser rendundante, al menys no tant com les unitats de les superordinadors, Sí que m'agradaria tornar a terme de l'paral·lelisme i explicar una mica més. I és que, gairebé des dels inicis de la computació, s'ha vingut potenciant el paral·lelisme en un o altre sentit:
- Paral·lelisme a nivell de bits: Tots hem vist com els microprocessadors han anat evolucionant des dels 4 bits, 8 bits, 16 bits, 32 bits i els actuals de 64 bits (encara que amb algunes extensions multimèdia que arriben als 128, 256, 512, etc). Això vol dir que una sola instrucció pot operar més dades o dades molt més llargs.
- Paral·lelisme a nivell de dades: Quan en comptes de dtes escalars fem servir vectors o matrius de dades sobre les quals operen les instruccions. Per exemple, una escalar seria X + I, mentre que un DLP correspon a X3X3X1X0 + Y3Y2Y1Y0. Això és concretament el que fan aquestes extensions en els set d'instruccions que he citat en el paral·lelisme a nivell de bits.
- Paral·lelisme a nivell d'instruccions: Tècniques que pretenen processar més d'una instrucció per cicle de rellotge. És a dir, aconseguir un CPI <1. I aquí podem citar la pipeline, arquitectures superescalars, i altres tecnologies com els principals mètodes per aconseguir-ho.
- Paral·lelisme a nivell de tasques: Em refereixo a l'multithreading o multi fil, és a dir, aconseguir que diverses fibres o tasques proposades pel planificador de el nucli de sistema operatiu es puguin dur a terme de forma simultània. Per tant, el programari en aquest cas permetrà que cada procés es pugui dividir en tasques més senzilles que puguin dur-se a terme en paral·lel. Si en Linux fas ús de la comanda ps amb l'opció -L, t'apareixerà una columna amb l'ID de l'LWP (Lightweight Proccess), és a dir, un procés lleuger o bri (thread). Tot i que les formes d'arribar a aquest paral·lelisme són diverses:
- CMP (Xip MultiProcessor): és a dir, fer servir diversos nuclis i que cada un processi un fil.
- Multithreading: Que cada CPU o nucli pugui processar més d'un fil a la vegada. I dins del multifil, també podem distingir entre diverses metodologies:
- multifil temporal o superthreading: és el que fan servir alguns microprocessadors com els UltraSPARC T2, que el que es fa és que s'alterna entre el processament d'un i altre fil, però realment no estan tots dos alhora processant de forma paral·lela.
- Multifil simultani o SMT (Simultaneous multithreading): en aquest cas sí que es processen en paral·lel, permetent als recursos de la CPU planificar de forma dinàmica i tenir una emissió múltiple perquè sigui possible. Això és el que fa servir AMD o Intel, encara que Intel ha registrat una marca que és HyperThreading no és més que un SMT. No obstant això, abans d'adoptar SMT en els AMD Zen, AMD usava CMT (clustered multithreading) en els seus Fusion, és a dir, un multithreading basat en nuclis físics i no en nuclis lògics. Dit d'una altra manera, en el SMT cada core o CPU actua com si fossin diversos nuclis lògics per poder portar aquestes tasques en paral·lel, en canvi en el CMT s'usen diversos nuclis físics per poer realitzar aquest multithreading ...
- Paral·lelisme a nivell de memòria: No fa referència a la quantitat de memòria instal·lada en el sistema, per tant és un terme confús. Es refereix a la quantitat d'accessos pendents que es poden fer de forma simultàniament. La majoria dels superescalars tenen aquest tipus de paral·lelisme, aconseguit gràcies a la implementació de diverses unitats prefetch que satisfan diverses peticions de falles de memòria cau, TLB, etc.
Independentment d'aquests nivells de paral·lelisme, es poden combinar amb altres tipus d'arquitectures per aconseguir un major paral·lelisme, com:
- Superescalar i VLIW: Dit d'una manera senzilla, són aquelles unitats de processament (CPU o GPUs) que té diverses unitats funcionals replicades, com per exemple, diverses FPUs, diverses ALUs, diverses Branch Units, etc. Això vol dir, que les operacions que realitzin aquest tipus d'unitats es poden fer de dos en dos o de tres en tres, etc., depenent de la quantitat d'unitats disponibles. La, per exemple, si per a executar un procés o programa es necessita processar les instruccions I = X + 1, Z = 3 + 2 i W = T + Q, en un escalar hauries d'esperar a que acabi la primera operació per introduir la segona, en canvi si disposes de 3 ALUs, es poden fer simultàniament ... * VLIW: en el cas de VLIW, el que sol haver-hi és rèplica d'algunes unitats, i el compilador ajusta les instruccions per adequar-les a tot l'ample de la CPU i que en cada cicle totes o gairebé totes les unitats estiguin ocupades. És a dir, VLIW és una instrucció llarga que es compon de diverses instruccions més simples empaquetades d'una forma concreta per adaptar-se a l'arquitectura de maquinari. Com comprendràs això té els seus avantatges i desavantatges que no explicaré aquí ...
- Canonada: La canalització o segmentació s'aconsegueix mitjançant la introducció de registres que parteixin la circuiteria, separant en etapes cada unitat funcional. La, per exemple, imagina que tens una pipeline de profunditat 3, en aquest cas les unitats funcionals es divideixen en tres parts independents, com si fos un procés de fabricació en cadena. Per tant, un cop la primera instrucció introduïda ha desocupat la primera etapa, ja pot estar entrant una altra en aquesta primera etapa, accelerant l'execució. En canvi, en un sistema sense pipeline, no es podria instroducir la següent instrucció fins que la primera hagi acabat del tot.
- Ejecición fora d'ordre: En una arquitectura en ordre, les instruccions són executades de forma seqüencial amb formi el compilador les ha generat per constituir el programa en execució. En canvi, això no és el més eficient, ja que pot ser que algunes puguin demorar-se més o s'hagin d'introduir bombolles o temps morts a la CPU mentre s'espera que aquest esdeveniment que està bloquejant el resultat de la instrucció succeeixi. En canvi, a la fora d'ordre es va a estar alimentant de forma constant a la CPU amb instruccions, sense importar l'ordre, augmentant el temps productiu. Això s'aconsegueix mitjançant uns algoritmes en què no entraré.
En general, la majoria de CPU actuals, Intel, AMD, IBM POWER, SPARC, ARM, etc., fan servir una barreja de tots els nivells de paral·lelisme, pipeline, superescalar, execució fora d'ordre, renom de registres, etc., per aconseguir molt més rendiment. Si vols saber més, pots consultar la taxonomia de Flynn, Que diferencia els sistemes:
- SISD: Unitat de processament que només pot processar una sola instrucció amb una sola dada. És a dir, executa les instruccions i dades de forma seqüencial, un a un.
- SIMD: Una sola instrucció i múltiples dades, en aquest cas el paral·lelisme només està en el data-path i no en el control-path. Les unitats de processament presents podran executar una mateixa instrucció sobre diverses dades alhora. És el cas dels processadors vectorials, GPUs i algunes extensions multimèdia que han aconseguit això dins dels microprocessadors (pe: SSE, XOP, AVX, MMX, ...).
- MISD: En aquest cas el paral·lelisme és a nivell d'instrucció, permetent que múltiples instruccions s'executin sobre un sol flux de dades. Imagina que tens X i Y i puguis operar X + I, XY, X · Y i X / I de forma simultània.
- MIMD: És el més paral·lel de tots, ja que pot executar diverses instruccions sobre diverses dades alhora ...
I crec que amb això els principis de paral·lelisme queden prou clars. Si vols aprofundir més, pots accedir a les fonts que vaig deixar a la zona final d'aquest article i en què he treballat durant els últims 17 anys de la meva vida.
Sistemes de memòria:
Sigui quin sigui el mètode de processament o unitat de processament usat, es necessita una memòria. Però aquí ens fiquem en temes una mica més escabrosos, ja que amb el paral·lelisme, els sistemes de memòria han de ser coherents i tenir una sèrie de característiques per no generar dades errònies. Tranquil, t'ho explico d'una manera molt senzilla amb un exemple.
Imagina que tens una sola CPU realitzant una instrucció de suma, imagina que aquesta sigui Z = I + X, en aquest cas no hi hauria problema, ja que la CPU portaria la INSTRUCION de summa i indicaria a la seva unitat aritmeticológica que sumi la posició de memòria I i X on es troben aquestes dades i finalment guardarà el resultat en la posició Z de la memòria. No problem! Però i ¿si hi ha diverses CPU? Imagina el mateix exemple d'aquesta CPU A que hagi de fer Z = I + X, però juntament amb una altra CPU B que fa X = I - 2.
bé, donem-li valors a cadascuna de les lletres: I = 5, X = 7. Si això és així, si CPU A actua primer, hauríem de Z = 5 + 7, és a dir Z = 12. Però si CPU B actua primer, X = 5 - 2 = 3, per tant, accediria a la memòria i emmagatzemaria 3 en la direcció on s'emmagatzema X, de manera que si la CPU a accedeix a aquesta posició, faria després la mateixa instrucció però el resultat seria Z = 3 + 7, per la qual cosa Z = 10. ¡Ooops! Ja tenim una fallada greu que no ens podríem permetre, o gens funcionaria adequadament ...
Per això, els sistemes de memòria han desenvolupat una sèrie de mètodes per mantenir aquesta coherència i saber quina operació hauria d'anar abans o després perquè el resultat sigui el correcte. Fins i tot en el teu equip domèstic passa això, ja que ara comptes amb diversos nuclis que estan accedint a la mateixa memòria, i no només això, també s'estan fent servir microarquitectures que aprofiten el multithreading, sistemes superescalars i execució fora d'ordre, cosa que compromet molt aquesta coherència si no es prenen mesures correctores. Doncs imagina en un supercomputador amb milers d'aquestes ...
Però clar, els costos reduïts de fabricació de xips en massa i la maduració de la tecnologia de xarxes han propiciat que es canviï ràpid cap a màquines amb molts processadors interconnectats entre si i això també ha obligat a sistema de memòria a canviar (Vegeu coupling), ja que aquests problemes que hi ha en un equip domèstic es multiplicarien per milers a l'tenir tants processadors actuant simultàniament.
Aquest enganxament que he citat ha anat evolucionant al llarg de el temps, començant per sistemes fortament acoblats amb una memòria principal compartida per totes les unitats de processament; i els dèbilment acoblats, amb sistemes en què cada processador té la seva pròpia memòria independent (distribuïts). En canvi, en els últims temps els dos sistemes que he citat s'han anat diluint a poc a poc i s'ha caminat cap a la hibridació, Amb els esquemes UMA (Uniform Memory Access) i NUMA (Non-Uniform Memory Access), encara que això és un altre tema de què podria parlar llargament i ens donaria per a un altre mega post.
Si vols una mica d'informació, només dir-te breument que en una arquitectura UMA de memòria els temps d'accés a qualsevol de les posicions de la memòria principal uniforme és igual, idependientemente de l'processador que estigui realitzant l'accés (entenc per accés una operació de lectura o d'escriptura). Això és degut al fet que està centralitzada.
En canvi, en EN, No és uniforme i el temps d'accés dependrà de l'processador que la sol·liciti. És a dir, hi ha una memòria local i una altra no local, dit d'una altra manera, una memòria compartida i físicament distribuïda. Com comprendràs, perquè això sigui eficient s'ha de reduir la latència mitjana a l'màxim, i sempre que sigui possible emmagatzemar les dades i instruccions que va a executar un processador de forma local.
Futur: computació quàntica
La era post-silici i totes les tecnologies de substitució de l'actual microelectrònica està encara bastant immadura i en fases de desenvolupament. Suposo que no hi haurà una transició radical, sinó que es comencessin a esgotar les possibilitats de l'actual silici fins que arribi al seu sostre físic, i després vindrà una era de tecnologies híbrides la base seguirà sent el silici per, en un futur una mica més llunyà donar el salt a la computació quàntica ...
En aquesta trancisión crec que jugaran un paper crucial dels ARM i els manycores per la seva eficiència energètica (rendiment / consum) i, això ja és una opinió molt personal, potser en la dècada de 2020 s'arribarà aquest límit de l'silici i en la dècada de 2030 es segueixi fabricant sobre tecnologies de silici aprofitant les inversions de les foundries i fent una mica més amplis els dius, ja que un die més gran ara significa més cost de fabricació, però quan no calgui fer aquestes enormes inversions per actualitzar una foundry suposo que aquesta estabilitat jugarà a favor de el preu. No obstant això, de la banda de l'dissenyador suposarà un major esforç de desenvolupament, ja que perquè aquest increment de superfície sense reduir la mida de fabricació suposi un increment de rendiment que valgui la pena, potser hagin de mimar molt les microarquitectures futures i anar cap a microarquitectures més eficients com aquests ARM que he nomenat ...
Tornant al tema de la computació quàntica, realment ja s'han construït alguns computadors quàntics, Però sincerament vist el que he vist encara estan bastant limitats i necessiten molt més desenvolupament per transformar-se en alguna cosa pràctic per corporacions, i molt més tros falta perquè arribin a madurar tant com per fer-se alguna cosa assequible per a les llars. Com podeu veure en les imatges que obren aquest apartat, encara semblen objectes de ciència ficció bastant complexos i que necessiten una refrigeració que les mantingui a prop de el zero absolut º K (-273ºC).
Aquesta temperatura limita la seva aplicació pràctica i massiva a l'igual que passa amb els superconductors. En l'àmbit dels superconductors s'han realitzat passos importants, però encara la temperatura de funcionament està força per sota de 0ºC, encara que seria molt interessant que aconseguissin que treballessin a temperatura ambient o en uns marges una mica més normals. A més de la barrera de la temperatura cal bregar amb altres factors problemàtics, com que les bases i fonaments de l'actual computació binària no serveixen per a la quàntica ...
He volgut citar els superconductors, perquè és una de les tecnologies en les quals es basen alguns ordinadors quàntics per poder cuantizar o aïllar aquests qubits dels que parlarem. No obstant això no és l'única tecnologia basal, també tenim ordinadors quàntics basats en ions (Àtoms amb un o més electrons menys) basats en el recompte d'aquests electrons dels qubits atrapats en trampes làser. Una altra alternativa és la computació quàntica basada en els espins nuclears, Usant els estats de l'espín de les molècules com quibits ...
Deixant els esculls de costat, intentaré explicar d'una manera molt simple en el que consisteix la computació quàntica, Perquè ho entenguin tots. Dit d'una manera ràpida, es tracta d'un pas més en el paral·lelisme, permetent als futurs ordinadors quàntics processar tal quantitat de dades o informació alhora que ens permetrà fer nous descobriments i resoldre problemes que ara no es poden solucionar amb els superordinadors convencionals. Per tant, no només suposaran una revolució tecnològica, sinó que seran un gran impuls per a la ciència i tecnologia en altres camps i el benestar de la humanitat.
anem amb l'explicació fàcil del que és un ordinador quàntica. Saps que les actuals ordinadors es basen en el sistema binari, és a dir, processen bits que poden prendre el valor zero o un (encès o apagat, voltatges alts o baixos si ho veiem des del punt de vista dels circuits), i aquests codis binaris són informació que es pot processar per a poder executar programes i fer tot el que avui podem fer en els nostres ordinadors.
En canvi, en un ordinador quàntica els bits quàntics (anomenats qubits, De quantum bits) no només treballen en els estats encès o apagat (1 o 0), sinó que també poden treballar en els dos estat, és a dir, en una superposició d'estats (Encesa i apagada). Això és així perquè no es basa en la mecànica tradicional, sinó en les lleis de la física quàntica. Per això deia que la lògica digital o binària no serveix i cal desenvolupar una altra lògica quàntica per basar el nou món informàtic que ens espera.
Practica amb la plataforma IBM Q: 16 lab línia que ha posat IBM perquè qualsevol pugui usar el computador quàntic de XNUMX qubits. És un editor amb una interfície gràfica basada en web que podràs usar per crear els teus programes ...
Per tant, aquesta nova unitat d'informació qubits, que substituirà el bit, té un potencial latent per aquest paral·lelisme o dualitat que permet gestionar moltes més possibilitats o dades d'una vegada. et poso un exemple perquè ho entenguis millor, imagina que tens un programa que suma dos bits (a, b) si un bit addicional és 0 i els resta si aquest bit addicional té el valor 1. Llavors, les instruccions carregades en memòria serien (add a, b) en el cas que aquest bit sigui 0 i (sub a, b) en cas que sigui 1. Per obtenir els dos resultats, la suma i la resta, hem de executar dues vegades, oi? ¿I si l'estat d'aquest bit addicional pogués estar en dos estats alhora? Ja no caldria executar dues vegades, oi?
Un altre exemple, imagina que tens una insturicción NOT llançada sobre 3 bits en un ordinador no quàntica. Si en el moment de llançar aquesta instrucció aquests tres bits tenen el valor 010, el resultat serà 101. En canvi, aquesta mateixa instrucció amb qubits, on cada valor pot estar en tots dos estat a la vegada, el resultat donaria tots els valors possibles de una mateixa vegada: 111, 110, 101, 100, 011, 010, 001 i 000. Això per simulacions científiques, criptografia, resolució de problemes matemàtics, Etc., és simplement INCREÏBLE.
Qui porta la davantera en aquesta tecnologia? Doncs de moment sembla que IBM és el líder, Encara que també Google, Intel i altres companyies o universitats estan competint i llançant els seus prototips de computadores quàntiques cada vegada capaços de manejar més qubits, tot i que tenen un problema afegit als ja dits, i és que de vegades necessiten alguns d'aquests qubits com qubits de «paritat», és a dir, per assegurar-se que els resultats no són erronis.
Problemes: consum elèctric i calor generada
El consum i la dissipació de calor d'aquestes grans màquines és un gran repte per als enginyers. Es busca reduir dràsticament aquest consum i bregar amb la calor d'una forma barata, ja que els sistemes de refrigeració suposen també un consum elèctric que cal sumar a l'propi consum de l'ordinador. Per això s'està pensant en algunes idees exòtiques com submergir els centres de dades sota el mar perquè usin la pròpia aigua com a líquid refrigerant (pe: la marca comercial Fluorinert de 3M, que són líquids refrigerants basats en fluorur) i guardar en complexos sistemes d'aire condicionat o de bombebo de líquid refrigerant ...
Com ja vaig dir, Google busca les zones amb les tarifes energètiques més barates per instal·lar els seus centres de servidors, ja que encara que sigui poca la diferència, a el cap dels anys suposa molts milions d'estalvi en la factura de la llum, suposo que a Espanya ho tenen complicat amb les tarifes que ens té la nostra estimada Endesa ...
Quant a la densitat de calor, També genera un altre problema subjacent, i és la reducció de la vida dels components de servidor o superordinador, el que atenta amb les característiques de durabilitat i vida útil que descrivim en l'apartat de les característiques que havia de tenir un supercomputador. I aquesta calor es deu a el rendiment elèctric dels components dels circuits, que malgasten la major part de l'energia consumida en forma de calor, igual que els passa als motors de combistión interna, el rendiment no és massa elevat i pot anar des el 25-30% per a la gasolina o els 30% o més per als dièsel, amb 40-50% per a alguns turbo. Això vol dir, per exemple en el cas de la gasolina, que només el 25 o 30% de la gasolina que consumeix s'usa realment per transferir potència a les rodes, el 75-70% restant es malgasta en forma de calor pel fregament dels elements. Com a detall dir que els motors elèctrics poden arribar a el 90% o més d'eficiència ...
Encara que no ve molt a el cas aquest exemple dels motors, amb això et vull fer saber que sempre que vegis calor en un dispositiu significa que s'està malbaratant energia en forma de calor.
Un cop presentats aquests dos problemes i tenint clar la relació calor / energia, Et puc posar l'exemple de l'supercomputador xinès Tianhe-1A que consumeix 4,04 MW d'electricitat, si estigués instal·lat en un país on es cobri el kWh a 0,12 € com en el cas d'Espanya, això significaria un consum de 480 € / hora (4000 kW x 0,12 €), tenint en compte que està connectat tot l'any, el consum anual que cal pagar ascendeix a 4.204.800 € (480x24x365). Quatre milions d'euros és una quantitat gens menyspreable de factura de la llum, oi?
I encara fa més ràbia pagar-la si sabem que per aquesta ineficiència dels nostres circuits d'aquests 4.204.800 € només un percentatge realment ens ha estat útil, I l'altre bon percentatge s'ha malbaratat en forma de calor. I no només això, sinó que hem hagut d'invertir diners per pal·liar aquesta calor que no serveix per a res però que afecta els nostres equips. A més, pensant en el medi ambient, aquest consum desproporcionat també suposa un gran problema si l'energia s'obté de fonts que generin algun tipus de contaminació (no renovables).
Un altre cas exemplar seria el supercomputador xinès que ara ocupa la primera plaça de l'Top500, és a dir, que el 2018 té la potència de càlcul més elevada. es diu Sunway Taihu Light i està destinat a estudis petrolífers, i altres aspectes científics, investigació farmacèutica i disseny industrial. Corre RaiseOS (Linux), fa servir un total de 40.960 microprocessadors SW26010 que són manycore (cada xip té 256 cores, amb un total de 10.649.600 nuclis), discs durs per competar 20 PB d'emmagatzematge, i 1,31 PB de memòria RAM si sumem tots els mòduls. Això li dóna una potència de càlcul de 93 PFLOPS (després explicaré què són els FLOPS si no ho saps). El seu preu ronda els 241 milions d'euros i el consum ascendeix a 15 MW, de manera que ocupa la posició 16 en el rànquing dels més eficients energèticament (6,051 GFLOPS / W). Aquests 15MW vol dir que cal multiplicar la factura de la llum per al Tianhe-1A per 3,75 ...
Fins i tot es mesura la relació potència de càlcul pel que fa a la quantitat de watts necessaris per generar aquesta quantitat de càlcul, parlo de la unitat FLOPS / W. Com més FLOPS per watt pugui generar una màquina, més eficient serà i menor serà aquesta factura de la llum, i aquesta temperatura generada, per tant també el cost per refrigerar-la. Fins i tot aquesta relació podria ser un factor limitant, ja que la infrastructura per a la refrigeració instal·lada no permetria una possible ampliació de futur si no es pot refrigerar adequadament amb les instal·lacions que tenim. Recorda que això atempta també amb una de les característiques que han de tenir: la escalaridad.
Taxonomia de les superordinadors:
Bé, hi ha moltes formes de classificar a les superordinadors, Però a mi m'interessa explicar la forma de classificar-les segons certs factors. Com he dit, molts no consideren als servidors com superordinadors i considero que és un gran error, ja que són superordinadors, o millor dit, els superordinadors són un tipus de servidor particular en el qual es busca potenciar les capacitats de càlcul.
Llavors jo diria que els tipus de superordinadors segons el seu ús són:
- servidor: És un tipus de superordinador molt comú que pot anar des d'alguns quants microprocessadors i uns quants mòduls RAM i discs durs configurats amb algun nivell RAID, fins a grans màquines amb milers de microprocessadors, molta quantitat total de RAM i gran capacitat d'emmagatzematge. I s'anomenen servidors precisament perquè estan destinats a oferir algun tipus de servei: emmagatzematge, hosting, VPS, correu, web, etc.
- supercomputador: La diferència entre una granja de servidors i un supercomputador a nivell visual és zero, no podries distingir entre tots dos. L'únic que els diferencia és que els supercomputadors estan destinats a realitzar càlculs complexos matemàtics o científics, simulacions, etc. Per això, la qualitat que més interessa aquí és la de càlcul. No obstant això, no confonguis el terme supercomputador que li hem donat a aquest grup i pensis que servidors i ordinadors centrals no són supecomputadoras (torno a insistir).
- ordinador central: Són superordinadors especials, encara que per definició són grans i costoses màquines amb capacitats molt elevades per a manejar gran quantitat de dades, com portar el control civil d'algun tipus, transaccions bancàries, etc. En canvi hi ha una diferència clara entre un mainframe i un superordinador, i és que el mainframe ha de potenciar les seves capacitats d'E / S i ha de ser més fiable, ja que han d'accedir a grans quantitats de dades com bbdd (bases de dades) externes. En general els mainframes són més usats pels ministeris de governs o per certs bancs o empreses, mentre que els supercomputadors són més cobejats per científics i militars. IBM és l'empresa líder en ordinadors centrals, com per exemple els seus z / Architecture basats en unes bèsties de càlcul com són els seus xips i amb distros com SUSE Linux en ells ...
Pel que fa als tipus segons la infrastructura:
- Clustering: És una tècnica per unir computadores connectades entre si per una xarxa per aconseguir crear una gran superordinador, mainframe o servidor. És a dir, és la base de la qual parlem en apartats anteriors.
- Centralitzats: tots els nodes estan situats en un mateix lloc, com els mainframes i la majoria de servidors o superordinadors.
- Distribuïts: tots els nodes no estan situats a la mateixa ubicació, de vegades poden estar separats a grans distàncies o distribuïts per la geografia, però interconnectats i operant com si només fossin un. Un exemple el tenim en la Xarxa Espanyola de Supercomputació, que es compon de 13 supercomputadors distribuïdes per la península. Aquestes 13 estan interconnectades per tal d'oferir una computació de molt alt rendiment a la comunitat científica. Alguns noms de superordinadors que la componen són: MareNostrum (Barcelona), Picasso (Màlaga), Finisterrae2 (Galícia), Magerit i Cibeles (Madrid), etc.
- Grid Computing: És una altra forma d'explotar i utilitzar recursos heterogenis no centralitzats, en general es poden usar les capacitats de càlcul, emmagatzematge, etc., de diversos dispositius repartits per tot el món per a alguna aplicació. La, per exemple, podem agafar part de la prencia de càlcul de milers o milions d'equips sobretaula o portàtils de molts usuaris, smartphones, etc. Tots ells formen una malla interconnectats a través d'Internet per resoldre algun problema. Per exemple, SETI @ home és un projecte de computació distribuïda o en malla que funciona a la plataforma BOINC (Berkeley Open Infrastructure for Network Computing) amb el qual pots col·laborar instal·lant un simple programari en el teu equip perquè agafin part dels teus recursos i afegir a aquesta gran xarxa per a la recerca de vida extraterrestre. Un altre exemple que se m'acut, encara que no lícit, és un malware que segresti part dels recursos del teu equip per minar moneda digital, que n'hi ha ...
Encara que existeixen altres formes de catalogar, Jo crec que aquestes són les més intersantes.
Per a què serveixen els superordinadors?
Bé, aquestes capacitats d'emmagatzematge, memòria o càlcul tan elevades que tenen els superordinadors ens permeten fer moltes coses que no podríem fer amb un PC normal, com certes simulacions científiques, resolució de problemes matemàtics, investigacions, hostalatge, oferir serveis a milers o milions de clients connectats, etc. En definitiva, són la millor manera que coneixem per accelerar el progrés humà, Encara que algunes de les coses que s'investiguen siguin destructives (usades per a fins militars) o per al robatori de la nostra privacitat, com certs servidors de xarxes socials i altres casos que segur coneixeu.
Servidors, big data, cloud ...
Els superordinadors que ofereixen serveis són conegudes com servidors, com ja saps. Aquests serveis poden ser d'allò més divers:
- Servidors d'arxius: Poden ser des de serveis de hosting o allotjament per a les pàgines webs, Storage, servidors FTP, xarxes heterogènies, NFS, etc.
- Servidors LDAP i DHCP: Altres servidors peculiars que emmagatzemen unes dades com els anteriors, encara que la seva funció sigui una altra com la de la connexió de centralitzat com en el cas dels LDAP o de proveir IPs dinàmiques com en el cas dels DHCP ...
- Servidors web: Es poden incloure en el grup anterior, perquè emmagatzemen dades també però són servidors purament enfocats a emmagatzemar pàgines webs perquè es puguin accedir mitjançant el protocol HTTP o HTTPS des d'una xarxa. Els clients podran tenir així accés a aquesta pàgina des dels seus navegadors.
- Servidors de correu: Pot subministrar serveis de correu electrònic perquè els clients puguin enviar i rebre correus electrònics.
- Servidors NTP: Aporten un servei per a la sincronització de l'hora, molt importants per a Internet. Són les sigles de Network Time Protocol, i estan distribuïts en estrats, sent els estrats més baixos els més precisos. Aquests estrats principals es regeixen per rellotges atòmics que tenen variacions molt baixes al llarg de l'any, de manera que donen una hora superprecisa.
- Altres: Altres servidors poden emmagatzemar grans bases de dades, big data, fins a multitud de serveis cloud (IaaS, PaaS, CAAS, SaaS). Un exemple són els VPS (Virtual Private Server), és a dir, dins d'un gran servidor es generen desenes o centenars de servidors virtuals aïllats dins de màquines virtuals i se'ls ofereix als clients la capacitat de posseir un d'aquests servidors per a les tasques que ell vulgui sense haver de pagar un servidor real i costejar la infrastructura i manteniment, només pagar una quota per adquirir aquest servei a l'proveïdor ...
I amb això acabem els més destacats d'aquesta categoria.
IA:
Algunes superordinadors estan destinades a implementar sistemes d'IA (Intel·ligència Artificial), És a dir, estructures que són capaços d'aprendre mitjançant l'ús de xarxes neuronals artificials, ja sigui implementades per algoritmes de programari o per xips neuronals. Un dels exemples que ara tinc en ment és el supercomputador IBM Blue Gene i l'algoritme BlueMatter desenvolupat per IBM i la Universitat de Stanford per poder implementar un cervell humà artificial en un supercomputador i analitzar així el que passa en ell en algunes efermedades psíquiques o neurodegeneratives com l'Alzheimer, comprenent així millor el que passa dins de el cervell i poder avançar en nous tractaments o tenir una major coneixement sobre el nostre òrgan més misteriós.
També molts serveis d'IA que fem servir tenen un supercomputador com a base, com Siri, o Amazon (vegeu Alexa per Tiro), etc. Però potser l'exemple que més interès em desperta és IBM Watson, Un supercomputador que implementa un sistema informàtic d'AI denominat també Watson que és capaç de respondre a preguntes formulades en llenguatge natural i altres peripècies per a les que l'han programat, com «cuinar» o saber certes barreges d'ingredients que poden ser agradables a l'paladar .
Es basa en una gran base de dades amb multitud d'informació de llibres, enciclopèdies (Inclosa la Wikipedia en anglès), i moltes altres fonts en què pot buscar informació per oferir respostes. Està basat en microprocessadors IBM POWER7 i compta amb uns 16 TB de RAM, i uns quants PB d'emmagatzematge per guardar aquesta gran quantitat d'informació, un maquinari que va costar sobre els 3 milions de dòlars. A més, els seus desenvolupadors diuen que pot processar 500 GB d'informació per segon. I per a la nostra alegria es basa en alguns projectes lliures i un sistema operatiu SUSE Linux Enterprise Server.
Aplicacions científiques:
Però els supercomputadors majorment són utilitzats per apliacions científiques, Ja siguin per a recerca en general o per a un ús específic militar. Per exemple, serveixen per realitzar multitud de càlculs sobre física quàntica, nuclear, estudis sobre la matèria com fa el supercomputador de CERN, simulacions per comprendre com es comporten les molècules o partícules elementals, simulacions de fluids, com el CFD que s'usa per estudiar la erodinámica de cotxes de competició, aeronaus, etc.
També per a altres estudis de química, biologia i mediciona. Per exemple, per tractar d'entendre millor el comportament de certes malalties o recrear com es reprodueixen els tumors i així tractar de trobar una millor solució per al càncer. Deia Dan Brown sobre el MareNostrum, que potser d'ell surti la cura per al càncer, tant de bo així sigui i que sigui com més aviat millor. A la UMA (Universitat de Màlaga) treballa Miguel Ujaldón que vam poder entrevistar a LxA en exclusiva pels seus desenvolupaments amb NVIDIA CUDA en supercomputació, i ell pot parlar sobre aquests desenvolupaments que milloraran la nostra salut ... També se m'ocorren altres aplicacions pràctiques, com l'estudi i predicció de fenòmens naturals com el clima, estudis de cadenes d'ADN i mutacions, plegament de proteïnes i anàlisi d'explosions nuclears.
Tingues en compte, que per a tots aquests estudis i investigacions es necessiten ingents quantitats de càlculs matemàtics molt precisos i moure moltes dades de forma molt ràpida, cosa que si ho haguessin de fer els humans amb l'única ajuda del seu intel·lecte potser trigarien segles a trobar la solució, mentre que amb aquestes màquines en pocs segons ha pogut desenvolupar una quantitat brutal de processos matemàtics.
Quines són les més potents de món?
Ja ho he vingut insinuant en alguns casos, hi ha una llista dels 500 supercomputadors més potents de món que es van actualitzant periòdicament. Es tracta del Top500, On a més trobaràs multitud d'estadístiques sobre aquestes màquines, informació, etc., així com una altra llista particular anomenada Green500 que se centra en aquesta eficiència energètica, és a dir, no només en mesurar els FLOPS bruts que pot desenvolupar la màquina, sinó posicionar en la llista a les 500 màquines amb una millor relació FLOPS / W.
No obstant això, potser hi ha superordinadors molt més potents que aquestes i que no apareguin a la llista, ja sigui perquè estiguin destinades a projectes secrets de governs o perquè per les seves característiques no compleixin certs requisits per ser analitzats mitjançant les proves de benchmarks que descriurem en l'apartat següent i per això no s'hagin publicat els resultats en aquest Top500. A més, se sospita que algunes de les màquines ben posicionades en aquesta llista poden estar alterant aquests resultats perquè estiguin específicament optimitzades per treure bones puntuacions en aquestes anàlisis de rendiment, encara que en la pràctica no sigui tant.
els punts de referència
Les proves per posiconar a aquestes superordinadors de la llista Top500 o per mesurar el rendiment de totes aquelles que estan fora d'aquesta llista és ben coneguda per tots, de fet són similars o iguals a les que realitzem als nostres equips domèstics o dispositius mòbils per veure el seu rendiment. Parlo de l'programari de els punts de referència. Aquest tipus de programes són fragments de codi molt específiques que realitzen certes operacions matemàtiques o bucles que serveixen per mesurar el temps que porta a la màquina per realitzar-los.
Segons la qualificació obtinguda, Es posicionarà en aquesta llista o s'ha de determinar el rendiment que pugui tenir aquesta màquina en el món pràctic, per a aquestes investigacions que hem detallat anteriorment. En general, les proves de rendiment també fan proves sobre altres components, no només sobre la unitat de processament, també sobre la RAM, targeta gràfica, disc dur, I / S, etc. A més, resulten d'allò més pràctic no sols per saber el rendiment a què pot arribar una màquina, sinó per saber què es necessita potenciar o ampliar ...
Els tipus de proves es poden classificar en sintètics, sota / alt nivell, i altres. Els primers són aquelles proves o programes que estan específicament dissenyades per mesurar rendiment (ex: Dhrystone, Whetstone, ...), mentre que les de baix nivell són aquelles que mesuren el rendiment d'un component de forma directa, com ara la latència d'una memòria, temps d'accés a memòria, IPC, etc. En canvi, les d'alt nivell tracten de mesurar el rendiment de conjunts de components, per exemple, la velocitat de codificació, de compressió, etc., el que significa mesurar el rendiment en conjunt de l'component de maquinari que interfereix en això, el controlador i el maneig que fa d'això el SO. La resta de proves poden estar destinades a mesurar consum energètic, temperatura, xarxes, soroll, càrregues de treball, etc.
El programa potser més conegut per realitzar benchmarks en superordinadors és LINPACK, Ja que va ser concebut per mesurar rendiment en sistemes científics i d'enginyeria. El programa fa ús intensiu d'operacions de coma flotant, per tant els resultats depenen molt de l'potencial de FPU que tingui el sistema i és precisament això el que més interessa mesurar en la majoria de superordinadors. I és aquí on podem mesurar aquesta unitat de la qual tant hem parlat al llarg de l'article: FLOPS.
Els FLOPS (Floating Point Operations per Second) miede la quantitat de càlculs o operacions en coma flotant que l'ordinador pot realitzar en un segon. Ja saps que els computadors poden realitzar dos tipus d'operacions, amb enters i amb coma flotant, és a dir, amb números de el conjunt de nombres naturals (... -3, -2, -1,0,1,2,3, ...) i amb els conjunts de nombres racionals (fraccions). Precisament quan treballem amb simulacions, gràfics 3D, o càlculs matemàtics complexos, física o enginyeria, són aquestes operacions de coma flotant les que més abunden i ens interessa una màquina que pugui manejar-los de forma més ràpida ...
Nom de l'múltiple | abreviatura | equivalència |
---|---|---|
- | FLOPS | 1 |
Quilo | KFLOPS | 1000 |
Mega | MFLOPS | 1.000.000 |
Giga | GFLOPS | 1.000.000.000 |
tera | TFLOPS | 1.000.000.000.000 |
Peta | PFLOPS | 1.000.000.000.000.000 |
Exa | EFLOPS | 1.000.000.000.000.000.000 |
Zeta | ZFLOPS | 1.000.000.000.000.000.000.000 |
Yota | YFLOPS | 1.000.000.000.000.000.000.000.000 |
És a dir, estem parlant que la màquina Sunway Taihu Light pot realitzar en càrrega màxima unes 93.014.600.000.000.000 d'operacions de coma flotant en cada segon. Impressionant!
Parts d'un supercomputador: com estan construïts?
Ja has vist al llarg de l'article moltes fotografies d'aquestes granges de servidors, Aquestes típiques sales grans que tenen multitud de cablejat pel sostre o sota el sòl que interconnecta aquests grans armaris que s'alineen com en passadissos. Doncs ara toca veure què són aquests armaris i què contenen al seu interior, tot i que arribats a aquest punt, crec que ja saps prou bé del que parlem.
Parts d'una supercomputadora:
Si et fixes en la imatge anterior de l'arquitectura d'un supercomputador d'IBM mostra basante bé com estan constituïdes. Es poden apreciar bé les parts des de la més simple a el conjunt muntat. Com veus, el component elemental és el xip, és a dir, la CPU o microprocessador que s'usa com a base. Per exemple, imagina que és un AMD EPYC. Després, dit AMD EPYC anirà inserit en una placa base que en general té dos o quatre sòcols, per tant cadascuna d'elles tindrà 1 o 2 EPYCs en contratste amb les plaques base que tenim en els nostres equips que no són MP.
Bé, ja tenim una placa amb diversos xips, i per suposat la placa base tindrà també agregats els components normals que té una placa base en un ordinador domèstic, és a dir, els bancs de memòria, i altres. Una d'aquestes plaques se sol denominar computi car com veus a la imatge. I se solen disposar en uns calaixos metàl·lics soles o agrupades en diverses. Aquests calaixos són els que veus a la foto demoniados node card. Aquests nodes o calaixos s'insereixen en uns rails que solen tenir unes mesures estàndard per grups (midplane), Encara que no sempre tots corresponen a nodes amb computi cars, sinó que es deixen certes badies lliures baix i dalt per allotjar altres «calaixos» o nodes amb les targetes de xarxa i els sistemes d'enllaç que interconnectarà tots aquests elements amb altres armaris, la PSU o font d'alimentació, altres safates que seran les que continguin els discs durs configurats en RADI, etc.
Aquests rails on s'insereixen aquests «calaixos» o nodes dels que hem parlat es munten de dues formes possibles: blade i rack (bastidors), com el que veiem a les diferents fotos. Com ja he dit, solen tenir unes mesures estàndard perquè els elements que aniran dins encaixin bé com succeeix amb una torre d'ordinador de sobretaula, amb unes mesures en polzades perquè no hi hagi problema a l'inserir qualsevol component en les badies. A més, els raks no solen anar sols, ja que es poden agrupar també en grups que semblen grans armaris amb altres elements auxiliars si cal.
Segons la mida de l'mainframe, servidor o supercomputador, la quantitat d'armaris serà més o menys, però sempre estaran interconnectats per les seves targetes de xarxa els uns amb els altres, normalment usant potents sistemes d'interconnexió d'alt rendiment i fibra òptica, Perquè així treballin com un sol computador. Recorda que parlem dels distrubuidos, per tant, aquests armaris poden estar en el mateix edifici o repartits en altres ubicacions, en aquest cas estaran connectats a una xarxa WAN o Internet perquè treballin en conjunt. Per cert, xarxes que deixarien en ridícul a les nostres connexions de fibra més ràpides de casa ...
Tipus de refrigeració:
Ja vam parlar de la preocupació per la refrigeració, De fet, una cosa que crida l'atenció quan entres en una granja de servidors o data center és el gran soroll que hi sol haver en alguns i els corrents d'aire. Això es deu a aquests sistemes de refrigeració que necessiten mantenir els sistemes a una temperatura adequada. I el que veus a la imatge superior no és ni més ni menys que una sala on està tot el sistema auxiliar de refrigeració d'un d'aquests centres, com veus bastant gran, complex i que no sembla «barat» de mantenir.
Els que estan refrigerats per aire necessiten enormes sales d'aire condicionat, Que si et queixes de la factura a l'estiu per posar el teu aparell, imagina't aquests. I això genera aquest gran soroll i corrents d'aire que he dit abans. I en el cas d'estar refrigerat per líquid, La cosa no és molt millor com s'aprecia, amb sofisticats entramats de canonades, la consegüent inspecció per evitar fuites, i la necessitat d'emprar milers o milions de litres d'aigua.
Es discuteix sobre emprar l'aigua reciclada en depuradores o capturar aigua de pluja per no malbaratar aquestes ingents quantitats d'aigua, i també el que us vaig comentar abans, situar els centres de dades sota el mar o en plataformes sobre l'oceà per utilitzar l'aigua marina com refrigerant. Actualment es fa passar l'aigua per les fonts de calor perquè extreguin aquests graus extra i després es bomba l'aigua calenta fins a unes torretes de refredament perquè es torni a refredar i comenci de nou el cicle. També s'han proposat altres mètodes experimentals que fan servir altres líquids refrigerants en els sistemes d'intercanvi per a baixar la temperatura de l'aigua, sense costosos compressors de fluids.
Xarxes d'interconnexió:
Les xarxes per les quals es interconnecten els diferents nodes i raks dels servidors o supercomputadors són xarxes de fibra òptica ultraràpides, ja que s'han d'evitar els colls d'ampolla que restarien efectivitat a aquest paradigma d'agrupar elements de forma massivament paral·lela. Si la màquina té connexió amb l'exterior, em refereixo a si està connectada a Internet, l'ample de banda que manegen és tremendament gran com pots imaginar.
Per exemple, són típtias les tecnologies d'interconnexió de clústers tipus Myrinet i Infiniand. Per exemple, en el cas de Myrinet es compon de targetes de xarxa desenvolupades específicament per a aquest tipus de connexió que hi haurà diespuestas en algun calaix o node dels que descrivim en l'apartat de parts. D'elles sortiran / entraran cables de fibra òptica (upstream / downstream) connectats a un únic connector. Les interconnexions es realitzen mitjançant switchs o routers, que hi haurà als armaris. A més solen tenir una bona tolerància a fallades, i s'ha anat evolucionant fins a aconseguir velocitats de 10 Gbit /.
En canvi, Infiniband és més avançat i és el mètode que més s'està emprant. És un sistema d'alta velocitat, baixa latència i baixa sobrecàrrega de la CPU, la qual cosa és un avantatge respecte a Myrnet, deixant que la potència de la CPU es destini als fins per als quals es pretén emprar restant el mínim per gestionar el sistema d'interconnexió. A més, és un estàndard mantingut i desenvolupat no per una empresa com l'anterior, sinó per una associació anomenada IBTA.
A l'igual que Myrnet, Infiniband usa targetes de xarxa (connectades a ranures PCI Express) per a les connexions, amb cablejat de fibra òptica, amb un bus sèrie bidireccional que evita els problemes dels busos paral·lels associats a llargues distàncies. Tot i ser sèrie pot arribar als 2,5 Gbit / s de velocitat en cada direcció de cada un dels enllaços, arribant a un cabal màxim en algunes de les seves versions d'uns 96 Gbps.
Manteniment i administració:
Els superordinadors o servidors tindran a un batalló de personal, Tots ells són agenos realment a les funcions o serveis que té realment la màquina. Normalment estem acostumats a equips domèstics a que nosaltres solem ser els propis sysadmins dels nostres sistemes ia més els usuaris que el fem servir. Però això no passa en aquests casos, on si es tracta d'un servidor, els usuaris seran els clients i si és un supercomputador els usuaris seran els científics o qui sigui que ho estigui fent servir ...
- Enginyers i desenvolupadors: Poden tenir cura que la màquina o el funcionament sigui l'adequat.
- Administradors de sistemes: Els sysadmins s'encarregaran de gestionar el sistema operatiu en el supercomputador perquè el funcionament sigui l'adequat. En general, aquests servidors o superordinadors no solen tenir entorns d'escriptori o interfícies gràfiques, de manera que se sol fer tot es del terminal. Per això, els sysadmins es poden connectar a la màquina mitjançant una terminal ximple de forma física o, si és possible l'administració remota, es connectaran de forma remota per ssh i altres protocols similars per executar les comandes necessàries.
- altres administradors: Si hi ha bases de dades, webs, i altres sistemes presents a la màquina.
- Experts en seguretat: Poden ser de diversos tipus, uns que s'encarreguin de la seguretat física o perimetral, és a dir, amb càmeres de vigilància, seguretat en els accessos a centre de dades, també que evitin possibles accidents (pe: incendis), etc., però també experts en seguretat que assegurin el sistema per evitar possibles atacs.
- Tècnics: Que també n'hi haurà d'allò més variat, amb tècnics que s'encarreguin de l'manteniment de la infrastructura, ténicos de xarxes, tècnics que s'encarreguin de substituir components danyats o reparar-los, etc. Normalment lelvan terminals ximples i en elles un programari els diu o marca el component que està espatllat, i com si en un joc de quadrícula es tractés donarà una sèrie de coordenades perquè el tècnic sàpiga a què passadís i rack dirigir-se per substituir l'element concret que està fallant. Per tant, els passadissos i racks estaran senyalitzats com si d'un pàrquing es tractés. A més, dins de la mateixa sala hi sol haver unes prestatgeries amb caixes d'elements de respost per poder substituir els que fallen. Per descomptat això es fa en calent, és a dir, sense apagar el sistema. Extreuen el node, substitueixen el component, introdueixen el node i connecten mentre la resta segueix funcionant ...
Quan he dit el terme terminal ximple, Em refereixo a un tipus de taula amb rodes que sol haver-hi en aquest tipus de centres i que tenen una pantalla i un teclat. Aquesta centraleta es pot connectar a servidor o superordinador perquè el tècnic o sysadmin pugui realitzar les seves comprovacions.
Sistemes operatius:
Com ja saps, Linux es va crear amb l'objectiu de conquerir el sector de l'escriptori, però paradoxalment és l'únic sector que no domina en l'actualitat. el escriptori està monopolitzat gairebé per Microsoft i el seu Windows, seguit molt de lluny per Apple MacOS amb una quota d'entorn a l'6-10% i un 2-4% per a GNU / Linux ...
Les xifres no són molt de fiar, ja que les fonts que es dediquen a realitzar aquests estudis de vegades no fan les proves d'una manera adequada, o esbiaixada en certes zones de l'planeta ... A més, algunes inclouen a ChromeOS i altres només a les distros GNU / Linux en aquesta quota. Per exemple, NetMarketShare publicar un estudi que situava a Linux al 4,83% i al d'MacOS al 6,29%, és a dir, bastant a prop. Suposo que en aquest estudi també s'han inclòs a ChromeOS. No obstant això és poc comparat amb el 88,88% que donen a Windows, encara que molt millor que FreeBSD (0,01%) i altres sistemes operatius que ni arriben a igualar a FreeBSD sumats tots junts.
En canvi, aquestes tímides xifres no es dóna en sectors com les grans màquines, Embeguts, dispositius mòbils, etc. Per exemple, en el sector de les superordinadors, que és el que ens concerneix ara, el domini és gairebé insultant i absolut. Si ens fixem en la llista de les supercomputadores més poderoses de l'món, les estadístiques de juny de 2018 diuen que el 100% de les 500 més potents fan servir Linux.
Si ens remuntem a 1998, només hi havia 1 superordinador amb Linux d'entre aquestes 500 més potents. El 1999 va pujar la xifra fins a 17, una més a l'any següent, 28 el 2000, ia partir d'aquí han crescut de forma exponencial arribant a les 198 el 2003, 376 el 2006, 2007 va arribar a 427 ia partir d'aquí han anat creixent poc a poc fins a arribar a xifres d'aproximadament 490 de 500 que han anat oscil·lant fins arribar a les 500 de 500 actuals.
Per tano, en aquests servidors, ordinadors centrals o superordinadors amb total seguretat debò les distros de Red Hat i SUSE, RHEL o SLES instal·lat en elles, o altres distros diferents com Debian, CentOS, Kylin Linux, etc. En cas de no tenir Linux tindria algun altre UNIX com Solaris, AIX, UX, o algun BSD, però els que brillen per la seva absència són MacOS i Windows. I com he comentat en l'apartat anterior, en general sense entorn d'escriptori, ja que es vol destinar tota la potència d'aquests equips a l'objectiu per al qual van ser dissenyats i no malgastar part d'ella en entorns gràfics que, a més, poc interessen als que els manegen. Una altra cosa diferent és els equips clients des d'on els usuaris o científics treballen, que si tindran entorns gràfics per a una anàlisi de la informació de forma més intuïtiva i gràfica.
Com crear un superordinador casolana?
Es pot crear un supercomputador casolà, si. De fet a la xarxa trobaràs algunso projectes com superordinadors constituïdes per moltes plaques Raspberry Pi unides. Evidentment les capacitats d'aquestes màquines no seran d'un altre món, però sí que permeten sumar les capacitats de moltes d'aquestes plaques i fer-les funcionar com si d'una sola màquina es tractés. Més que per a un ús pràctic, aquest tipus de projectes DIY es fa per ensenyar com es pot fer un supercomputador però d'una forma més barata ia menor escala perquè qualsevol apueda fer-ho a casa.
Un altre tipus de clúster o superordinador que es pot fer de forma casolana o més barat que les grans màquines és l'anomenat Beowulf. Es pot implementar amb qualsevol Unix-like, com BSD, Linux o Solaris i usant projectes de codi obert per aprofitar aquesta unió paral·lela de màquines. Aconsegueix bàsicament a unir vaios PC connectats per targetes Ethernet i switches per unir-los i fer que funcionin com un sol sistema.
amb diversos PC vells o que no estiguis utilitzant i una distro Linux qualsevol com Ubuntu, podries constuirte teu Beowulf. T'aconsello que revisis els projectes MOSIX / OpenMosix o PelicanHPC. Amb ells podràs realitzar aquesta implementació. No obstant això, si us crida l'atenció, intentaré en un futur fer un tutorial a LxA sobre com implementar de forma pràctica i pas a pas.
Instal·lar un sistema operatiu a l'ordinador
Aquest apartat és bastant senzill de descriure, ja que la instal·lació és pràcticament igual que en un ordinador qualsevol. Només que haurem de tenir en compte que hauríem de configurar determinats aspectes com la configuració LVM o RAID que es faci servir. Però en general, no dista massa d'una instal·lació quotidiana. L'única cosa impactant és que en comptes d'un sol processador i uns mòduls RAM i un o dos discs durs, ja que són centenars o milers d'ells, encara que des del punt de vista de l'administrador nohaya diferència. El sistema veurà a la màquina com un tot, només que els recursos de què disposem són extraordinaris.
El que també notaràs de diferència serà l'absència de BIOS / UEFI, Ja que aquests sistemes solen utilitzar sistemes EFI diferents o altres implementacions de firmware molt específiques per a certes plataformes basades en SPARC, POWER, etc. Per exemple, Intel EFI està suportat pels Itanium, De fet, si ens llegeixes assíduament també coneixeràs el magnífic poryecto de Linuxboot. Però això no presenta massa problema, només familiaritzar-te amb aquesta interfície i res més, a més, la quantitat de vegades que s'apaga / s'encén o es reinicia aquest tipus d'equips es pràcticament nul·la.
El pare / mare! Puc tenir un supercomputador a casa?
Independentment dels prototips que puguem muntar usant el format Beowulf o el clúster de plaques Raspberry Pi o un altre tipus de SBCS, tinc bones notícies per a tu. Pots fer servir la potència d'un supercomputador des de casa, sense comprar ni muntar cap infrastructura. Només pagant una quota mensual per adquirir aquest servei podràs comptar amb tota aquesta potència disponible per a qualsevol fi que la vulguis utilitzar. I això és gràcies als diferents serveis del núvol, com AWS (Amazon Web Services), Google Cloud Computing, Microsoft Azure, IBM, etc.
A més, contractar aquest tipus de serveis no només suposa un estalvi davant de tenir un servidor propi dedicat, sinó que també permet altres avantatges. Per exemple, ens permet augmentar ràpidament el potencial o mida del nostre servei contractant una tarifa una mica superior, cosa que si ho tinguéssim físicament suposaria comprar nou equipament. Tampoc hem de pagar despeses addicionals com el consum elèctric o el personal de manteniment, ja que d'això s'ocuparan els tècnics de l'proveïdor, que permetrà oferir unes garanties de fiabilitat a un bon preu.
Hi ha molts serveis que ofereixen VPSs a bon preu, És a dir, un servidor virtual implementat sobre una màquina virtual en un servidor real o superordinador. Aquest servidor accedirà una proporció de les capacitats de la màquina real per oferir-te a tu. Pots trobar bones plataformes de VPS amb 1 & 1, TMDHosting, HostGator, Dreamhost, i altres tants ... A més, podràs veure les característiques de l'VPS a les respectives webs, juntament amb els preus. Entre les característiques veuràs la memòria RAM, processadors, emmagatzematge disponible, ample de banda o tràfic de xarxa permès, etc. A més, aquests VPSs poden ser Linux o Windows principalment, segons les teves necessitats.
D'altra banda, tenim altres serveis una mica més avançats com els del núvol, que ens permeten contractar IaaS (Infrastructure as a Service) o infrastructura com un servei. És a dir, ens permet disposar d'un superordinador o servidor com un servei sense necessitat de tenir-la físicament. En aquest cas tenim Microsoft Azure, Google Cloud Platform, IBM SOFTLAYER, CloudSigma, Rackspace, VMWare vCloud Air, Amazon Web Services, Citrix Workspace Cloud, Oracle Cloud Infrastructure, etc.
Fonts:
Arquitectura d'ordinadors i microprocessadors - El món de Bitman
Sistemes operatius i administració - C2GL
No oblidis deixar els teus comentaris amb dubtes, aportacions, o el que t'ha semblat la meva humil aportació ... Espero que t'hagi servit d'ajuda per conèixer més de prop aquest món.
3 comentaris, deixa el teu
si tinc 2 o 3 ordinadors a casa com fusiono la seva potència fàcilment? puja un tutorial
Excel·lent article. Gràcies per l'aportació !!!
Magnífic article, molt il·lustratiu i senzill d'entendre. Gràcies per l'aportació. Només em queda un dubte, i és com està instal·lat el sistema operatiu, entenc que el nucli ha de ser compilat per al maquinari, ja que el maquinari dista molt dels estàndards que podrien funcionar bé amb els paquets que fem servir normalment.