Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Post on 14-Dec-2014

232 views 2 download

description

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

Transcript of Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso

Prof. Pier Luca Lanzi

Introduzione al CorsoAlgoritmi e Calcolo Parallelo

Prof. Pier Luca Lanzi

questo è un corso (avanzato) di informatica

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

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?

Prof. Pier Luca Lanzi

1960 Burroughs 205 Mainframe ~1970

Apple ~1980 2012

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)

Prof. Pier Luca Lanzi

qual è l’obiettivo del corso?

imparare i principi generali(valgono sempre)

impararli a utilizzare ora(con le tecnologie disponibili)

Prof. Pier Luca Lanzi

quali principi generali?algoritmi, strutture dati, calcolo

parallelo

quale tecnologia?C++, programmazione a oggetti,

MPI, OpenMP, CUDA

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

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

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

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

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

Prof. Pier Luca Lanzi

Organizzazione 14

Programmazione ISO C++

Algoritmi e Strutture Dati Calcolo

Parallelo

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

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

Prof. Pier Luca Lanzi

Docenti del Corso

• Prof. Pier Luca Lanzi (lezioni)Dipartimento di Elettronica e Informazionepierluca.lanzi@polimi.ittel. 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 Informazioneloiacono@elet.polimi.ithttp://www.dei.polimi.it/people/loiacono

17

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

Prof. Pier Luca Lanzi

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

Giuseppe Perlati

Prof. Pier Luca Lanzi

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

Eric Mazur, Harvard

Prof. Pier Luca Lanzi

21

Discutere, domandare, interagire

Se ci sono punti non chiari, chiedere spiegazioni

Se volete approfondimenti, chiedete.

Cosa Succede in Aula?