High performance computing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 66:
== 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 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|applicazioni]] HPC non sono molti, dunque sono essenziali dei modelli standard di [[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 per raggiungere l'alto livello di prestazione richiesto.
 
I programmatori HPC sono riluttanti a sacrificare le prestazioni in cambio di una maggiore facilità di programmazione, dunque è necessario un modello standard che permetta di sfruttare al massimo tutti i tipi di piattaforma. Vi sono poi ulteriori vincoli: il modello di programmazione deve essere di facile comprensione per semplificare l'identificazione dei [[bug]] e la loro correzione. Deve essere [[scalabilità|scalabile]], per far fronte all'aumento di complessità del problema e quello di potenza della macchina. Infine, poiché quello dell'HPC è una mercato relativamente piccolo, i produttori non sarebbero in grado di far fronte ad un'elevata quantità di modelli di programmazione diversi e di conseguenza, lo standard, deve essere compatibile con la maggior parte dei codici e piattaforme per HPC
<ref name=nota1/>.