An open API service indexing awesome lists of open source software.

https://github.com/simulisoft/simulicore

Compact Software Suite for Scientific Development - Linear Algebra
https://github.com/simulisoft/simulicore

arm64 armpl cublas cusolver cusparse dense-matrix gpu-acceleration intel-mkl linear-algebra linear-system-solver low-rank-matrix mpi numerical-linear-algebra nvidia-cuda pardiso qr-decomposition sparse-matrix svd-decomposition

Last synced: about 2 months ago
JSON representation

Compact Software Suite for Scientific Development - Linear Algebra

Awesome Lists containing this project

README

          

## Table of contents

1. [About SimuliCore](#about-simulicore)
2. [Build and Install](#build-and-install)
- [Prerequisites](#prerequisites)
- [Installation Guide](#installation-guide)
- [Installation contents](#installation-contents)
3. [License](#license)
4. [Contact](#contact)

# About SimuliCore

**SimuliCore** is a comprehensive suite of C++ libraries engineered for advanced scientific and computational development.

While traditional functional scientific programming offers high-performance capabilities, it often presents a steep learning curve characterized by exhaustive documentation and cumbersome API argument structures. **SimuliCore** is designed to bridge the gap between established computational frameworks and modern object-oriented programming (OOP) paradigms, ensuring high efficiency and robustness without compromising performance.

The current **SimuliCore** ecosystem includes the following modules:

[**CLA3P (Compact Linear Algebra Parallel Portable Package)**](cla3p.mod/README.md): A high-performance linear algebra library. By leveraging sophisticated OOP design patterns and an intuitive API, CLA3P enables developers to produce high-quality code with minimal overhead.

[**cuLite (Lightweight gpu acceleration interface)**](culite.mod/README.md): A specialized module for streamlining linear algebra calculations on NVIDIA® accelerators. Currently under development on top of CLA3P, cuLite will offer a simplified approach to GPU-driven computation upon release.

[**CMPI (Compact Message Passing Interface)**](cmpi.mod/README.md): A modern C++ interface designed to simplify distributed computing and inter-node communication. CMPI is currently in development and will soon be integrated into the SimuliCore suite.

(back to top)

# Build and Install

To build and install the suite, see the guide below.

## Prerequisites

In order to build **SimuliCore** you will need:
* [CMake](https://cmake.org) 3.12.0 and above.
* For Linux/Windows x86_64:
- [Intel® Math Kernel Library](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html) available for download [here](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html).
- [NVIDIA® CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) 13.0 or later available for download [here](https://developer.nvidia.com/cuda-downloads).
- [NVIDIA® cuDSS](https://developer.nvidia.com/cudss) available for download [here](https://developer.nvidia.com/cudss-downloads).
* For MacOS M-Series (arm64): [Arm Performance Libraries](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Libraries)
available for download [here](https://developer.arm.com/downloads/-/arm-performance-libraries).
* Linux/Windows arm64: Soon to be supported (using ArmPL)

Development process default compilers are:
* [GNU C++ compiler](https://gcc.gnu.org) v11.4.0
* [Microsoft Visual Studio 2022](https://visualstudio.microsoft.com) msvc_x64 v17.8.2

## Installation Guide

For the **SimuliCore** installation guide see [INSTALL.md](INSTALL.md).

## Installation contents

The default installation directories are:
`/install` for Linux and
`/out/install/` for Windows.

In the installation directory you will find the following folders:

```
/include : the SimuliCore include directory
/lib : the SimuliCore library directory
/cmake : directory containing the build & 3rd party cmake configurations
/examples: the SimuliCore examples directory
/license : licensing related documents
```

(back to top)

# License

All open source modules are licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). See [license](LICENSE) and [notice](NOTICE) for more information.

(back to top)

# Contact

envelope info@simulisoft.com

bug [https://github.com/simulisoft/simulicore/issues](https://github.com/simulisoft/simulicore/issues)

(back to top)