{mlang en}Scientific Computing with Python - Basic Course{mlang}{mlang it}Calcolo Scientifico in Python - Strumenti Fondamentali{mlang}

{mlang it}

  • Programmare algoritmi di calcolo scientifico, in particolare utilizzando Python/NumPy
  • Fare sperimentazione numerica e valutare le prestazioni dei metodi numerici
  • Presentare graficamente dati e risultati multi-dimensionali, salvare e caricare file-dati in vari formati
  • Creare e programmare algoritmi paralleli di algebra lineare su GPU con l’ausilio della libreria Numba
{mlang}

{mlang it}I destinatari del corso sono studenti, laureati, ricercatori di qualunque disciplina, interessati al calcolo scientifico ad un livello intermedio/avanzato, tipico ormai di tutti i settori delle scienze applicate e dell'ingegneria.Conoscenze pregresse necessarie sono: Conoscenze di base di programmazione, in particolare in linguaggio Python; Conoscenze di base di matematica, tipiche dei primi due anni delle lauree triennali di tipo scientifico o ingegneristico.Verrà indicato del materiale introduttivo per colmare eventuali lacune. Per quanto riguarda il linguaggio Python, si raccomanda vivamente di consultare il materiale nel sito www.python.org{mlang} {mlang it}

Libri di testo:

  • Dispense del corso erogate sotto forma di slides PDF e iPython notebooks


Letture consigliate:

  • Hans Petter Langtangen, “A Primer on Scientific Programming with Python”, Springer, 2016
  • Documentazione Numpy https://docs.scipy.org/doc/numpy/contents.html
  • Documentazione Scipy   https://docs.scipy.org/doc/scipy/reference/
  • Documentazione Matplotlib https://matplotlib.org/contents.html
  • Scipy Lecture Notes  http://www.scipy-lectures.org
  • Scipy CookBook http://scipy-cookbook.readthedocs.io/index.html
  • CUDA C Programming Guide: https://docs.nvidia.com/cuda/cuda-c-programming-guide/
  • Numba for CUDA GPUs: http://numba.pydata.org/numba-doc/0.38.0/cuda/index.html
{mlang}

{mlang it}Il corso è strutturato in brevi video di spiegazione dei programmi e della sperimentazione legata agli esempi, nonché in test che prevedono anche brevi attività di programmazione e sperimentazione numerica.L’approccio didattico è orientato ad esporre i concetti teorici tramite esempi applicativi ed attività sperimentali al calcolatore.{mlang}

Week 1: Calcolo Matriciale con NumPy e calcolo approssimato di funzioni continue


Lezioni

Importanza e stato dell'arte dell'algebra lineare numerica
Creazione e visualizzazione statica di dati n-dimensionali
Animazioni
API ad alto livello: NumPy e BLAS
Alte prestazioni nel calcolo matriciale
Calcolo con tensori (array multi-dimensionali)
Problemi ed algoritmi fondamentali dell'algebra lineare numerica
Decomposizione di tensori ed applicazioni (TensorFaces)
Interpolazione ed approssimazione di dati con polinomi
Calcolo approssimato di integrali e trasformate
Week 2: Simulazione numerica di modelli analitici


Lezioni

Introduzione alla modellistica tramite modelli analitici
Metodi numerici per il fitting di modelli lineari su dati sperimentali
Introduzione alle ODE e il metodo di Eulero Esplicito
Altri metodi base: Eulero Implicito, Trapezi, Theta metodo
Analisi delle soluzioni: A-stabilità
Analisi delle soluzioni: L stabilità e problemi Stiff
Ordine di Convergenza
Metodi multistep e a passo variabile
Esempi: dalla fisica, alle equazioni, alla soluzione numerica Il problema dei 3 corpi
Esempi: dalla fisica, alle equazioni, alla soluzione numerica. Il pendolo sferico
Event Detection e Location
ODE discontinue, Switched Systems
ODE discontinue: Chattering e Sliding
Week 3 - Calcolo matriciale in parallelo su GPU


Lezioni

Introduzione al calcolo parallelo - parte 1
Introduzione al calcolo parallelo - parte 2
Introduzione al Python GPU programming con Numba
Il modello di esecuzione CUDA
Design di kernel CUDA Python
Memoria Shared
La moltiplicazione tra matrici
Introduzione a CUBLAS
Le matrici sparse
Decomposizione LU e fill in
Introduzione a CUSPARSE
Introduzione ai metodi iterativi
Modalità del Corso
Tutoraggio
Stato del Corso
Auto apprendimento
Durata
3 settimane
Impegno
Ore formazione
30
Categoria
Informatica, Gestione e Analisi Dati
Lingua
Italiano ‎(it)‎
Tipo
Online
Livello
Intermedio
Avvio Iscrizioni
17 Feb 2019
Apertura Corso
4 Mar 2019
Inizio Tutoraggio
4 Mar 2019
Fine Tutoraggio
26 Mar 2019
In autoapprendimento da:
27 Mar 2019
Chiusura Corso
Non impostato

Partecipazione e Attestati

Quota di iscrizione
GRATUITO!
Attestato di Partecipazione
GRATUITO!


MONICA DESSOLE

Dipartimento di Matematica “Tullio Levi Civita”

FABIO MARCUZZI

Dipartimento di Matematica “Tullio Levi Civita”

MARTA GATTO

Dipartimento di Matematica “Tullio Levi Civita”

Corsi collegati