CONCURRENT, PARALLEL AND CLOUD PROGRAMMING

CARMINE SPAGNUOLO CONCURRENT, PARALLEL AND CLOUD PROGRAMMING

0522500102
COMPUTER SCIENCE
EQF7
COMPUTER SCIENCE
2024/2025



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2016
SPRING SEMESTER
CFUHOURSACTIVITY
432LESSONS
216LAB
Objectives
THE COURSE AIMS TO PROVIDE STUDENTS WITH THE SKILLS NECESSARY FOR DESIGNING AND DEVELOPING
SOFTWARE SOLUTIONS THAT LEVERAGE PARALLEL AND/OR DISTRIBUTED COMPUTING EXPERIMENTING WITH CLOUD
COMPUTING SYSTEMS THROUGH THE INFRASTRUCTURE AS A SERVICE (IAAS) SERVICE MODEL.


[KNOWLEDGE AND UNDERSTANDING]

THE STUDENT WILL:
- UNDERSTAND THE PRINCIPLES OF CONCURRENT PROGRAMMING;
- UNDERSTAND THE STRUCTURE OF DISTRIBUTED MEMORY COMPUTING SYSTEMS;
- ACQUIRE KNOWLEDGE OF THE FUNDAMENTALS OF DESIGNING AND DEVELOPING SCALABLE COMPUTING
SYSTEMS THAT LEVERAGE CLOUD COMPUTING.

[APPLYING KNOWLEDGE AND UNDERSTANDING]

THE STUDENT WILL BE ABLE TO:
- DESIGN A SOFTWARE SYSTEM CAPABLE OF LEVERAGING PARALLEL AND DISTRIBUTED PROCESSING;
- DEVELOP DISTRIBUTED MEMORY APPLICATIONS USING HPC PROGRAMMING STANDARDS;
- EXECUTE HIGH-PERFORMANCE APPLICATIONS ON VIRTUAL CLUSTERS RUNNING ON CLOUD COMPUTING SYSTEMS.

[MAKING JUDGEMENTS]

THE STUDENT WILL BE ABLE TO:

- EVALUATE THE PERFORMANCE AND RELIABILITY OF SCALABLE SYSTEMS THAT UTILIZE PARALLEL AND DISTRIBUTED
COMPUTING;
- ESTIMATE THE ECONOMIC COST AND MANAGEMENT OF VIRTUAL CLUSTERS RUNNING ON CLOUD COMPUTING
SYSTEMS.

[COMMUNICATION SKILLS]

THE STUDENT WILL BE ABLE TO:

- COMMUNICATE THE DESIGN RESULTS AND UNDERLYING CHOICES FOR A SYSTEM THAT UTILIZES SHARED AND/OR
DISTRIBUTED MEMORY TO ENSURE SCALABILITY AND EFFICIENCY.

[LEARNING SKILLS]

THE STUDENT WILL BE ABLE TO:

- PERFORM DESIGN ACTIVITIES FOR SCALABLE AND RELIABLE SYSTEMS FOR HIGH-PERFORMANCE COMPUTING
RUNNING ON CLOUD COMPUTING PLATFORMS;
- UTILIZE SOFTWARE DEVELOPMENT TOOLS FOR HIGH-PERFORMANCE SYSTEMS;
- CONTINUOUSLY UPDATE THEIR KNOWLEDGE BY USING TECHNICAL AND SCIENTIFIC LITERATURE.
Prerequisites
THE STUDENT MUST HAVE ACQUIRED KNOWLEDGE ON THE ARCHITECTURE OF NETWORKS AND TCP / IP PROTOCOLS AND CLIENT/SERVER PROGRAMMING. THE STUDENT MUST ALSO HAVE A SIGNIFICANT PROGRAMMING EXPERIENCE IN JAVA AND C AND OPERATING SYSTEMS, AND MUST BE ABLE TO USE PROFICUOSULY AN INTEGRATED DEVELOPMENT ENVIRONMENT.
Contents
(FOR EACH ARGUMENT WE INDICATE THE HOURS OF TEACHING (FRONT LESSON F) AND LABORATORY (L))

•INTRODUCTION TO CONCURRENT PROGRAMMING 2F
•MUTUAL EXCLUSION 4F
•CONCURRENT OBJECTS 2F
•SPIN LOCKS 2F
•MONITORS 4F
•LINKED LIST 4F
•CONCURRENT QUEUE 4F
•SCHEDULING AND WORK DISTRIBUTION 4F
•INTRODUCTION TO PARALLEL PROGRAMMING 2F
•MPI: CONCEPTS 1F
•COMMUNICATION POINT-TO-POINT IN MPI: BLOCKING AND NON-BLOCKING COMMUNICATION 1F+4L
•NON CONTIGUOUS DATA IN MPI 1F + 4L
•COLLECTIVE COMMUNICATION IN MPI 1F+4L
•USING A CLUSTER IN MPI 2L
•CLOUD COMPUTING ON AWS 2L
Teaching Methods
THE COURSE IS MADE UP BY A FOUNDATIONAL PART (4 CFU 32 HOURS) , DEALING WITH THE PRINCIPLES OF CONCURRENT COMPUTING (ALGORITHMS AND DATA STRUCTURE) PARALLEL COMPUTING (MPI PROGRAMMING) AND CLOUD COMPUTING (AMAZON AWS) AND A PRACTICAL PART (2 CFU 16 HOURS) DEALING WITH THE DEVELOPMENT OF SIMPLE PARALLEL APPLICATIONS IN C-MPI AND THEIR BENCHMARKING ON AMAZON CLOUD.
Verification of learning
SIX EXAM SESSIONS DURING THE WHOLE ACADEMIC YEAR, IN ADDITION TO TWO SPECIAL ONES RESERVED TO STUDENTS WHO LACK A FEW EXAMS FOR THEIR DEGREE. EACH SESSION IS PROVIDED WITH A PROJECT TEST (THAT MUST BE COMPLETED WITHIN A MONTH) AND AN ORAL TEST. THE RESULTING MARK IS CALCULATED USING A WEIGHTED AVERAGE OF THE TWO TEST MARKS.

Texts
•"THE ART OF MULTIPROCESSOR PROGRAMMING", M. HERLIHY E N. SHAVIT.
•"JAVA CONCURRENCY IN PRACTICE". BRIAN GOETZ ET AL.
•"PARALLEL PROGRAMMING IN C WITH MPI AND OPENMP", MICHAEL J. QUINN
•"AN INTRODUCTION TO PARALLEL PROGRAMMING", PETER PACHECO
•MPI TUTORIAL, ARTICLES AND ADDITIONAL MATERIAL ON THE WEBSITE
More Information
INFORMATION ABOUT EACH CLASS AND EAMPLES DISCUSSED DURING THE COURSE ARE AVAILABLE ON THE FACULTY LEARNING PLATFORM, WITH TRACES OF EXAMS AND OTHER SUPPORTING MATERIAL (PROGRAMMING MANUALS, TUTORIALS, READING MATERIAL)
HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM
Lessons Timetable

  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2025-01-27]