Facultatea de Științe Economice și Gestiunea Afacerilor Str. Teodor Mihali nr. 58-60 Cluj-Napoca, RO-400951 Tel.: 0264-41.86.52-5 Fax: 0264-41.25.70 econ@econ.ubbcluj.ro www.econ.ubbcluj.ro DETAILED SYLLABUS Parallel programming 1. Information about the study program 1 University Babeș-Bolyai Universi 1.2 Faculty Faculty of Economics and Business Administration 1.3 Department Business Information Systems 1.4 Field of study Business Information Systems 1.5 Program level (bachelor or master) Master 1.6 Study program / Qualification Business Modeling and Distributed Computing 2. Information about the subject 2.1 Subject title Parallel programming 2.2 Course activities professor Prof.dr. Gheorghe Cosmin Silaghi 2.3 Seminar activities professor Prof.dr. Gheorghe Cosmin Silaghi 2.4 Year of study I 2.5 Semester I 2.6 Type of assessment Exam 2.7 Subject regime mandato ry 3. Total estimated time (teaching hours per semester) 3.1 Number of hours per week 3.3 seminar/laboratory 4 out of which: 3.2 course 2 3.4 Total number of hours in the 3.6 seminar/laboratory 56 out of which: 3.5 course 28 curriculum Time distribution Study based on textbook, course support, references and notes Additional documentation in the library, through specialized databases and field activities Preparing seminars/laboratories, essays, portfolios and reports Tutoring Assessment (examinations) Others activities 3.7 Total hours for individual study 144 3.8 Total hours per semester 200 3.9 Number of credits 8 2 28 Hours 45 40 45 10 4 4. Preconditions (if necessary) 4.1 Curriculum 4.2 Skills Basic programming skills. C and Java are preferred. 5. Conditions (if necessary) 5.1. For course development 5.2. For seminar / laboratory development The courses should be held in a room with simultaneous access to a computer-projector and a board. The seminars should be held in a room with simultaneous access to a computer-projector and a board. As well, the students need to have access to computers. The course will be managed on the moodle platform supplied by the BIS department Students need to access a High performance computing infrastructure 6. Acquired specific competences 1 NOTE: This document represents an informal translation performed by the faculty. Professional competences Transversal competences Comparative assessment of methodologies and methods used in parallel programming Application of conceptual and methodological apparatus for establishing parallel programming methods need to be used according to the type of problem Explain the concepts of methods, techniques and tools applied in parallel programming Achieving a work / project with shows the level of parallel programming skills Solving in real time under qualified assistance of a real problem / hypothetical workplace, following the rules of professional ethics 7. Subject objectives (arising from the acquired specific competences) 7.1 Subject’s general objective 7.2 Specific objectives Acquiring theoretical and practical skills for - Discovery of concepts related to parallel programming and the use of different methodologies for implementation of these concepts - Enhancement of teamwork, - Acquiring the capabilities of correctly programing parallel programs - Acquiring the capabilities to implement a sequential software in a parallel programming language Programming knowledge in MPI, OpenMP, PThreads 8. Contents 8.1 Course Parallel programming. Fundamental concepts Parallel hardware and software MPI Shared memory programming with PThreads Shared Memory programming with OpenMP Map-Reduce Teaching Observations methods The professor gives a talk and encourages 1 courses discussions on the themes. The professor gives a talk and encourages 1 courses discussions on the themes. The professor gives a talk and encourages 3 courses discussions on the themes. The professor gives a talk and encourages 3 courses discussions on the themes. The professor gives a talk and encourages 2 courses discussions on the themes. The professor gives a talk and encourages 1 courses discussions on the themes. 2 NOTE: This document represents an informal translation performed by the faculty. The professor gives a talk and encourages 2 courses discussions on the themes. The professor gives a talk and encourages 1 courses discussions on the themes. Parallel programming for GPU Techniques for parallel programs development References: 1. P. Pacheco, An Introduction to Parallel Programming, Morgan Kaufmann, 2010 2. T. Rauber, G. Runger, Parallel Programming for multicore and cluster systems, Springer, 2013 3. D. Kirk, Programming masively parallel processors, Morgan Kaufmann, 2013 Teaching methods Practical Data parallelism vs. task parallelism. laboratory Measures for computing the parallel programs efficiency: speedup, efficiency, Practical scalability laboratory Practical Fundamental concepts in MPI. laboratory Practical Tree-based communication. Scatter/Gather, Barriers and safety laboratory Practical Fundamental concepts in PThreads. Critical sections. Busy-waiting. Mutex. laboratory Practical Synchronization in producer-consumer problems. Semaphores. laboratory Practical Read-write locks and thread safety laboratory Practical Fundamental concepts in OpenMP laboratory Practical Programming with Map-Reduce laboratory Practical Programming with GPUs laboratory 8.2 Seminar/laboratory Observations 1 laboratories 1 laboratories 1 laboratories 1 laboratories 1 laboratories 1 laboratories 1 laboratories 1 laboratories 2 laboratories 2 laboratories References: 1. P. Pacheco, An Introduction to Parallel Programming, Morgan Kaufmann, 2010 2. T. Rauber, G. Runger, Parallel Programming for multicore and cluster systems, Springer, 2013 3. D. Kirk, Programming masively parallel processors, Morgan Kaufmann, 2013 9. Corroboration / validation of the subject’s content in relation to the expectations coming from representatives of the epistemic community, of the professional associations and of the representative employers in the program’s field. In many fields parallel programming becomes a necessity due to the increasing complexity of the problems supposed to be solved by computer and thanks to technologies that have emerged in recent years. Using technology to achieve parallel programs is a necessity in this regard. 10. Assessment (examination) Type of activity 10.1 Assessment criteria 10.2 Assessment methods 10.3 Weight in the final grade 3 NOTE: This document represents an informal translation performed by the faculty. 10.4 Course Understanding the issues of parallel Written final exam. programming Capability to develop solutions involving concepts of parallel programming Capability to explain programs writen with parallel programming techniques 10.5 Ability to recognize and understand The assessment of the homework Seminar/laboratory programs writen with the tehnologies projects. presented during this course Ability to program a HPC with the technologies presented during this course. 30% 70% 10.6 Minimum performance standard • It is necessary to obtain a minimum final grade of 5 (five) in order to pass this subject; • The grades being granted are between 1 (one) and 10 (ten); • Students must approach each element (question, problem) within the (written) exam sheet; • The exam is written and takes approximately 120 minutes; Date of filling 26 january, 2015 Signature of the course professor Prof.dr. Gheorghe Cosmin Silaghi Date of approval by the department 28 january 2015 Signature of the seminar professor Prof.dr. Gheorghe Cosmin Silaghi Head of department’s signature Prof.dr. Gheorghe Cosmin Silaghi 4 NOTE: This document represents an informal translation performed by the faculty.