Strumenti di programmazione per sistemi paralleli e distribuiti
Teacher: Dr. Massimo Coppola
Contact info
Official CNR-ISTI web page Massimo Coppola at ISTI
e-mail : [email protected]
Phone : 050 315 2992
Office location : CNR Reseach Area, ISTI-CNR, Building C, room 33
(due to COVID office-hours restrictions, office phone and location are unlikely useful)
Course info
This page concerns the SPD course (535AA) for the academic year 2020-2021, which gives you 6 credits.
Be sure to alway check the NEWS section in this page.
Information about latest past editions of the SPD course can be found at the following links.
Timetable
Monday | 14:15-16 | Virtual room WTW/2 | |
Wednesday | 16:15-18 | Virtual room WTW/2 | |
Question time
As question time will also be held remotely, please contact the teacher to set up either individual or joint telco sessions.
News and Updates
21/04/2021 Final Examination for one candidate to be held today. To be held online (see course MS teams channel Esami) at 15.40. The examination teleconference is public.
22/02/2021 There's going to be NO LESSON today due to personal constraints. Next scheduled lesson is on Wednesday 24. All students who are interested in the course should contact me via email or via the microsoft teams chat of the course (535AA 20/21…) ,
especially if there is a superposition with their other teaching slots.
It is possible to change the course schedule as needed (both Monday and Wednesday slots can be moved), but contact me
ASAP.
17/02/21 First lesson will be held on the MS teams online platform today, 16:15-18:00. I will open the meeting at 16 in order to check if all technical issues are actually solved.
15/02/2021 Students which are interested in the course (or even just the first lesson) should either check this page before the lesson or write me an email, in case of further issues with the online platform.
In that case a different one will be used as a backup and the lesson URL will be sent by email.
The first lesson of the Course will be held on February 17. The virtual room information will be posted on this page as soon as possible, due to issues with both the MS Teams and Google Meet platforms.
——–
Course Journal
Aim of the Course
The course will provide a description and analysis of a few key parallel and distributed programming platforms and models, starting from their theoretical foundations, where not covered by previous courses, and focusing on (1) existing standards for platforms and programming systems and (2) State-of-the-art solutions. The course will include practical use of those systems to develop simple applications.
Overall Program
The course will cover the following topics.
Parallel Programming systems/frameworks
MPI message-passing programming (the core part of the MPI 2.2 standard)
ONEAPI as a unifying meta-approach toward programming several architectural layers, encapsulating other existing programming frameworks
TBB Thread Building Blocks Multicore oriented, shared-memory programming framework
SYCL Common source CPU/GPU C++ programming framework
Massively Multicore computation and GPU programming frameworks: mainly OpenCL but also references to CUDA
other topics and parallel/distributed formalisms we may partially address
Software defined processors: FPGA-based open source processors, OpenCL to FPGA compilation
High-Level SPP languages for Clusters/Clouds, dynamic and autonomic management
SPC++
BSP-based approaches (e.g. Apache Hama / Giraph, or MulticoreBSP)
Example Applications may include
Managing HPC experiments with SLURM
Further technology topics if time allows
Foundation, Technologies we may cover if needed
Elementary mechanisms to distribute computation: message passing, shared memory, massive multicore
Basics of scheduling algorithms and resource management
Basics of Service Oriented Architectures SOA
Service oriented Platforms, Cloud Computing and Cloud Federations
Project Work
Teaching material
Books
-
B. Wilkinson, M. Allen – Parallel Programming, 2nd edition. 2005, Prentice-Hall. This book will be also used; at least the 1st edition is available in the University Library of Math/Comp.Sc./Physiscs, under code C.1.2 w74 INF .
Michael Mc Cool, Arch D. Robinson and James Reinders – Structured Parallel Programming (patterns for Efficient Computation) 2012, Morgan Kaufmann.
Chapters 1 to 3 cover background topics which should be already known from previous courses (SPA, SPD courses). Stundents need to focus on the TBB material throughout the book: Appendix C and D, and the TBB examples in the book that appendix C references from chapters 4, 5, 8 and 9. Check also Chapter 11 on k-means.
Alternate book: An introduction to TBB is also found in James Reinders – Intel Threading Building Blocks 2007, O'Reilly Media. More focused on TBB alone, but describes a quite old release of the framework, hence you need to look at online documentation for some of the features.
M. Voss, R. Asejo, J. Reinders – Pro TBB Book code samples ported to oneAPI Open access book on Springer
Pro TBB Open Access
-
Papers and reading material