Slot 2

Application programming on parallel/distributed computing platforms
Rosa Badia, BSC, Spain


The complexity of current computing systems has been growing both from the hardware aspects (multicore processors, accelerators, GPUS, FPGAs, etc) and from the system aspects (cluster and clouds). This fact makes the task of the application developers more difficult. They need to be aware of the concurrency of the system, existing APIs to access the computing platform, etc. This makes the code less readability, with less portability, increased number of lines, and in general decreases the productivity of the programmer. Several programming models have been proposed to improve the situation that provide higher levels of abstraction that cope with this complex systems.

Task-based programming models have proven to be the right approach to exploit large-scale parallelism of current systems, by enabling a data-flow execution model and avoiding global synchronization. COMPSs falls into this category and is able to exploit the inherent concurrency of sequential applications and execute them in a distributed platform, including clusters and clouds. This is achieved by annotating part of the code as tasks, and building at execution a task-dependence graph based on the data consumed/produced by the tasks. COMPSs runtime is able to schedule tasks in computing nodes taking into account facts like data locality and node heterogeneity. The recently released Python binding (PyCOMPSs) opens a new door to execute Python scripts in parallel in distributed platforms.

This course will describe the alternative programming models that exists to develop applications for parallel and distributed computing platforms. The course will mostly focus in PyCOMPSs/COMPSs, a task-based approach to develop parallel applications. Aspects that will be described are: programming syntax, runtime features, interoperability between different clouds and computing platforms, access to heterogeneous devices (GPUs, FPGAs), access to/from mobile devices, and development in new IoT platforms.


Rosa M. Badia holds a PhD on Computer Science (1994) from the Technical University of Catalonia (UPC). She is the manager of the Workflows and Distributed Computing research group at the Barcelona Supercomputing Center (BSC). She is a Scientific Researcher from the Consejo Superior de Investigaciones Cientificas (CSIC).

She was involved in teaching and research activities at the UPC from 1989 to 2008, where she was an Associated Professor since year 1997. From 1999 to 2005 she was involved in research and development activities at the European Center of Parallelism of Barcelona (CEPBA). Her current research interest are programming models for complex platforms (from multicore, GPUs to Grid/Cloud).  The group lead by Dr. Badia has been developing StarSs programming model for more than 10 years, with a high success in adoption by application developers. Currently the group focuses its efforts in the development of PyCOMPSs/COMPSs for distributed computing including Cloud.

Dr. Badia has published more than 150 papers in international conferences and journals in the topics of her research. She is currently participating in the following European funded projects: Euroserver, The Human Brain Project, the BioExcel CoE, NEXTGenIO, MUG, EUBra BIGSEA, Mf2C, TANGO, the Expertise ETN and it is a member of HiPEAC.  

  Back to course info