Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spd:start

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 : massimo.coppola@isti.cnr.it
Phone : 050 315 2992
Office location : CNR Reseach Area, ISTI-CNR, Building C, room 33

Course info

  • This page concerns the SPD course (535AA) for the academic year 2021-2022, 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

1-core, 32-core and 1680-core RISC-V development boards.
See http://fpga.org/2017/01/12/grvi-phalanx-joins-the-kilocore-club/

Monday 16:15-18 Room FIB L1 and Microsoft Teams course channel
Friday 11-12:45 Room FIB X2 and Microsoft Teams course channel
Thursday 14:15-16 OLD schedule, no longer valid
  • See also the Dept. official timetable and the virtual room links on esami.unipi.it.
  • In case of exceptions, notice will be given in the News section below in this page and by email to the students.

Question time
As question time will also be held remotely, please contact the teacher to set up either individual or joint telco sessions.

Tuesday 16-17 MS Teams course channel Typical Q&A time slot, please
email in advance to confirm it

News and Updates

  • 17/02/2022 First lesson will be held today, 14:15-16:00.
  • 14/03/2022 Starting this week, the thursday lesson slot is moved to Monday 16-18 L1. Note that official timetable portals were not correctly updated as of today.
  • 18/03/2022, 21/03/2022 No lesson planned
  • 25/03/2022 No lesson due to personal constraints
IMPORTANT 25/03/2022 There will be NO lesson today due to personal constraints. The missing lesson will be shifted to later on in the course (TBD: presumably next week, alternating with lab sessions).

——–

Course Journal

The course journal is a separate page in this wiki.


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
    • Data mining (K-means, classification…), machine learning algorithms; computational simulation algorithms
  • Managing HPC experiments with SLURM
  • Further technology topics if time allows
    • Scripting HPC applications with Python
  • 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

TBD


Teaching material

Books

  • Standard MPI 3.1, 2015 Only those parts that we will specify during the lessons. Please check the MPI 3.1 errata as there are errors in a couple of code examples.
    On the MPI forum web site you will find alternate formattings and translations of the same material.
  • 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
  • J. Reinders et al. - Data Parallel C++ Open access book on Springer Data Parallel C++ Open Access

Papers and reading material

TBD

magistraleinformaticanetworking/spd/start.txt · Ultima modifica: 25/03/2022 alle 09:35 (8 mesi fa) da Massimo Coppola