In the past, I was teacher of the course Programmazione I e Laboratorio (a.a. 2014/2015 and a.a. 2015/2016, Corso di Laurea in Informatica, Università di Pisa).
Since a.a. 2014/2015 I have been teacher of the course High Performance Computing (Master Degree Program in Computer Science and Networking, jointly provided by University of Pisa and Scuola Superiore Sant’Anna).
In a.a. 2014/2015 and a.a. 2016/2017 I was teacher of the course High Level Programming with Python (Scuola Superiore Sant’Anna).
High Performance Computing (9 CFU - a.a. 2017/2018)
Course objectives:The course deals with two interrelated issues in high-performance computing: i) fundamental concepts and techniques in parallel computation structuring and design, including parallelization methodologies and paradigms, parallel programming models, their implementation, and related cost models; ii) architectures of high-performance computing systems, including shared memory multiprocessors, distributed memory multicomputers, clusters, and others. Both issues are studied in terms of structural models, static and dynamic support to computation and programming models, performance evaluation, capability for building complex and heterogeneous applications and/or enabling platforms, also through examples of application cases. Technological features and trends are studied, in particular multi-/many-core technology and high-performance networks.
Course outline: the course is structured into two parts:
1. Structuring and Design Methodology for Parallel Applications: structured parallelism at applications and process levels, cost models, impact of communications, parallel computations as queueing systems / queueing networks, parallel paradigms (Pipeline, Data-flow, Farm, Function partitioning, Data parallel), parallel systems at the firmware level, instruction level parallelism (Pipeline, Superscalar, Multithreaded CPUs), SIMD architectures and GPUs;
2.Parallel Architectures: shared memory multiprocessors (SMP and NUMA architectures), distributed memory multicomputers (Clusters and MPP architectures), run-time support to interprocess communication, interconnection networks, performance evaluation and multicore architectures.
Text book: M. Vanneschi, High Performance Computing: Parallel Processing Models and Architectures. Pisa University Press, 2014.
Appendix of the book: attending and studying this course requires proper background knowledge in Structured Computer Architecture. The appendix of the text book contains a detailed review of basic concepts and techniques in Structured Computer Architecture according to the approach used at the Computer Science Department of the University of Pisa.
Question time: Monday 14:30-16:30 in my room (287), Department of Computer Science.
1. Organization of the course and exam rules
2. Errata corrige of the text book
3. Collection of past exams with solutions
4. Course introduction
5. Overview of the course approach
6. Level structuring
7. Parallelism and metrics
8. Solution of the background test (1st attempt)
9. Concurrent language
10. First homework
11. Basic LC run-time support
12. Pipeline and farm
13. Collective communications
14. Data-Flow model
15. Second homework
16. Analysis of acyclic computation graphs
17. Third homework
18. Multiprocessor architectures
19. Firmware communications
20. Client-server model and under-load latency
21. First midterm solution and results
22. Synchronization mechanisms
23. Fourth homework
24. Cache coherence
25. Rdy-ack run-time support
26. Fifth homework
27. Background test (2nd attempt)
28. A complete exercise
29. Conclusion of the course
30. Second midterm solution and results
31. First resit solutionand results
32. Second resit solution and results
High Level Programming with Python (3 CFU - a.a. 2016/2017)
The course is for the internal students of the Scuola Sant’Anna institute. It consists of 32 hours (16 of lectures and 16 hours of exercises) in which the Python language is introduced by providing the basic knowledge to write good programs and to understand the bahavior of the interpreter. The last lectures are devoted to presenting additional libraries (Numpy and Scipy mainly) useful for scientific programming.
Lecture 1: SLIDE and Homework
Lecture 2: SLIDE and Homework
Lecture 3: SLIDE and Homework
Lecture 4: SLIDE and Homework
Lecture 5: SLIDE and Homework
Lecture 6: SLIDE and Homework
Lecture 7: SLIDE and Homework
Lecture 8: SLIDE
Похожий на карлика бармен тотчас положил перед ним салфетку. - Que bebe usted. Чего-нибудь выпьете. - Спасибо. Я лишь хотел спросить, есть ли в городе клубы, где собираются молодые люди - панки.