logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2015/2016
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 095965 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING
Docente Formaggia Luca
Cfu 10.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (Mag.)(ord. 270) - BV (478) NUCLEAR ENGINEERING - INGEGNERIA NUCLEARE*AZZZZ095976 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING
Ing Ind - Inf (Mag.)(ord. 270) - MI (487) MATHEMATICAL ENGINEERING - INGEGNERIA MATEMATICA*AZZZZ095965 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING
095976 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING

Programma dettagliato e risultati di apprendimento attesi

Advanced programming for Scientific Computing

 

Objectives

The course aims at providing concepts of scientific computing and C++ programming. It addresses procedural, object oriented and generic programming techniques, parallel computing with message passing (MPI) and shared memory (openMP) paradigms, debugging and profiling of computer codes, program organization, data structures and numerical algorithms.

Description

1)      Advanced C++ programming. This part aims to complete the student knowledge of computer languages by providing an exhaustive illustration of the advanced features of C++, including those added in the new C++11 standard. Use of templates, data structure and algorithms of the standard library and a description of the main numerical libraries are among the topics that are covered, with an emphasis on scientific computing applications.

2)      Code design and organization. In this part of the course we cover the main design patterns, exception handling, static and dynamic libraries, debugging and profiling of computer codes, code versioning systems.

3)      Parallel programming. In this part of the course we address parallel programming concepts for both distributed and shared memory architectures, as well as the main techniques for parallel computing in the contest of numerical algorithms.

Organization

The course comprises taught lectures in class and exercise session at the computer, where the students may practice the techniques learned during the course. A few home exercises are given to asses student performance. The final assessment is made through a project where a mathematical problem or an engineering application is solved by developing a computer program.

 


Note Sulla Modalità di valutazione

The final assessment is made through a project where a mathematical problem or an engineering application is solved by developing a computer program.


Bibliografia

Software utilizzato
Software Info e download Virtual desktop
Ambiente virtuale fruibile dal proprio portatile dove vengono messi a disposizione i software specifici per all¿attività didattica
PC studente
Indica se è possibile l'installazione su PC personale dello studente
Aule
Verifica se questo software è disponibile in aula informatizzata
Altri corsi
Verifica se questo software è utilizzato in altri corsi
Compilatori (gcc, c, C++, fortran, python) Vedi sito produttore SI SI
Paraview Vedi sito produttore SI SI

Mix Forme Didattiche
Tipo Forma Didattica Ore didattiche
lezione
60.0
esercitazione
40.0
laboratorio informatico
0.0
laboratorio sperimentale
0.0
progetto
0.0
laboratorio di progetto
0.0

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Inglese
schedaincarico v. 1.6.9 / 1.6.9
Area Servizi ICT
16/10/2021