8-11 April 2019
Barcelona BSC Campus Nord
CET timezone

The registration to this course is now open.

All PATC Courses at BSC do not charge fees.


Local Web Page: This course will provide very good introduction to the PUMPS Summer School run jointly with NVIDIA -also  at Campus Nord, Barcelona. For further information visit the school website  as this school has attendee selection process.
You may also be interested in our Introduction to OpenACC course.

Antonio Peña, Computer Sciences Senior Researcher, Accelerators and Communications for High Performance Computing, BSC


The aim of this course is to provide students with knowledge and hands-on experience in developing applications software for processors with massively parallel computing resources. In general, we refer to a processor as massively parallel if it has the ability to complete more than 64 arithmetic operations per clock cycle. Many commercial offerings from NVIDIA, AMD, and Intel already offer such levels of concurrency. Effectively programming these processors will require in-depth knowledge about parallel programming principles, as well as the parallelism models, communication models, and resource limitations of these processors.



Session 1 / 9:00am – 1:00 pm (3:30 h lectures)

L1 9:00-10:45 The GPU hardware: Many-core Nvidia developments

10:45-11:15 Coffee break

L2 11:15-13:00 CUDA Programming: Threads, blocks, kernels, grids

13:00-14:00 Lunch break


Session 2 / 2:00pm – 6:00 pm (3:30 h lectures)

L3 14:00-15:45 CUDA Tools: Compiling, debugging, profiling, occupancy calculator

15:45-16:15 Coffee break

L4 16:15-18:00 CUDA Examples(1): VectorAdd, Stencil, ReverseArray



Session 3 / 9:00am – 1:00 pm (3:30 h lectures)

L5   9:00-10:45 CUDA Examples (2): Matrices Multiply. Assorted optimizations

10:45-11:15 Coffee break

L6 11:15-13:00 CUDA Examples (3): Dynamic parallelism, Hyper-Q, unified memory

13:00-14:00 Lunch break


Session 4 / 2:00pm – 6:00 pm (3:30 h practical)

H1 14:00-15:45 Hands-on Lab 1

15:45-16:15 Coffee break

H2 16:15-18:00 Hands-on Lab 2



Session 5 / 9:00am – 1:00 pm (3:30 h lectures)

L7 9:00-10:45 Inside Pascal: Multiprocessors, stacked memory, NV-link

10:45-11:15 Coffee break

L8 11:15-13:00 OpenACC and other approaches to GPU computing

13:00-14:00 Lunch break


Session 6 / 2:00pm – 6:00 pm (3:30 h practical)

H3 14:00-15:45 Hands-on Lab 3

15:45-16:15 Coffee break

H4 16:15-18:00 Hands-on Lab 4



Session 7 / 9:00am – 1:00 pm (3:30 h practical)

H5 9:00-10:45 Hands-on Lab 5

10:45-11:15 Coffee break

H6 11:15-13:00 Hands-on Lab 6

13:00-14:00 Lunch break


Session 8 / 2:00pm – 6:00 pm (3:30 h practical)

H7 14:00-15:45 Hands-on Lab 7

 15:45-16:15 Coffee break

H8 16:15-18:00 Free Hands-on Lab

End of Course

The target audiences of the course are students who want to develop exciting applications for these processors, as well as those who want to develop programming tools and future implementations for these processors.

Level: 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

Prerequisites: Basics of C programming and concepts of parallel processing will help, but are not critical to follow the lectures.

Barcelona BSC Campus Nord
Vertex Building, Room VS208

For further details and practical info such as local transport and venue please visit the local course pages for PATC@BSC: http://www.bsc.es/patc

Registration for this event is currently open.