SOFTWARE & HARDWARE
Licensable technology created by BSC
This is a version of the LLVM compiler that fulfills the EPI requirements when it comes to vectorization for RISC-V Vector Extension. This compiler includes an implementation of the EPI-specific intrinsics and the vectorizer for the RISC-V Vector Extension. This compiler enables vectorization of applications using the RISC-V Vector Extension either using the mentioned intrinsics or the automatic vectorization mechanism. The vectorization mechanism can be triggered automatically or explicitly requested via pragma annotations such as #pragma clang loop or #pragma omp simd.
Provides several features to integrate other programming models and low-level APIs with the data-flow execution model of OpenMP tasks.
lumi-g-test project is a set of C++ micro-benchmarks that helps to test several important harware and system software characteristics of the GPU partition of LUMI supercomputer (https://www.lumi-supercomputer.eu). The metrics that are estimated by micro-benchmarks are mostly related of data transfer bandwidth aspects. The benchmarks cover cross-node and intra-node data tranfsers using MPI library, host memory to GPU memory transfer bandwidth characteristics, GPU memory internal bandwidth.
Tool for the estimation of probabilistic WCET based on execution time measurements (in the form of an R script).
Details of the method available in: https://doi.org/10.1145/3065924
Modification of the linux kernel that allows to deduplicate memory pages (page cache level). This increases the memory available for cache I/O while being transparent for the user and applications.
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.
LLVM support for OpenMP offloading to NVIDIA BlueField DPUs via the DOCA API.
OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model. Combination of Mercurium and Nanos6.
Provides several features to integrate other programming models and low-level APIs with the data-flow execution model of OpenMP tasks.
Pandora is a framework designed to create, execute and analyse agent-based models in high-performance computing environments. It has been programmed to allow the execution of large-scale agent-based simulations, and it is capable of dealing with thousands of agents developing complex actions. The users can choose to develop their code in Python (for fast prototyping) or C++ (complex models). Interfaces of both versions are identical, and share the same C++ base code (assuring compatibility and efficiency).