ginkgo-bot-playground
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
11 of 36 committers (30.6%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Keywords from Contributors
Repository
Basic Info
- Host: GitHub
- Owner: upsj
- License: bsd-3-clause
- Language: C++
- Default Branch: develop
- Size: 45.8 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md

Ginkgo is a high-performance linear algebra library for manycore systems, with a focus on the solution of sparse linear systems. It is implemented using modern C++ (you will need an at least C++14 compliant compiler to build it), with GPU kernels implemented in CUDA, HIP, and DPC++(SYCL).
Performance
An extensive database of up-to-date benchmark results is available in the performance data repository. Visualizations of the database can be interactively generated using the Ginkgo Performance Explorer web application. The benchmark results are automatically updated using the CI system to always reflect the current state of the library.
Prerequisites
Linux and Mac OS
For Ginkgo core library:
- cmake 3.16+
- C++14 compliant compiler, one of:
- gcc 5.5+
- clang 3.9+
- Intel compiler 2019+
- Apple Clang 14.0 is tested. Earlier versions might also work.
- Cray Compiler 14.0.1+
- NVHPC Compiler 22.7+
The Ginkgo CUDA module has the following additional requirements:
- cmake 3.18+ (If CUDA was installed through the NVIDIA HPC Toolkit, we require cmake 3.22+)
- CUDA 10.1+ or NVHPC Package 22.7+
- Any host compiler restrictions your version of CUDA may impose also apply here. For the newest CUDA version, this information can be found in the CUDA installation guide for Linux or CUDA installation guide for Mac Os X
The Ginkgo HIP module has the following additional requirements:
- ROCm 4.5+
- the HIP, hipBLAS, hipSPARSE, hip/rocRAND and rocThrust packages compiled with either:
- AMD backend (using the
clangcompiler) - 10.1 <= CUDA < 11 backend
- AMD backend (using the
- if the hipFFT package is available, it is used to implement the FFT LinOps.
The Ginkgo DPC++(SYCL) module has the following additional requirements:
- oneAPI 2022.1+
- Set
dpcpporicpxas theCMAKE_CXX_COMPILER c++17is used to compile Ginkgo- The following oneAPI packages should be available:
- oneMKL
- oneDPL
The Ginkgo MPI module has the following additional requirements:
- MPI 3.1+, ideally with GPUDirect support for best performance
In addition, if you want to contribute code to Ginkgo, you will also need the following:
- clang-format 8.0.0+ (ships as part of clang)
- clang-tidy (optional, when setting the flag
-DGINKGO_WITH_CLANG_TIDY=ON) - iwyu (Include What You Use, optional, when setting the flag
-DGINKGO_WITH_IWYU=ON)
Windows
- cmake 3.13+
- C++14 compliant 64-bit compiler:
- MinGW : gcc 5.5+
- Microsoft Visual Studio : VS 2019+
The Ginkgo CUDA module has the following additional requirements:
- CUDA 10.1+
- Microsoft Visual Studio
- Any host compiler restrictions your version of CUDA may impose also apply here. For the newest CUDA version, this information can be found in the CUDA installation guide for Windows
The Ginkgo OMP module has the following additional requirements: * MinGW
In these environments, two problems can be encountered, the solution for which is described in the
windows section in INSTALL.md:
* ld: error: export ordinal too large needs the compilation flag -O1
* cc1plus.exe: out of memory allocating 65536 bytes requires a modification of the environment
NOTE: Some restrictions will also apply on the version of C and C++ standard libraries installed on the system. This needs further investigation.
Quick Install
Building Ginkgo
To build Ginkgo, you can use the standard CMake procedure.
sh
mkdir build; cd build
cmake -G "Unix Makefiles" .. && make
By default, GINKGO_BUILD_REFERENCE is enabled. You should be able to run
examples with this executor. By default, Ginkgo tries to enable the relevant
modules depending on your machine environment (present of CUDA, ...). You can
also explicitly compile with the OpenMP, CUDA, HIP or DPC++(SYCL) modules enabled to
run the examples with these executors. Please refer to the Installation
page for more details.
After the installation, CMake can find ginkgo with find_package(Ginkgo).
An example can be found in the test_install.
Ginkgo Examples
Various examples are available for you to understand and play with Ginkgo within the examples/ directory. They can be compiled by passing the -DGINKGO_BUILD_EXAMPLES=ON to the cmake command. Documentation for the examples is available within the doc/ folder in each of the example directory and a commented code with explanations can found in the online documentation.
Ginkgo Testing
Ginkgo does comprehensive unit tests using Google Tests. These tests are enabled by default and can be disabled if necessary by passing the -DGINKGO_BUILD_TESTS=NO to the cmake command. More details about running tests can be found in the TESTING.md page.
Running the benchmarks
A unique feature of Ginkgo is the ability to run benchmarks and view your results with the help of the Ginkgo Performance Explorer (GPE).
More details about this can be found in the BENCHMARKING.md page
Contributing to Ginkgo
Contributing
When contributing for the first time, please add yourself to the list of external contributors like in the example below.
Contributors
I hereby place all my contributions in this codebase under a BSD-3-Clause license, as specified in the repository's LICENSE file.
Name Surname email@domain Institution(s)
Contributing guidelines
Contributing guidelines can be accessed in the CONTRIBUTING.md page. This page also contains other information useful to developers, such as writing proper commit messages, understanding Ginkgo's library design, relevant C++ information, and more.
Support
If you have any question, bug to report or would like to propose a new feature, feel free to create an issue on GitHub. Another possibility is to send an email to Ginkgo's main email address or to contact any of the main contributors.
Licensing
Ginkgo is available under the 3-clause BSD license. All contributions to the project are added under this license.
Depending on the configuration options used when building Ginkgo, third party software may be pulled as additional dependencies, which have their own licensing conditions. Refer to ABOUT-LICENSING.md for details.
Citing Ginkgo
The main Ginkgo paper describing Ginkgo's purpose, design and interface is available through the following reference:
bibtex
@article{ginkgo-toms-2022,
title = {{Ginkgo: A Modern Linear Operator Algebra Framework for High Performance Computing}},
volume = {48},
copyright = {All rights reserved},
issn = {0098-3500},
shorttitle = {Ginkgo},
url = {https://doi.org/10.1145/3480935},
doi = {10.1145/3480935},
number = {1},
urldate = {2022-02-17},
journal = {ACM Transactions on Mathematical Software},
author = {Anzt, Hartwig and Cojean, Terry and Flegar, Goran and Göbel, Fritz and Grützmacher, Thomas and Nayak, Pratik and Ribizel, Tobias and Tsai, Yuhsiang Mike and Quintana-Ortí, Enrique S.},
month = feb,
year = {2022},
keywords = {ginkgo, healthy software lifecycle, High performance computing, multi-core and manycore architectures},
pages = {2:1--2:33}
}
For more information on topical subjects, please refer to the CITING.md page.
Owner
- Name: Tobias Ribizel
- Login: upsj
- Kind: user
- Location: Karlsruhe
- Repositories: 43
- Profile: https://github.com/upsj
PhD Student/Research Software Engineer working on a HPC Library for Numerical Linear Algebra at Technical University of Munich (TUM)
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Anzt"
given-names: "Hartwig"
- family-names: "Chen"
given-names: "Yenchen"
- family-names: "Cojean"
given-names: "Terry"
- family-names: "Flegar"
given-names: "Goran"
- family-names: "Göbel"
given-names: "Fritz"
- family-names: "Grützmacher"
given-names: "Thomas"
- family-names: "Kashi"
given-names: "Aditya"
- family-names: "Koch"
given-names: "Marcel"
- family-names: "Nayak"
given-names: "Pratik"
- family-names: "Olenik"
given-names: "Gregor"
- family-names: "Ribizel"
given-names: "Tobias"
- family-names: "Riemer"
given-names: "Lukas"
- family-names: "Tsai"
given-names: "Yuhsiang"
title: "Ginkgo: A Modern Linear Operator Algebra Framework for High Performance Computing"
version: 1.5.0
date-released: 2022-11-12
url: "https://github.com/ginkgo-project/ginkgo"
preferred-citation:
type: article
authors:
- family-names: "Anzt"
given-names: "Hartwig"
- family-names: "Cojean"
given-names: "Terry"
- family-names: "Flegar"
given-names: "Goran"
- family-names: "Göbel"
given-names: "Fritz"
- family-names: "Grützmacher"
given-names: "Thomas"
- family-names: "Nayak"
given-names: "Pratik"
- family-names: "Ribizel"
given-names: "Tobias"
- family-names: "Tsai"
given-names: "Yuhsiang"
- family-names: "Quintana-Ortí"
given-names: "Enrique S."
doi: "10.1145/3480935"
journal: "ACM Transactions on Mathematical Software"
month: 3
start: 1 # First page number
end: 33 # Last page number
title: "Ginkgo: A Modern Linear Operator Algebra Framework for High Performance Computing"
issue: 1
volume: 48
year: 2022
GitHub Events
Total
Last Year
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Tobias Ribizel | r****l@k****u | 1,387 |
| Yuhsiang M. Tsai | y****i@g****m | 860 |
| Pratik Nayak | p****n@p****m | 737 |
| Terry Cojean | t****n@k****u | 665 |
| Marcel Koch | m****h@k****u | 534 |
| Goran Flegar | f****n@g****m | 440 |
| Thomas Grützmacher | t****r@k****u | 403 |
| Fritz Goebel | g****z@g****m | 254 |
| yanjen | y****4@g****m | 183 |
| Aditya Kashi | a****i@k****u | 141 |
| Hartwig Anzt | h****t@i****u | 124 |
| ginkgo-bot | g****y@g****m | 107 |
| Gregor Olenik | g****k@w****e | 57 |
| Eoli-an | d****r@w****e | 45 |
| Lukas Riemer | l****r@g****m | 41 |
| Thomas Grützmacher | t****t@g****e | 36 |
| Claudius Holeksa | m****l@k****e | 26 |
| Fritz Goebel | f****l@k****u | 25 |
| keldu.magnus | g****t@k****e | 21 |
| josealiaga | a****a@u****s | 11 |
| keldu | c****a@g****m | 11 |
| Fabian Castelli | f****i@k****u | 10 |
| Tobias Ribizel | t****l@g****m | 9 |
| aliaga@uji.es | a****a@t****l | 5 |
| Thomas Grützmacher | t****m | 4 |
| Matthias Maier | t****o@4****g | 2 |
| Niklas Conen | n****n@s****u | 2 |
| jiayuehua | 3****a | 1 |
| = | = | 1 |
| Marcel Koch | m****h@p****e | 1 |
| and 6 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 20
- Average time to close issues: N/A
- Average time to close pull requests: 9 months
- Total issue authors: 0
- Total pull request authors: 3
- Average comments per issue: 0
- Average comments per pull request: 8.85
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- upsj (16)
- tcojean (5)
- yhmtsai (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/checkout v4 composite
- actions/checkout v4 composite
- actions/checkout v4 composite
- actions/upload-artifact v3 composite
- actions/checkout v4 composite
- crate-ci/typos master composite