IDENTIFYING DATA 2023_24
Subject (*) PARALLEL AND MASSIVE COMPUTING Code 17234129
Study programme
Bachelor's Degree in Computer engineering (2010)
Cycle 1st
Descriptors Credits Type Year Period
6 Compulsory Fourth 2Q
Language
CatalĂ 
Department Computer Engineering and Mathematics
Coordinator
ALIAGAS CASTELL, CARLOS
E-mail carles.aliagas@urv.cat
Lecturers
ALIAGAS CASTELL, CARLOS
Web http://moodle.urv.cat
General description and relevant information <p>GENERAL DESCRIPTION OF THE SUBJECT: Study of shared and distributed memory multiprocessor architectures (MMC, MMD), delving into the specific techniques for efficient programming. Identification of the factors involved in the performance of multiprocessor systems. Development of efficient parallel applications (parallelization of sequential programs and parallelization of loops). Study and practical use of the OpenMP and MPI shared memory programming standard model for the development of parallel applications.</p>

Competences
Type A Code Competences Specific
 CM14 Have knowledge of and apply the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
 CP3 Be able to evaluate the computational complexity of a problem, know algorithmic strategies that may lead to its resolution and recommend, develop and implement the one that will guarantee the best performance in accordance with the established requirements.
Type B Code Competences Transversal
 CT5 Communicate information clearly and precisely to a variety of audiences.
Type C Code Competences Nuclear

Learning outcomes
Type A Code Learning outcomes
 CM14 Know the architectures of general-purpose multiprocessors.
Know the architectures of Shared-Memory Multiprocessors (SMM) and Distributed-Memory Multiprocessors (DMM).
Design and implement parallel programs on CMM using MPI.
Design and implement programs parallel to the DMM using MPI.
 CP3 Understand the general process of algorithm parallelisation and their design principles.
Design and implement parallel programs on CMM using MPI.
Design and implement programs parallel to the DMM using MPI.
Type B Code Learning outcomes
 CT5 Produce quality texts that have no grammatical or spelling errors, are properly structured and make appropriate and consistent use of formal and bibliographic conventions.
Draw up texts that are structured, clear, cohesive, rich and of the appropriate length
Draw up texts that are appropriate to the communicative situation, consistent and persuasive
Use the techniques of non-verbal communication and the expressive resources of the voice to make a good oral presentation
Draw up texts that are structured, clear, cohesive, rich and of the appropriate length
Produce a persuasive, consistent and precise discourse that can explain complex ideas and effectively interact with the audience
Type C Code Learning outcomes

Contents
Topic Sub-topic
1. Introduction 1. General-purpose parallel architectures
2. Multiprocessor structures
2. Shared memory multiprocessors 1. Architecture
2. Cache consistency
3. General process of parallelizing algorithms
3. OpenMP 1. Basic concepts
2. Programming model
3. Programming directives
4. Distributed memory multiprocessors 1. Architecture
2. Interconnection Networks
3. Programming Models
4. General process of parallelizing algorithms
5. MPI 1. Basic concepts
2. Programming model
3. Bookstore functions

Planning
Methodologies  ::  Tests
  Competences (*) Class hours
Hours outside the classroom
(**) Total hours
Lecture
CP3
11 33 44
Introductory activities
1 0 1
Laboratory practicals
CM14
25 65 90
Personal attention
2 0 2
 
Multiple-choice objective tests
CP3
2 1 3
Practical tests
CM14
CT5
2 4 6
Oral tests
CM14
CP3
CT5
2 2 4
 
(*) On e-learning, hours of virtual attendance of the teacher.
(**) The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies
  Description
Lecture Following the concepts and examples of the bibliography, clarifying, expanding and summarizing (depending on the need) the theoretical concepts using transparencies and blackboard. The students interact in order to contribute their point of view to different engineering approaches.
Introductory activities Explanation of the objectives, content and evaluation process.
Laboratory practicals Solving engineering problems, using computers and/or simulators.
Personal attention Students can go personally to the teacher's office during consultation hours in order to raise any doubts related to the theoretical or practical explanation, implementation of problems or practices and evolution and difficulties in their learning process.

Personalized attention
Description

Students can go personally to the teacher's office during consultation hours in order to raise any doubts related to the theoretical or practical explanation, implementation of problems or practices and evolution and difficulties in their learning process.


Assessment
Methodologies Competences Description Weight        
Multiple-choice objective tests
CP3
Carrying out several theoretical tests during the semester related to the subject matter taught up to that point. 50%
Practical tests
CM14
CT5
Resolution of some practical exercises, which in addition to the skills to be demonstrated in the development tests, we want to assess and evaluate the real problem solving skills, their testing and validation of results. In the same way, their written ability to describe the problem and its resolution is assessed. 50%
Oral tests
CM14
CP3
CT5
Linked to practice tests. Interviews are held with the group that has completed the practical test, so that, individually, they defend/demonstrate the proposed solution and their knowledge of it. 0%
Others  
 
Other comments and second exam session

It is important to follow the work plan, which indicates, week by week, the evolution of the contents and the dates of the different events.

The Assessment in the second call allows students to take all the assessment tests that have taken place during the course. The development and test-type tests on the day specified by the ETSE for this subject. The practical tests will be delivered by moodle on the same day of the exam and the oral tests linked to the practical tests during the week following the day of the second exam.

The assessment tests will consist of two blocks: a.- test, b.- practicals + oral. The student can, at his discretion, submit to any of these parties the grade that will be recorded, and will be used at the end, it will be the last that has been submitted.

It is necessary to obtain a minimum grade of 4 in the theoretical part and to pass each of the practical tests in order to pass the subject.


Sources of information

Basic D. Culler, J.P. Singh, i A. Gupta, Parallel Computer Architecture: A hardware/software approach, Morgan Kaufmann, 1997
Ananth Grama, Anshul Gupta, George Karypis, i Vipin Kumar., Introduction to Parallel Computing, Ananth Grama, Anshul Gupta, George Karypis, i Vipin Kumar., 2003
L. Ridway Scott, Terry Clark i Babak Bagheri, Scientific Parallel Computing, Princeton University Press, 2005

Complementary Michael J. Quinn, Parallel Programing in C with MPI and OpenMP, McGrawHill, 2003
Chandra, Rohit, Parallel programming in OpenMP, Morgan Kaufmann, 2001

Recommendations


Subjects that it is recommended to have taken before
COMPUTER STRUCTURE/17234108
PROGRAMMING METHODOLOGIES/17234116
COMPUTERS/17234107
PROGRAMMING/17234114
COMPUTER ARCHITECTURE/17234109
(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.