Nelle lezioni sono stati affrontati diversi argomenti:
Ottimizzazione dei programmi con particolare attenzione all'uso della memoria della memoria CACHE e alla comprensione del concetto di latency e bandwith.
Il codice riguardo a queste lezioni lo trovate nella sezione esempi discussi nel corso. Mentre nella sezione Video trovate una videolezione riguardo a latency e bandwith. Il codice e' generale salvo che nell'ultima parte specifica per sistemi operativi "*NIX" ( Unix, Linux MacOsX...) chi volesse compilarla in windows deve riscrivere l'ultima parte ( ottimo esercizio !) o eliminarla.
Programmazione parallela. Abbiamo parlato solo della programmazione in ambienti a memoria condivisa in particolare ci siami concentrati sullo standard OpenMP.
Fermo restando che questo e' solo uno degli aspetti della programmazione parallela guardatevi i link presenti nella pagina riferimenti utili, per tantissima documentazione ed anche per i compilatori ( MacOSX, Windows, Linux ).
Abbiamo trattato sia le generalita' che gli argomenti di base ( parallelizzazione di cicli for ) che un esempio piu' avanzato. Nella sezione degli esempi discussi nel corso trovate i codici.
Nell'ultima lezione fatta per ora abbiamo inoltre parlato di BASH SCRIPTING. Questo argomento e' di fondamentale importanza per chi lavora con sistemi "*NIX" inquanto permette di automatizzare numerosissime funzioni. Con l'occasione si e' anche parlato di paradigma di programmazione funzionale confrontandolo con quello imperativo ( C, Fortran ) e a oggetti ( C++ ).
Ottimizzazione dei programmi con particolare attenzione all'uso della memoria della memoria CACHE e alla comprensione del concetto di latency e bandwith.
Il codice riguardo a queste lezioni lo trovate nella sezione esempi discussi nel corso. Mentre nella sezione Video trovate una videolezione riguardo a latency e bandwith. Il codice e' generale salvo che nell'ultima parte specifica per sistemi operativi "*NIX" ( Unix, Linux MacOsX...) chi volesse compilarla in windows deve riscrivere l'ultima parte ( ottimo esercizio !) o eliminarla.
Programmazione parallela. Abbiamo parlato solo della programmazione in ambienti a memoria condivisa in particolare ci siami concentrati sullo standard OpenMP.
Fermo restando che questo e' solo uno degli aspetti della programmazione parallela guardatevi i link presenti nella pagina riferimenti utili, per tantissima documentazione ed anche per i compilatori ( MacOSX, Windows, Linux ).
Abbiamo trattato sia le generalita' che gli argomenti di base ( parallelizzazione di cicli for ) che un esempio piu' avanzato. Nella sezione degli esempi discussi nel corso trovate i codici.
Nell'ultima lezione fatta per ora abbiamo inoltre parlato di BASH SCRIPTING. Questo argomento e' di fondamentale importanza per chi lavora con sistemi "*NIX" inquanto permette di automatizzare numerosissime funzioni. Con l'occasione si e' anche parlato di paradigma di programmazione funzionale confrontandolo con quello imperativo ( C, Fortran ) e a oggetti ( C++ ).