The main objective of the Programming Models group is to investigate programming paradigms towards productive programming and their implementation through intelligent runtime systems that effectively exploit performance out of the target architecture (from multicore and SMT processors to shared- and distributed-memory systems, small and large-scale cluster systems, including both homogenous and heterogenous systems that use accelerators like GPUs).

We currently organize our work around the design of OmpSs, a set of extensions to provide support to asynchronous tasks and heterogeneity. They are integrated into OpenMP as a base language and interoperate with MPI and CUDA (OpenCL and OpenACC interoperability is in progress). This programming model relies on top of:

  • Our Mercurium source-to-source compiler provides the necessary support for transforming the high-level directives into a parallelized version of the application.
  • Our Nanos++ runtime library provides the parallel services to manage all the parallelism in the user-application, including task creation, synchronization and data movement, and provide support for resource heterogeneity.


  • OmpSs Specification  (html)  (pdf)
  • OmpSs User Guide (html)  (pdf)
  • OmpSs Examples and Exercises (html)  (pdf)  (tar.gz)
  • OmpSs Developer Manuals
    • Mercurium Compiler Developer Manual  (trac)
    • Nanos++ RTL Developer Manual  (trac)

Other Projects

  • BOTS - The Barcelona OpenMP Task Suite (trac)
  • DOCS - OmpSs Documentation Repository (trac)
  • BAR - BSC Application Repository  (trac)
  • DLB - Dynamic Load Balancing  (trac)
  • TaskSim - OmpSs simulation environment (trac)
  • Tareador - Supporting task decomposition (trac)

Contact Information

You can obtain OmpSs by going to the downloads section and follow the directions in the installation page. You may want to check the publications list of the BSC Programming Models group. 

If you have any questions or suggestions you can send an e-mail to pm-tools [at] bsc.es. You can also join the pm-tools-users mailing list by sending an e-mail to  pm-tools-users-join [at] bsc.es.