PATC Course: Parallel Programming Workshop

Date: 24/Oct/2016 Time: 10:00 - 28/Oct/2016 Time: 17:00

Place:

The course will take place in
Barcelona Supercomputing Centre,
within the UPC Campus Nord premises.

Target group: Level: (All courses are designed for specialists with at least 1st cycle degree or similar background experience) INTERMEDIATE: for trainees with some theoretical and practical knowledge; those who finished the beginners course. ADVANCED: for trainees able to work independently and requiring guidance for solving complex problems.

Cost: There is no registration fee. The attendees would need to cover the expenses for travel, accommodation and meals.

Primary tabs

Day 1
Session 1 / 10:00 am – 1:00 pm (2h lectures, 1h practical)
1. Introduction to parallel architectures, algorithms design and performance parameters
2. Introduction to the MPI programming model
3. Practical: How to compile and run MPI applications

Session 2 / 2:00pm – 5:00 pm  (1h30' lectures, 1h30' practical)
1. Introduction to Paraver: tool to analyze and understand performance
2. Practical: Trace generation and trace analysis
--------------------------------------------------------------------------------------------------------
Day 2
Session 1 / 10:00 am - 1:00 pm (2h lectures, 1h practical)
1. MPI: Point-to-point communication, collective communication
2. Practical: Simple matrix computations
3. MPI: Blocking and non-blocking communications

Session 2 / 2:00 pm - 5:00 pm (1h30' lectures, 1h30' practical)
1. MPI: Collectives, Communicators, Topologies
2. Practical: Heat equation example
-------------------------------------------------------------------------------------------------------- 
Day 3
Session 1 / 10:00 am - 1:00 pm (1h lecture, 2h practical)
1. Parallel debugging in MareNostrumIII, options from print to Totalview
2. Practical: GDB and IDB
3. Practical: Totalview
4. Practical: Valgrind for memory leaks

Session 2 / 2:00 pm - 5:00 pm (2h lectures, 1h practical)
1. Shared-memory programming models, OpenMP fundamentals
2. Parallel regions and work sharing constructs
3. Synchronization mechanisms in OpenMP
4. Practical: heat diffusion in OpenMP
 --------------------------------------------------------------------------------------------------------
Day 4
Session 1 / 10:00am – 1:00 pm (2h practical, 1h lectures)
1. Tasking in OpenMP 3.0/4.0
2. Programming using a hybrid MPI/OpenMP approach
3. Practical: multisort in OpenMP and hybrid MPI/OpenMP

Session 2 / 2:00pm – 5:00 pm (1h30' lectures, 1h30' practical)
1. Tareador: understanding and predicting the potential of task decomposition strategies
2. Parallware: guided parallelization
 --------------------------------------------------------------------------------------------------------
Day 5
Session 1 / 10:00 am – 1:00 pm (2h lectures, 1h practical)
1. Introduction to the OmpSs programming model
2. Practical: heat equation example and divide-and-conquer

Session 2 / 2:00pm – 5:00 pm (1h lectures, 2h practical)
1. Programming using a hybrid MPI/OmpSs approach
2. Practical: heat equation example and divide-and-conquer

END of COURSE