Concurrent, Parallel and Cloud Programming

Vittorio SCARANO Concurrent, Parallel and Cloud Programming

0522500102
DIPARTIMENTO DI INFORMATICA
EQF7
COMPUTER SCIENCE
2018/2019



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2016
SECONDO SEMESTRE
CFUHOURSACTIVITY
756LESSONS
216LAB
Objectives
Principles of concurrent and parallel programming with the main issues analysys and a study of the most important concurrent data structures (list, queues, hash tables, priority queues, etc.) Parallel scheduling. Principles of the architecture of multiprocessors and multi-cores.
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
•INTRODUCTION TO CONCURRENT PROGRAMMING
•MUTUAL EXCLUSION
•CONCURRENT OBJECTS
•SPIN LOCKS
•MONITORS
•LINKED LIST
•CONCURRENT QUEUE
•SCHEDULING AND WORK DISTRIBUTION
•TRANSACTIONAL MEMORY
•AMDHAL LAW
•INTRODUCTION TO PARALLEL PROGRAMMING
•MPI: CONCEPTS
•COMMUNICATION POINT-TO-POINT IN MPI: BLOCKING AND NON-BLOCKING COMMUNICATION
•NON CONTIGUOUS DATA IN MPI
•COLLECTIVE COMMUNICATION IN MPI
•USING A CLUSTER IN MPI
•CLOUD COMPUTING ON AWS
Teaching Methods
THE COURSE IS MADE UP BY A FOUNDATIONAL PART, DEALING WITH THE PRINCIPLES OF CONCURRENT COMPUTING (ALGORITHMS AND DATA STRUCTURE) ARALLEL COMPUTING (MPI PROGRAMMING) AND CLOUD COMPUTING (AMAZON AWS) AND A PRACTICAL PART 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
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-10-21]