BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CERN//INDICO//EN
BEGIN:VEVENT
SUMMARY:[ONSITE] BSC Training Course: Parallel Programming Workshop @ BSC
DTSTART;VALUE=DATE-TIME:20251020T073000Z
DTEND;VALUE=DATE-TIME:20251024T153000Z
DTSTAMP;VALUE=DATE-TIME:20260520T010700Z
UID:indico-event-1607@events.prace-ri.eu
CONTACT:patc@bsc.es
DESCRIPTION:BSC Training Courses are free of charge.\n\nPlease be aware 
 that this course will only be delivered in person and will not be recorded
  or streamed.\n\nCourse Convener: Xavier Martorell\n\nCourse Lecturers: J
 udit Giménez - Performance Tools - Group Manager\nGerman Llort - Performa
 nce Tools - Senior Researcher\nMarc Jordà - Accelerators and Communicatio
 ns for High Performance Computing - Research Engineer\nAntonio Peña - Acc
 elerators and Communications for High Performance Computing - Senior Resea
 rcher\nJavier Teruel -  Best Practices for Performance and Programmabilit
 y  - Group Coordinator\nXavier Martorell - Programming Models - Parallel 
 programming model - Group Manager\n\nLevel: Intermediate: For trainees wi
 th some theoretical and practical knowledge\, some programming experience.
 \n\nAdvanced: For trainees able to work independently and requiring guidan
 ce for solving complex problems.\n\nAttendants can bring their own applica
 tions and work with them during the course for parallelization and analysi
 s.\n\n\nPrerequisites: Fortran\, C or C++ programming. All examples in th
 e course will be done in C\n\nSoftware requirements: Zoom (recommended)\, 
 SSH client (to connect HPC systems)\, X Server (enabling remote visual too
 ls).\n\nObjectives: The objectives of this course are to understand the f
 undamental concepts supporting message-passing and shared memory programmi
 ng models. The course covers the two widely used programming models: MPI f
 or the distributed-memory environments\, and OpenMP for the shared-memory 
 architectures. The course also presents the main tools developed at BSC to
  get information and analyze the execution of parallel applications\, Para
 ver and Extrae. It also presents the Parallware Assistant tool\, which is 
 able to automatically parallelize a large number of program structures\, a
 nd provide hints to the programmer with respect to how to change the code 
 to improve parallelization. It deals with debugging alternatives\, includi
 ng the use of GDB and Totalview.\n\nThe use of OpenMP in conjunction with 
 MPI to better exploit the shared-memory capabilities of current compute no
 des in clustered architectures is also considered. Paraver will be used al
 ong the course as the tool to understand the behavior and performance of p
 arallelized codes. The course is taught using formal lectures and practica
 l/programming sessions to reinforce the key concepts and set up the compil
 ation/execution environment.\n\nAttendants can bring their own application
 s and work with them during the course for parallelization and analysis.\n
 \nLearning Outcomes: The students who finish this course will be able to 
 develop benchmarks and applications with the MPI\, OpenMP and mixed MPI/Op
 enMP programming models\, as well as analyze their execution and tune thei
 r behaviour in parallel architectures.\n\nAgenda: \n\n\n\n\n\nSessions wi
 ll be in October 14th-18th 2024 from 9:30 – 13:00 and from 14:30 to 17
 :30 CET with 20’ break in between sessions and 1h30' lunch break - deliv
 ered face to face in C6-E101\, UPC\, Campus Nord Barcelona\n\nAgenda sub
 ject to changes\n\nDay 1 (Monday October 14th)\n\nSession 1 / 9:30 – 13:
 00 (20`rest in between)\n1. Introduction to parallel architectures\, algor
 ithms design and performance parameters\n2. Introduction to the MPI progra
 mming model\n3. Practical: How to compile and run MPI applications\n\n13:0
 0 - 14:30 Lunch Break\n\nSession 2 / 14:30 – 17:30 (20`rest in between)\
 n\n1. MPI: Non-blocking communication\, collective communication\, datatyp
 es\n2. Practical: Simple stencil\n3. MPI: One-sided communication\n\nDay 2
  (Tuesday October 15th)\n\nSession 1 / 9:30 – 13:00 (20`rest in between)
 \n\n1. MPI: Hybrid Programming with Shared Memory and Accelerators\; Non-b
 locking Collectives\, Topologies\, and Neighborhood Collectives\n2. Practi
 cal: One-sided\, shared-memory\, topologies\n\n13:00 - 14:30 Lunch Break\n
 \nSession 2 / 14:30 – 17:30 (20`rest in between)\n\n1. Parallel debuggin
 g in MareNostrumIII\, options from print to Totalview\n\n2. Practical: GDB
  and IDB\n\n3. Practical: Totalview\n4. Practical: Valgrind for memory lea
 ks\n\nDay 3 (Wednesday October 16th)\n\nSession 1 / 9:30 – 13:00 (20`res
 t in between)\n\n1. Introduction to Paraver: tool to analyze and understan
 d performance\n2. Practical: Trace generation and trace analysis\n\n13:00 
 - 14:30 Lunch Break\n\nSession 2 / 14:30 – 17:30 (20`rest in between)\n1
 . Shared-memory programming models\, OpenMP fundamentals\n2. Parallel regi
 ons and work sharing constructs\n3. Synchronization mechanisms in OpenMP\n
 4. Practical: sample parallel and worksharing exercises\n\nDay 4 (Thursday
  October 17th)\n\nSession 1 / 9:30 – 13:00 (20`rest in between)\n\n1. Wo
 rksharing constructs (continued)\n2. OpenMP Tasking\n3. Practical: Worksha
 ring and Tasking\n\n13:00 - 14:30 Lunch Break\n\nSession 2 / 14:30 – 17:
 30 (20`rest in between)\n1. Parallware Codee: guided parallelization\n2. P
 ractical session with Codee examples\n\nDay 5 (Friday October 18th)\n\nSes
 sion 1 / 9:30 – 13:00 (20`rest in between)\n1. Introduction to the OmpSs
 -2 programming model\n2. Practical: cholesky\, matrix multiplication\, axp
 y\, dot-product\n\n13:00 - 14:30 Lunch Break\n\nSession 2 / 14:30 – 17:3
 0 (20`rest in between)\n1. Programming using a hybrid MPI/OmpSs approach 
 and TAMPI\n2. Practical: heat equation example and n-body examples\n\nEND 
 OF COURSE\n\n\n\n\n\nhttps://events.prace-ri.eu/event/1607/
LOCATION:E101 (C6 Building)
URL:https://events.prace-ri.eu/event/1607/
END:VEVENT
END:VCALENDAR
