Come devo studiare la creazione e la programmazione di sistemi HPC?


16

Sono in un campo che non fa necessariamente molto lavoro HPC, e quando lo incontra, è spesso il risultato di ricercatori di altri campi che esplorano nuove applicazioni per i loro metodi e simili. In primo luogo ciò significa che non viene mai realmente introdotto nel corso degli studi, o viene cresciuto molto in seminari, seminari e simili - è possibile intraprendere l'intera carriera senza averne bisogno.

Allo stesso tempo, tuttavia, gran parte del lavoro che svolgo potrebbe trarre vantaggio dall'utilizzare meglio le risorse HPC disponibili, principalmente sotto forma di simulazioni Monte Carlo ben parallele.

Il mio problema è trovare risorse per imparare a usare i cluster, MPI, ecc. E separare il bene dal male, dato che non ne so molto.

Qualche suggerimento per i libri sulla programmazione su questi tipi di sistemi o sull'impostazione e l'esecuzione di configurazioni HPC molto modeste?


Dovrebbe avere qualcosa di simile a un tag "big list"?
shuhalo,

@Martin: no. Esso dovrebbe avere risposte da persone che hanno realmente fatto questo e sanno di cosa stanno parlando, non una lista enorme di tutto ciò che potrebbe plausibilmente essere correlato. Modificato il titolo per riflettere questo.
Shog9

Risposte:


13

Dai un'occhiata all'Università HPC . In particolare, la sezione delle risorse , che include cose come

e altro ancora.

Esistono molti programmi di istruzione superiore che includono corsi in HPC . Ad esempio, il mio programma include corsi in

  • Elaborazione ad alte prestazioni (2 semestri)
  • Paradigmi di programmazione parallela
  • Ingegneria del software scientifico
  • Programmazione GPU e GPGPU

così come una varietà di corsi di informatica scientifica e analisi numerica.


4

La mia esperienza personale è che HPC richiede una serie così ampia di competenze che è molto difficile farlo in un solo libro, ricetta, corso universitario. Considera che HPC non riguarda la programmazione di grandi macchine o la creazione di un cluster, ma piuttosto la soluzione di grandi problemi scientifici ai margini dell'informatica.

Non sono sicuro che tutti sarebbero d'accordo, ma penso che un elenco di aree coinvolte nell'HPC potrebbe essere:

Ognuna di queste aree è immensamente grande e c'è così tanta conoscenza che è difficile ottenere tutto prima di tentare di fare qualsiasi cosa!

Nel mio caso, sono partito da un angolo dell'ingegneria e ho lentamente sviluppato esperienza e una rete di collaborazione. All'inizio avevo solo un problema di ingegneria / matematica applicata che volevo risolvere, da lì sono passato alla programmazione, a ottenere maggiori prestazioni tramite computer più potenti, all'analisi numerica, agli algoritmi avanzati, ai computer paralleli, agli algoritmi paralleli , a computer ancora più grandi, a un modello scientifico più completo e infine a un nuovo problema e stava ripetendo di nuovo. Se guardo indietro, cercare di capire e risolvere il mio primo problema è stato ciò che ha elaborato il mio piano di studi. Avere un supervisore che può mantenerti sulla buona strada aiuta anche molto, altrimenti fai attenzione a non perdere di vista il tuo obiettivo finale (nel mio caso, questo era il problema scientifico che avevo a portata di mano).

Se devo nominare una cosa che fa davvero la differenza mentre percorro il percorso HPC è quello di incontrare persone di altre aree, scambiare idee e trarre vantaggio dalla conoscenza distribuita della comunità. Inoltre, è importante non avere troppa paura di essere apertamente ingenui e fare cose sciocche. I primi passi sono sempre difficili e quelli più importanti!


2

Questo è il mio piano per insegnarmi alcune basi dell'HPC questa primavera. Sono stato uno sviluppatore negli ultimi dieci anni e mezzo e lavoro esclusivamente con le tecnologie Microsoft. Sono anche uno studente, quindi posso ottenere del software gratuito tramite MSDN Academic Alliance(il tuo profilo indica che sei uno studente laureato, quindi dovresti controllare per vedere se la tua scuola partecipa), e fare spazio per le cose a casa è il fattore limitante. Il mio ufficio / den / ManCave ha già un numero di computer in modo che io possa già provare alcune cose. L'HPC di Windows Server 2008 è elencato in alcuni pacchetti disponibili, ma è sembrato scomparire dal software scaricabile della mia scuola durante lo scorso semestre ("cluster compute pack" è un componente aggiuntivo per il server 2003, mentre il server 2008 hpc viene fornito con una versione ridotta del server 2008, con ccp, dovrai disabilitare i servizi che non ti servono).

La mia topologia pianificata è il "cluster abilitato SOA" che è la quarta immagine in questa pagina (fare clic sui quadratini sotto l'immagine principale). Ho già Active Directory e alcuni altri server già configurati, quindi sto pensando di ottenere 4 computer Dell a basso fattore di forma a basso costo da eBay (il refurb Dell 655 SFF sembra funzionare nel campo da baseball 100-200 $). Dal momento che sto solo cercando di imparare alcune cose, credo di aver bisogno solo di un "nodo principale" un "nodo broker" e 2 "nodi di calcolo" e alcune schede Ethernet di riserva per vedere quali bus privati ​​e applicativi (da quell'immagine ) fare. La licenza MSDNAA consente fino a 16 nodi di calcolo che è molto più di quello che sto cercando.

Ho letto Beowulf Cluster Computing con Windows e penso di avere un'idea di cosa devo fare per alcune idee in ufficio (esiste una versione per Linux del libro, ma ho 0 competenze / piattaforme per Linux a casa - fai ciò che è giusto per te). Ci sono molti grandi cluster disponibili in ufficio , ma sono già saturi e le fasce orarie educative "Voglio / devo imparare X" sono molto difficili da ottenere. Uno è già tenuto a conoscere le cose prima di poter inviare un lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.