High performance computing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m v2.05 - Fixed using WP:WPCleaner (Doppie quadre non chiuse - Nota ripetuta - Errori comuni) |
|||
(48 versioni intermedie di 22 utenti non mostrate) | |||
Riga 1:
L'espressione è molto Gli attuali sistemi di calcolo più diffusi, che sfruttano le tecnologie HPC, sono installazioni che richiedono rilevanti investimenti e la cui gestione richiede l'utilizzo di personale specializzato di alto livello. L'intrinseca complessità e rapida evoluzione tecnologica di questi strumenti richiede, inoltre, che tale personale interagisca profondamente con gli utenti finali (gli esperti dei vari settori scientifici nei quali questi sistemi vengono utilizzati), per consentire loro un utilizzo efficiente degli strumenti
<ref name="nota4
== Storia ==
Il 1990 vide la nascita del primo modello standard di programmazione parallela per HPC. All'inizio del decennio, i sistemi di supercalcolo vettoriale come quelli commercializzati dalla [[Cray Research]], [[Fujitsu]] e [[NEC]], erano ampiamente utilizzati nell'esecuzione di applicazioni su larga scala. Venivano combinati insieme da due a quattro [[processore vettoriale|processori vettoriali]] che formavano sistemi particolarmente potenti con una singola memoria condivisa. I [[multiprocessore simmetrico|multiprocessori simmetrici]] (SMP), erano costituiti da un piccolo numero di processori [[RISC]] che condividevano la memoria, ma sorsero dei problemi quando fu chiaro che sarebbe stato difficile estendere questa tecnologia ad un grande numero di [[CPU]]. Nacquero così le nuove piattaforme parallele a memoria distribuita (DMP) prodotte da compagnie come [[Intel]], [[Meiko]] e [[nCube]]: i computer [[SIMD]] (''Single Instruction Multiple Data'') che potevano eseguire una singola istruzione su un insieme di dati simultaneamente, ad esempio sugli elementi di un array. Questi nuovi sistemi, benché costosi da acquistare e gestire, potevano essere costruiti in formati differenti così da poter creare macchine dal costo differenziato in base alle esigenze e i budget delle aziende clienti.
A poco a poco le aziende iniziarono a produrre delle DMP proprie costituite da una serie di singoli computer collegati ad una rete ad alta velocità con un sistema che garantisse un rapido trasporto di dati tra le diverse memorie. Allo stesso modo le [[workstation]] collegate a delle comuni [[LAN]] iniziarono ad essere utilizzate insieme per lo svolgimento di un unico lavoro, fornendo così dei sistemi paralleli a basso costo. Tali sistemi divennero noti come “[[Clusters of workstation]]” (COW). Sebbene le reti [[Ethernet]] usati dalle COW fossero lente in confronto a quelle delle vere DMP, queste risultavano però molto più economiche da costruire.
Nella seconda metà degli anni novanta, la maggior parte dei produttori statunitensi cominciarono a produrre [[multiprocessore simmetrico|SMP]]. Contrariamente a quelli costruiti negli anni ottanta, questi ultimi relativamente poco costosi, erano destinati ad un più ampio impiego, come i computer desktop.
Infine tra le altre alternative esistono delle piattaforme HPC che eseguono il codice su una [[CPU]] accedendo direttamente ai dati memorizzati su un altro sistema [[multiprocessore simmetrico|SMP]], utilizzando ad esempio un indirizzamento globale ed un sistema per il supporto della rete di collegamento tra i vari [[multiprocessore simmetrico|SMP]]. Tali sistemi sono i cosiddetti [[ccNUMA]] (cache coherent NonUniform Memory Access). Questi ultimi possono essere visti come delle grandi [[multiprocessore simmetrico|SMP]] virtuali, anche se il codice viene eseguito più lentamente se i dati su cui si opera sono memorizzati su un altro [[multiprocessore simmetrico|SMP]] (da qui il costo d'accesso non uniforme).
Line 35 ⟶ 26:
|anno=2006
|url=http://books.google.it/books?id=qA4DbnFB2XcC&printsec=frontcover&dq=editions:ISBN047165471X#v=onepage&q=&f=false
|accesso=23 febbraio 2010
|
|capitolo=The Challenge of Providing a High-level Programming Model for High performance computing
}}</ref>.
La tecnologia [[InfiniBand]] è la più utilizzata per interconnettere i sistemi HPC anche se la tecnologia [[10 gigabit Ethernet]] con l'aggiunta delle tecnologie [[lossless ethernet]] tendenzialmente potrà essere la soluzione di riferimento.<ref>{{en}}{{cita libro
|cognome=Gai
|nome=Silvano
Line 49 ⟶ 39:
|mese=aprile
|url=http://www.lulu.com/content/2123054
|accesso=18 giugno 2009
|
|capitolo=I/O Consolidation in the Data Center
|dataarchivio=3 marzo 2009
|urlarchivio=https://web.archive.org/web/20090303162508/http://www.lulu.com/content/2123054
|urlmorto=sì
}}</ref> A rendere più complicato il panorama del settore HPC c'è la tendenza alla creazione di sistemi ibridi, non più trainati solo dall'aumento del numero di cpu presenti, ma anche da altri coprocessori (come schede [[Graphics Processing Unit|GPU]] o processori [[Field Programmable Gate Array|FPGA]]) che, andandosi ad affiancare alle cpu, hanno aperto nuove potenzialità di calcolo.
== Descrizione ==
I sistemi di calcolo più diffusi, che sfruttano le tecnologie HPC, sono installazioni che richiedono rilevanti investimenti e la cui gestione richiede l'utilizzo di personale specializzato di alto livello. L'intrinseca complessità e rapida evoluzione tecnologica di questi strumenti richiede, inoltre, che tale personale interagisca profondamente con gli utenti finali (gli esperti dei vari settori scientifici nei quali questi sistemi vengono utilizzati), per consentire loro un utilizzo efficiente degli strumenti
<ref name=
|url=http://www.
|titolo=Calcolo numerico ad alte prestazioni
|cognome=
|nome=
|coautori=Massimo Celino
|anno=2008
}}</ref>.
È importante evidenziare la sottile differenza tra High Performance Computing (HPC) e "[[supercomputer]]". HPC è un termine, talvolta usato come sinonimo di [[supercomputer]], che è sorto dopo il termine "supercomputing" (supercalcolo).
In altri contesti, "supercomputer" è usato per riferirsi ad un sottoinsieme di "computer ad alte prestazioni", mentre il termine "supercomputing" si riferisce ad una parte del "calcolo ad alte prestazioni" (HPC). La possibile confusione circa l'uso di questi termini è evidente.
=== Implementazione sui sistemi di calcolo ===
Poiché i sistemi di calcolo, ogni giorno, sono sempre più sofisticati e veloci, gli sviluppatori di applicazioni per HPC devono spesso lavorare insieme ad [[ingegnere|ingegneri]] e [[progettista|progettisti]] per identificare e correggere i vari [[bug]] e le instabilità che insorgono. Essi devono adeguarsi continuamente a scrivere [[codice sorgente|codice]] per nuovi tipi di architetture e spesso sono i primi che utilizzano i nuovi [[linguaggio di programmazione|linguaggi di programmazione]], le [[libreria (software)|librerie]], i [[compilatore|compilatori]], insieme ai più recenti strumenti per lo sviluppo di applicazioni. Tuttavia, la continua riprogrammazione si rivela inefficiente perché impiega troppa manodopera e gli esperti in [[applicazione (informatica)|applicazioni]] HPC non sono molti, dunque sono essenziali dei modelli standard di [[Programmazione (informatica)|programmazione]] ad alto livello per ridurre lo sforzo umano nella riprogrammazione delle nuove [[piattaforma (informatica)|piattaforme]].
Purtroppo fornire [[standard (informatica)|standard]] ad alto livello per le applicazioni HPC non è un'impresa facile poiché nascono ogni giorno nuove architetture per il calcolo ad alte prestazioni, ognuna con specifiche caratteristiche diverse dalle altre e che devono essere sfruttate in maniera adeguata
I programmatori HPC sono riluttanti a sacrificare le prestazioni in cambio di una maggiore facilità di programmazione, dunque è necessario un modello
<ref name=nota1/>.
=== Problemi ===
I [[programmatore|programmatori]] abituati a ragionare in modo sequenziale hanno dovuto acquisire una nuova mentalità e, anche se parte della conversione da [[software]] applicativo sequenziale a parallelo poteva essere eseguita in maniera automatica, restava pur sempre da svolgere un'ulteriore attività di “parallelizzazione” manuale che poteva richiedere la ristrutturazione di [[algoritmo|algoritmi]] che erano stati pensati in modo essenzialmente seriale. Inoltre durante l'evoluzione dell'High Performance Computing è emerso un fattore tecnologico che, poco alla volta, è diventato uno dei maggiori vincoli alla crescita dell'effettiva capacità di calcolo dei supercomputer. Questo vincolo è rappresentato dal progressivo sbilanciamento tra la tecnologia dei [[processore|processori]] e quella della [[memoria (informatica)|memoria]] dei [[supercomputer]] ovvero la velocità di [[esecuzione (informatica)|esecuzione]] delle istruzioni è aumentata molto più rapidamente del tempo di accesso alla [[memoria centrale]].<ref name=nota2>{{cita web
|url=http://www.mondodigitale.net/Rivista/03_numero_uno/high_performance_computing.pdf
|titolo=Evoluzione e prospettive dell'High Performance Computing
|cognome=Hoffman
|nome=Ernesto
|anno=2003
|accesso=1º marzo 2010
|urlarchivio=https://web.archive.org/web/20060506152838/http://www.mondodigitale.net/Rivista/03_numero_uno/high_performance_computing.pdf
|dataarchivio=6 maggio 2006
|urlmorto=sì
}}</ref>
=== Algoritmi ===
È necessario considerare l'importanza degli [[algoritmo|algoritmi]]. Quest'ultimo è un aspetto spesso sottovalutato. Infatti, per utilizzare al meglio un [[computer]] che esegua contemporaneamente su molteplici complessi circuitali svariati gruppi di istruzioni occorre risolvere due problemi. È necessario, innanzitutto, sviluppare in [[software]] un [[algoritmo]] che si presti a essere suddiviso in più parti, ossia in diverse sequenze di [[istruzione (informatica)|istruzioni]], da eseguire in parallelo. In secondo luogo, occorre disporre di un [[linguaggio di programmazione|linguaggio]] ed un [[compilatore]], che sappia ottimizzare nelle giuste sequenze da distribuire in parallelo le istruzioni scritte dal [[programmatore]]<ref name=nota2/>. Tra questi linguaggi abbiamo ad esempio l'[[Occam (linguaggio di programmazione)|Occam]].
La [[progettazione]] di un algoritmo efficiente è, spesso, più efficace di un [[hardware]] sofisticato. Purtroppo, non è facile trovare la soluzione giusta. Con la disponibilità del calcolo parallelo, il ricercatore che debba sviluppare una nuova applicazione potrebbe essere invogliato a cercare fin dall'inizio algoritmi intrinsecamente parallelizzabili. Più difficile è, evidentemente, il compito di chi debba riadattare [[software]] applicativo già esistente alle nuove possibilità tecnologiche.
Bisogna inoltre considerare i limiti dell'elaborazione parallela. A titolo d'esempio, si immagini di avere 52 carte di uno stesso mazzo distribuite in modo casuale e di volerle mettere in ordine. Se ci fossero quattro giocatori a volersi dividere le attività secondo i colori (cuori, quadri, fiori, picche) si farebbe certamente prima che se si dovesse svolgere la stessa attività da soli. Ma fossero 52 i giocatori, tutti intorno allo stesso tavolo, a voler ordinare il mazzo si farebbe probabilmente solo una gran confusione. Questo banale esempio può far comprendere come esista un limite al di là del quale non conviene spingere sul parallelismo degli agenti ma, piuttosto, sulla velocità del singolo
<ref name=nota2/>.
L'introduzione di infrastrutture eterogenee di calcolo, come per esempio tecnologie [[GPGPU|gpgpu]], ha alzato ancor di più il livello di complessità nella progettazione e creazione di algoritmi che siano in grado di sfruttarle adeguatamente.
== Applicazione ed esempi di utilizzo ==
Sebbene i [[modello matematico|modelli matematici]] applicati all'astrazione e modellizzazione di [[sistema|sistemi]] e di fenomeni siano stati in alcuni casi elaborati da molti decenni, solo recentemente, grazie all'avvento di piattaforme di calcolo ad alte prestazioni, hanno avuto modo di mostrare il loro enorme potere esplicativo e predittivo in molti ambiti scientifici.
Le moderne tecnologie informatiche hanno, infatti, consentito un enorme sviluppo delle tecniche di [[modello matematico|modellistica]] [[analisi numerica|numerica]] fornendo uno straordinario contributo negli ultimi decenni, sia all'avanzamento della conoscenza, che alla realizzazione di prodotti e processi tecnologicamente avanzati.
Queste hanno reso possibile progettare, studiare, riprodurre e visualizzare complessi fenomeni naturali e sistemi ingegneristici con un'accuratezza fino a pochi anni fa impensabile. Si è sviluppata nel tempo una nuova categoria di specialisti in modellistica computazionale; questi sono in genere esperti nei vari domini applicativi con forti competenze nell'informatica avanzata che rendono possibile l'utilizzo di questi strumenti all'interno dei gruppi di ricerca delle varie aree applicative
<ref name=nota4/>.
Il calcolo ad alte prestazioni viene utilizzato in svariati settori, e per gli scopi più disparati tra questi abbiamo ad esempio:
* Lo studio del [[clima]] globale
* Le [[equazioni di Navier Stokes|equazioni fluidodinamiche]] della [[Fisica]];
* Lo studio della [[materia (fisica)|materia]] a livello [[atomo|atomico]] ([[Equazione di Schrödinger]]) nel settore della [[Chimica]];
* La ricerca di metodi di conservazione di antichi testi e scritture per l'[[Archeologia]];
* Lo sviluppo di nuovi [[farmaci]] in [[Farmacologia]];
* Lo studio delle [[proteine]] in [[Medicina]], questo molto importante per una futura cura contro la [[malattie degenerative]];
*L'analisi di dati genomici
Questi sono comunque solo alcune delle possibili applicazioni dell'HPC<ref name=nota4 /><ref name=nota1/><ref name=nota2/>.
== I principali HPC per potenza di calcolo ==
Di seguito un elenco dei principali HPC per potenza di calcolo, riportati nella lista Top500<ref>{{Cita web |url=https://top500.org/lists/top500/2024/11/|titolo=Top 500 HPC November 2024}}</ref>:
* El Capitan: questo sistema HPE Cray EX255a raggiunge 1,742 [[FLOPS|exaFLOPS]] con 1.051.392 core [[CPU]] e 9.988.224 core acceleratori, per un totale di 11.039.616 core. Utilizza la tecnologia di interconnessione Slingshot-11 ed è ospitato presso il [[Lawrence Livermore National Laboratory]], [[Stati Uniti d'America|USA]].<ref name="supercomputer">{{Cita web |url=https://www.elettronicaemercati.it/supercomputer-el-capitan-conquista-il-primo-posto-della-top500-con-1742-eflop-s-hpc6-di-eni-al-quinto-posto-leonardo-al-nono/|titolo=El Capitan conquista il primo posto della TOP500 con 1,742 EFlop/s. HPC6 di ENI al quinto posto, Leonardo al nono}}</ref>
* Frontier: con una potenza di 1,353 exaFLOPS, questo sistema HPE Cray EX235a dispone di 614.656 core CPU e 8.451.520 core acceleratori, per un totale di 9.066.176 core. Funziona con interconnessioni Slingshot-11 presso l'[[Oak Ridge National Laboratory]], USA.<ref name="supercomputer" />
* Aurora: questo sistema basato su tecnologia [[Intel]] offre una potenza di 1,012 exaFLOPS, sfruttando le architetture [[Xeon]] e Ponte Vecchio. È installato presso l'[[Argonne National Laboratory]], USA.<ref>{{Cita web |url=https://www.top500.org/lists/top500/2023/11/|titolo=Top 500 HPC November 2024}}</ref>
* Eagle: ospitato da [[Microsoft Azure]] negli Stati Uniti, è un supercomputer ad alte prestazioni che raggiunge 561,20 petaFLOPS di potenza di calcolo. È basato su processori Intel Xeon Platinum 8480C 48C 2GHz e accelerato da GPU NVIDIA H100, connessi tramite NVIDIA Infiniband NDR.<ref>{{Cita web |url=https://www.top500.org/lists/top500/2024/11/|titolo=Top 500 HPC November 2024}}</ref>
* HPC6: il supercomputer industriale più potente al mondo, HPC6 è stato sviluppato da [[Eni]] e lanciato nel novembre 2024. Con una potenza di calcolo di 606 petaFLOPS, è impiegato nella ricerca energetica e opera in Italia. Si trova presso l’Eni Green Data center di [[Ferrera Erbognone]] (PV).<ref>{{Cita web |url=https://forbes.it/2024/12/23/come-funziona-hpc6-supercomputer-eni-progettato-costruito-hpe/|titolo=HPC6, come funziona il quinto supercomputer più potente al mondo}}</ref><ref>{{Cita web |url=https://www.eni.com/it-IT/media/comunicati-stampa/2024/11/eni-avvia-supercomputer-hpc6-classifica-top500.html|titolo=Eni: avviato HPC6, 5° al mondo nella classifica TOP500}}</ref>
* Fugaku: sviluppato da [[Fujitsu]], questo sistema raggiunge 442,01 petaFLOPS utilizzando processori A64FX 48C 2.2GHz e la tecnologia di interconnessione Tofu D. Si trova presso il [[RIKEN]]] Center for Computational Science, in [[Giappone]].<ref>{{Cita web |url=https://edge9.hwupgrade.it/news/innovazione/il-supercomputer-giapponese-fugaku-entra-in-servizio-e-il-piu-potente-al-mondo_96376.html|titolo=Il supercomputer giapponese Fugaku entra in servizio: è il più potente al mondo}}</ref>
* Alps: questo sistema HPE Cray EX254n raggiunge 434,90 petaFLOPS, grazie a processori [[NVIDIA]] Grace 72C 3.1GHz e NVIDIA GH200 Superchips, connessi tramite interconnessioni Slingshot-11. È situato presso il [[Centro svizzero di calcolo scientifico|CSCS]], in [[Svizzera]].<ref>{{Cita web |url=https://www.tomshw.it/business/i-supercomputer-di-hpe-sono-ai-primi-posti-tra-i-sistemi-piu-efficienti-e-veloci|titolo=I supercomputer di HPE sono ai primi posti tra i sistemi più efficienti e veloci}}</ref>
* LUMI: uno dei supercomputer più veloci d'[[Europa]], LUMI raggiunge 379,70 petaFLOPS con processori [[Advanced Micro Devices|AMD]] Optimized 3rd Generation EPYC 64C 2GHz e acceleratori AMD Instinct MI250X. È ospitato dal [[CSC – IT Center for Science|CSC]] in [[Finlandia]] nell'ambito dell'iniziativa [[Impresa comune europea per il calcolo ad alte prestazioni|EuroHPC]].<ref>{{Cita web |url=https://www.wired.it/gallery/supercomputer-lumi-finlandia-potenza-europa/|titolo=Supercomputer, siamo andati a vedere il più veloce d’Europa}}</ref>
* Leonardo: sviluppato nell'ambito dell'iniziativa EuroHPC, questo sistema BullSequana XH2000 raggiunge 241,20 petaFLOPS con processori Xeon Platinum 8358 32C 2.6GHz e acceleratori NVIDIA A100 SXM4 64GB. È installato presso il [[CINECA]], in [[Italia]].<ref>{{Cita web |url=https://www.cineca.it/en/press-area/press-releases/innovate-consortium-chosen-host-eurohpcs-first-industrial-supercomputer|titolo=The Innovate Consortium Chosen to Host EuroHPC’s First Industrial Supercomputer}}</ref>
* Tuolumne: Tuolumne raggiunge 208,10 petaFLOPS ed è alimentato da processori AMD 4th Gen EPYC 24C 1.8GHz e acceleratori AMD Instinct MI300A. Opera presso il Lawrence Livermore National Laboratory, USA.<ref>{{Cita web |url=https://www.hpe.com/it/it/collaterals/collateral.a50011781itit.html|titolo=I supercomputer con raffreddamento a liquido diretto al 100% fanless prodotti da HPE sono in cima all’ edizione di Novembre 2024 della TOP 500 dei sistemi più veloci e più efficienti dal punto di vista energetico al mondo}}</ref>
* MareNostrum 5 ACC: questo sistema BullSequana XH3000 offre una potenza di 175,30 petaFLOPS, con processori Xeon Platinum 8460Y+ 32C 2.3GHz e acceleratori NVIDIA H100 64GB. È ospitato dal Barcelona Supercomputing Center (BSC), in [[Spagna]], nell'ambito di EuroHPC.<ref>{{Cita web |url=https://www.industriaitaliana.it/marenostrum-5-supercomputer-spagnolo-infrastruttura-hpc-lenovo/|titolo=MareNostrum 5, il supercomputer spagnolo progettato con infrastruttura Hpc di Lenovo}}</ref>
== Soluzioni per l'HPC ==
*
*
*
== Note ==
<references/>
== Bibliografia ==
* Laurence Tianruo Yang, Minyi Guo, ''High-performance computing: paradigm and infrastructure'', Wiley Interscienze, 2006. ISBN 978-0-471-65471-1.
* [https://web.archive.org/web/20060506152838/http://www.mondodigitale.net/Rivista/03_numero_uno/high_performance_computing.pdf Evoluzione e prospettive dell'High performance computing], Ernesto Hoffman.
* [http://www.afs.enea.it/project/cmast/Documenti/web/documentazione/CalcoloEAI_Agosto08.pdf Calcolo numerico ad alte prestazioni], Vincenzo Artale, Massimo Celino.
== Voci correlate ==
Line 117 ⟶ 157:
* [[GPGPU]]
* [[High Performance Fuzzy Computing]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{
* {{cita web|1=http://www.mhpcc.edu/|2=Maui High Performance Computing Center|lingua=en|accesso=1 marzo 2010|urlarchivio=https://web.archive.org/web/20100327131826/http://www.mhpcc.edu/|dataarchivio=27 marzo 2010|urlmorto=sì}}
* {{cita web | 1 = http://www.icar.cnr.it/icarkms/ | 2 = Istituto di calcolo e reti ad alte prestazioni | accesso = 1º marzo 2010 | urlarchivio = https://web.archive.org/web/20100308184628/http://www.icar.cnr.it/icarkms/ | dataarchivio = 8 marzo 2010 | urlmorto = sì }}
* {{cita web|http://www.hwupgrade.it/articoli/skvideo/2369/a-losanna-fra-nvidia-tesla-calcolo-e-cardiologia_index.html|HPC su GPU Computing}}
* {{
* {{cita web|https://www.top500.org/|Top 500 supercomputers|lingua=en}}
* {{en}}[http://www.rocksclusters.org Rocks Clusters] Open-Source High Performance Linux Clusters
* {{en}}[http://www.Infiscale.com Infiscale Abstractual and Perceus] Open-Source Extreme Scale HPC Clusters and Clouds
*
*
{{Controllo di autorità}}
{{Portale|informatica|Telematica}}
|