The Barcelona Supercomputing Center (BSC) in association with Universitat Politecnica de Catalunya (UPC) has been awarded by NVIDIA as a GPU Center of Excellence. BSC and UPC currently offer a number of courses covering CUDA architecture and programming languages for parallel computing. Please contact us for possible collaborations.

The 8th edition of the Programming and Tuning Massively Parallel Systems summer school (PUMPS) is aimed at enriching the skills of researchers, graduate students and teachers with cutting-edge technique and hands-on experience in developing applications for many-core processors with massively parallel computing resources like GPU accelerators.

  • Summer School Co-Directors: Mateo Valero (BSC and UPC) and Wen-mei Hwu (University of Illinois at Urbana-Champaign)

  • Local Organizers: Antonio J. Peña (BSC), Victor Garcia (BSC and UPC), and Pau Farre (BSC)

  • Dates:

    • Applications due: April 30, 2017

      • Due to space limitations, early application is strongly recommended. You may also be suggested to attend an online prerequisite training on basic CUDA programming before joining PUMPS.

    • Notification of acceptance: May 15, 2017

    • Summer school: June 26-30, 2017

  • The following is a list of some of the topics that will be covered during the course:

    • CUDA Algorithmic Optimization Strategies

    • Dealing with Sparse and Dynamic data

    • Efficiency in Large Data Traversal

    • Reducing Output Interference

    • Controlling Load Imbalance and Divergence

    • Acceleration of Collective Operations

    • Dynamic Parallelism and HyperQ

    • Debugging and Profiling CUDA Code

    • Multi-GPU Execution

    • Architecture Trends and Implications

    • Introduction to OmpSs and to the Paraver analysis tool

    • OmpSs: Leveraging GPU/CUDA Programming

    • Hands-on Labs: CUDA Optimizations on Scientific Codes; OmpSs Programming and Tuning

  • Prerequisites for the course are:

    • Basic CUDA knowledge is required to attend the course. Applicants that cannot certify their experience in CUDA programming will be asked to take a short on-line course covering the necessary introductory topics

    • C, C++, Java, or equivalent programming knowledge. Skills in parallel programming will be helpful

Preliminary Overview

  • Registration for the course is free. We expect our sponsors will cover academic applicants' marginal expenses such as meals. Please note that travel and lodging are not covered. Applicants from non-academic institutions (companies), please contact us at for sponsorship possibilities.

  • By the end of the summer school, participants will:

    • Be able to design algorithms that are suitable for accelerators.

    • Understand the most important architectural performance considerations for developing parallel applications.

    • Be exposed to computational thinking skills for accelerating applications in science and engineering.

    • Engage computing accelerators on science and engineering breakthroughs.

  • Programming Languages: CUDA, MPI, OmpSs, OpenCL

  • Hands-on Labs: Afternoon labs with teaching assistants for each audience/level.

    • Participants are expected to bring their own laptops to access the servers with GPU accelerators.

    • The afternoon lab sessions will provide hands-on experience with various languages and tools covered in the lectures and will comprise a brief introduction to the programming assignments, followed by independent work periods. Teaching assistants will be available in person and on the web to help with assignments.

Building B3, Sala Agora
UPC, Campus Diagonal Nord