CONCURRENT AND PARALLEL PROGRAMMING

Vittorio SCARANO CONCURRENT AND PARALLEL PROGRAMMING

0522500018
DIPARTIMENTO DI INFORMATICA
COMPUTER SCIENCE
2015/2016



YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2015
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
•MULTITHREAD PROGRAMMING IN JAVA
•THREAD SAFETY
•SHARING OBJECTS
•COMPOSING OBJECTS
•FORK/JOIN
•CLOSURES AND LAMBDA EXPRESSIONS
Teaching Methods
THE CONCURRENT AND PARALLEL PROGRAMMING COURSE IS MADE UP BY A FOUNDATIONAL PART, DEALING WITH THE PRINCIPLES OF CONCURRENT COMPUTING (ALGORITHMS AND DATA STRUCTURE) AND PARALLEL COMPITING (MPI PROGRAMMING) AND A PRACTICAL PART DEALING WITH THE DEVELOPMENT OF SIMPLE PARALLEL APPLICATIONS IN C-MPI AND CONCURRENT APPLICATIONS IN JAVA.
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: 2016-09-30]