Scientific Computing and Software Development
High-quality software and efficient parallel algorithms are fundamental ingredients in modern state-of-the-art research in the computational sciences. As multi-physics problems and machine learning models become ever more complex and demanding, scientific codes must be able to optimally exploit high-end computing hardware. However, with the diverse and perpetually evolving hardware landscape, this is a challenging task. In fact, the learning curve for programming complex models on such hardware is very steep and might become prohibitive for most researchers.
The center for Scientific Computing and Software Development (SCSD) is designed to address such challenges and provide a stable source of competence, guidance, and innovation, for creating modern scientific software and state-of-the-art simulations.
By fostering interdisciplinary cooperations in the fields of Life Sciences, Medicine, Physics, Mathematics, Quantitative Methods, and Scientific Software Development, Euler provides the basis for truly interdisciplinary research in Ticino.
Objectives of the center
- Develop and maintain software for enabling advances in academic research in computational science and machine learning. In particular, provide to the Euler Institute, USI, and research partners a point of reference for the engineering of scientific codes on high-performance computing (HPC) machines.
- Participate in the process of academic research and dissemination by providing a scientific software engineering service ranging from consulting to taking charge of the development of numerical methods on modern computing architecture, or their implementation.
- Adapt to requirements of supercomputing centers, novel hardware, and software technologies. Nowadays, the development of hardware-portable codes is highly encouraged by the HPC community, and in certain cases, it is becoming a requirement for accessing both computational resources and research funds.
- Introduce, teach and support new talents within USI to be up to the challenges of modern scientific computing software development.
- Research numerical methods and algorithms for computational science.
- Build and maintain national and internal collaborations for synergistic software development and integration. These types of collaboration include initiatives such as xSDK (https://xsdk.info) or similar endeavors at the European and Swiss levels.
- Foster, channel, and contribute to the evolution of community software for scientific computing.
- Propose and develop benchmarks for computational science applications oriented towards software verification.
Software developed at SCSD
- Utopia - A performance-portable C++ library for non-linear algebra
- ParMoonolith - Parallel intersection detection and transfer of discrete fields
- MARS - Mesh adaptive Refinement for Supercomputing
Integrated and related software