Software & Apps
COMP Superscalar (COMPSs) is a framework which aims to ease the development and execution of parallel applications for distributed infrastructures, such as Clusters, Clouds and containerized platforms.
DLB is a library devoted to speedup hybrid parallel applications. And at the same time DLB improves the efficient use of the computational resources inside a computing node.
More information and downloads can be found at: pm.bsc.es/dlb
Mercurium is a source-to-source compilation infrastructure aimed at fast prototyping. Current supported languages are C99, C++11 and Fortran 95. Mercurium is mainly used along with the Nanos++ runtime to implement projects for OmpSs and OpenMP but since it is quite extensible it has been used in other projects including (but not limiting to) Cell Superscalar, ACOTES, software transactional memory, vectorization and correctness.
Nanos++ is a runtime designed to serve as runtime support in parallel environments. It is mainly used to support OmpSs, a extension to OpenMP developed at BSC. It also has modules to support OpenMP 3.1.
Saiph is a Domain Specific Language developed at BSC for simulating physical phenomena modeled by Partial Differential Equations systems designed for users that are not experts in numerical methods neither programming for supercomputers
The Dynamic Management of Resources Application Programming Interface (DMR API) is conceived to facilitate the programmability of malleable applications automating resource reallocation, process handling, and data distribution. Process malleability is the capability of reconfiguring the number of processes of an application on-the-fly, in other words, during its execution.
DMR API assists users to adopt malleability in their applications using OmpSs-like syntax. In this regard, with OmpSs pragmas data dependencies are defined and applications can turn malleable. DMR API is based on the Message Passing Interface (MPI) programming model, the standard de facto for developing HPC distributed applications. DMR adjusts the process number of the jobs depending on the cluster status in terms of resource availability and quantity of pending jobs.
series of predefined communication patterns that greatly ease the development of malleable applications. jThe package also includes a modified SLURM implementation.