21
Prof. Pier Luca Lanzi Introduzione al Corso Algoritmi e Calcolo Parallelo

Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Embed Size (px)

DESCRIPTION

Slide del corso di Algoritmi e Calcolo Parallelo per il corso di laurea magistrale in Ingegneria Matematica 2012/2013 - Politecnico di Milano

Citation preview

Page 1: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Introduzione al CorsoAlgoritmi e Calcolo Parallelo

Page 2: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

questo è un corso (avanzato) di informatica

Page 3: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

“assumiamo” che tutti abbiano conoscenze di

base di informatica e di programmazione

per chi avesse difficoltà “di base” il CCS ha un servizio di tutoring su

C/C++/Matlab

Page 4: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Laurea intorno ai 25-27 anni

Pensione intorno ai 65-70 anni

Circa 40 anni di vita lavorativa

Cosa dovremmo imparare in questo corso?

Page 5: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

1960 Burroughs 205 Mainframe ~1970

Apple ~1980 2012

Page 6: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

“cambiare tutto per non cambiare niente”

6

algoritmi macchina di Von Neuman

strutture dati

Certe cose però cambiano… Linguaggi Programmazione

(Cobol, RPG, Pascal, C, ecc.) Programmazione a Oggetti

(Simula, Smalltalk, C++, Java) Calcolo Parallelo

(vettoriale, MPI, OpenMP, CUDA)

Page 7: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

qual è l’obiettivo del corso?

imparare i principi generali(valgono sempre)

impararli a utilizzare ora(con le tecnologie disponibili)

Page 8: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

quali principi generali?algoritmi, strutture dati, calcolo

parallelo

quale tecnologia?C++, programmazione a oggetti,

MPI, OpenMP, CUDA

Page 9: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Perché Imparare a Programmare?

• Difficile pensare che per risolvere un problema possa fare a meno di un calcolatore

• “non dobbiamo diventare programmatori”

• “ci sono gli informatici per quello,

l’implementazione la possono fare loro”

• E’ davvero possibile? Sviluppo senza controllo Correttezza Modifica

9

Page 10: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Obiettivi del Corso

• Darvi degli strumenti che vi permettano di implementare(almeno in forma prototipale) degli algoritmi/metodi partendo da una descrizione ad alto livello (da un articolo?)

• Conoscenze di base perValutarne la complessitàValutare le conseguenze delle scelte

implementativeValutare la possibilità di migliorarne le

prestazioni attraverso tecniche di parallelizzazione

10

Page 11: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Modalità di Valutazione in Itinere

• Il voto si compone di 9 punti di scritto (relativo a tutto il programma svolto) 21 punti distribuiti su tre prove pratiche

(C++, algoritmi e strutture dati) A causa di problemi logistici, le prove pratiche si terranno il

sabato mattina, avranno una durata di 5 ore (dalle 8:15 alle 13:15)

Il voto ottenuto durante le tre prove pratiche è valido fino all’appello di Marzo compreso.

• Prova Scritta Due-Tre esercizi più un esercizio di recupero Durante la prova scritta sarà possibile utilizzare i due libri di

testo e le trasparenze per la parte di calcolo parallelo che non contengano esercizi

11

Page 12: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Modalità di Valutazione non in Itinere

• Il voto (per l’esame svolto durante il corso) si compone di 21 punti di scritto (relativo a tutto il programma svolto) 9 punti ottenuti durante una prova pratica svolta in laboratorio

informatico Per svolgere la prova pratica bisogna ottenere almeno 12 punti

nella prova scritta.

12

Page 13: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Modalità di Valutazione

• Prove pratiche Sono tre e sono obbligatorie e avranno una durata di 5 ore Svolta in gruppi di 3-4 studenti (selezionati a caso) Si svolgono in un’aula standard quindi dovrete utilizzare i vostri portatili

• Struttura delle prove pratiche Dopo l’appello verranno formati i gruppi e verranno

distribuiti uno o più articoli che descrivono un algoritmo Ogni gruppo ha 5 ore di tempo per implementare l’algoritmo descritto

• Recupero E’ prevista la possibilità di essere assenti per una prova pratica o di

rifiutare uno dei voti di una delle tre prove pratiche, svolgendo un esercizio di recupero durante lo scritto.

Prevediamo una prova di recupero di laboratorio a Luglio e una prova di recupero a Settembre

Le prove di recupero sono svolte singolarmente in laboratorio informatico

13

Page 14: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Organizzazione 14

Programmazione ISO C++

Algoritmi e Strutture Dati Calcolo

Parallelo

Page 15: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Materiale

• Algoritmi e Strutture Dati Bertossi Alan A., Montresor Alberto. “Algoritmi e

strutture di dati” (seconda edizione), CittàStudi 2010

Primi 17 capitoli Trasparenze del corso

• Programmazione C++ Stanley B. Lippman, Barbara E. Moo, Josee

Lajoie“C++ Primer”, 4th Edition Addison-Wesley

Primi 16 Capitoli e le appendici

• Calcolo Parallelo Trasparenze delle lezioni

15

Page 16: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Riferimenti

• Algoritmi e Strutture Dati Bertossi Alan A., Montresor Alberto. “Algoritmi

e strutture di dati” (seconda edizione), CittàStudi 2010

Primi 17 capitoli Trasparenze del corso

• Stanley B. Lippman, Barbara E. Moo, Josee Lajoie“C++ Primer”, 5th Edition Addison-Wesley Primi 16 Capitoli e le appendici

• Calcolo Parallelo Trasparenze delle lezioni

16

Page 17: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Docenti del Corso

• Prof. Pier Luca Lanzi (lezioni)Dipartimento di Elettronica e [email protected]. 02 23993472http://www.pierlucalanzi.net

• Ricevimento Mercoledì, dalla 14:30 alle 16:30,

su appuntamento

• Ing. Daniele Loiacono (esercitazioni e laboratorio)Dipartimento di Elettronica e [email protected]://www.dei.polimi.it/people/loiacono

17

Page 18: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Per la Programmazione

• Distribuzione GNU/Linux “Ubuntu” disponibile al sitohttp://www.ubuntu.com/

• E’ possibile installare la distribuzione direttamente su un PC oppure utilizzare un DVD live

• Verrà fornita una macchina virtuale per VirtualBox che permette l’esecuzione di una distribuzione Ubuntu su un altro sistema operativo

• Per programmi di poche righe è anche possibile utilizzare siti specializzati che danno la possibilità di compilare ed eseguire semplici programmi http://codepad.org/ http://ideone.com/

18

Page 19: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

“una goccia di pratica è megliodi un oceano di teoria”

Giuseppe Perlati

Page 20: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

"Students have to be active in developing theirknowledge, they can't passively assimilate it.”

Eric Mazur, Harvard

Page 21: Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

21

Discutere, domandare, interagire

Se ci sono punti non chiari, chiedere spiegazioni

Se volete approfondimenti, chiedete.

Cosa Succede in Aula?