Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Project Proposal] Kokkos #2

Closed
crtrott opened this issue Sep 4, 2024 · 9 comments
Closed

[Project Proposal] Kokkos #2

crtrott opened this issue Sep 4, 2024 · 9 comments
Labels
Approved established Project Proposal Label for project proposals to HPSF

Comments

@crtrott
Copy link
Member

crtrott commented Sep 4, 2024

Project Proposal

1. Name of Project: Kokkos

2. Project Description

The Kokkos C++ Performance Portability Ecosystem (Kokkos) is a production level solution for writing modern science and engineering applications in a hardware agnostic way. The primary subprojects are Kokkos-Core, which provides a programming model designed for performance portability, and Kokkos-Kernels, which implements sparse and dense linear algebra functions as well as algorithms for graph computation. Further subprojects include

  • Kokkos-Tools: debugging and profiling tools for Kokkos based applications
  • Kokkos-FFT: FFT library with Kokkos based interfaces, which calls vendor libraries
  • Kokkos-Comm: Library providing MPI like interfaces for Kokkos data structures

Kokkos is already a member of the Linux Foundation.

3. Statement on Alignment with High Performance Software Foundation's Mission

Kokkos is a fundamental software technology to write performance portable code for high performance computing architectures. It is already run as a community project, with contributors from numerous institutions and a distributed core development team. Kokkos's user community is comprised of members from over 150 institutions around the world, including government laboratories, universities and commercial entities. The Kokkos project is committed to a community based development process and aims at widespread adoption across the entire HPC space, as well as new communities such as edge computing where performance portability can matter.

4. Project Website (please provide a link)

https://kokkos.org
https://github.com/kokkos

5. Code of Conduct (please provide a link)

https://github.com/kokkos/governance/blob/main/code-of-conduct.md

6. Governance Practices (please provide a link)

As a linux foundation project Kokkos is governed by its technical charter: https://github.com/kokkos/governance/blob/main/Kokkos-Technical-Charter-2024-04-11.pdf

Further information about the project roles can be found here: https://github.com/kokkos/governance/blob/main/GOVERNANCE.md

7. Sponsor from the High Performance Software Foundation's Technical Advisory Committee

Greg Becker, Axel Huebl

8. What is the project's solution for source control?

Kokkos is hosted on GitHub: https://github.com/kokkos

9. What is the project's solution for issue tracking?

GitHub

10. Please list all external dependencies and their license

The primary projects have no mandatory external dependencies (although we snapshot https://github.com/desul/desul and googletest, which are under BSD-3 license).

Optional dependencies include:

  • Vendor toolchains (CUDA, ROCM, OneAPI with various licenses)
  • BLAS implementations (e.g. OpenBLAS [BSD])
  • FFTW [GNU GPL]
  • MPI (e.g. OpenMPI [BSD])

11. Please describe your release methodology and mechanics

The primary Kokkos projects are released on a roughly 4-month cadence. We create release-candidate branches which are open for community testing, before creating a full release.
Since 4.4 these releases get cryptographically signed by Kokkos leadership. All release artifacts are managed on the GitHub site. For example: https://github.com/kokkos/kokkos/releases/tag/4.4.00

12. Please describe Software Quality efforts (CI, security, auditing)

Kokkos uses mandatory pull request testing, with the level of comprehensiveness determined by perceived risk and impact level of the subprojects. Kokkos Core for example has 36 test configurations as part of PR testing covering different combination of toolchains, hardware and OS through a combination of GitHub runners and institutional resources. This includes:

  • Linux, OSX (only CPU) and Windows (CPU and NVIDIA GPU)
  • clang, gcc, intel, ROCM, CUDA, OneAPI (SYCL), MSVC
  • X86, NVIDIA GPUs, AMD GPUs
    Nightly testing expands this by several dozen more configurations including ARM CPUs and Intel GPUs.

We report OpenSSF Scorecard and run codeQL on PRs (https://securityscorecards.dev/viewer/?uri=github.com/kokkos/kokkos-kernels, https://securityscorecards.dev/viewer/?uri=github.com/kokkos/kokkos).

Kokkos is also subject to Sandia's formal software quality auditing process, through which we have been run about every three years. This quality control process is ISO 9001 certified, Kokkos has been part of the ISO 9001 external auditing process in 2023.

13. Please list the names of the project's initial committers

Kokkos does not have the role of "committer" we have Project Lead, Repository Maintainers, and Team Members, all of which may have commit rights on some of the subprojects.

14. Please list the project's leadership team

  • Damien Lebrun-Grandie -- GitHub handle: dalg24
  • Siva Rajamanickam -- GitHub handle: srajama1
  • Christian R. Trott -- GitHub handle: crtrott
  • Luc Berger-Vergiat -- GitHub handle: lucbv

15. Please describe the project's decision-making process

Each subproject has its own team, making their own decisions. However, Kokkos leadership provides oversight and guidance to preserve a coherent overall effort. Subprojects are expected to work in a typical OpenSource community based development process, with decisions generally based on developer consensus, and subproject maintainers (repository maintainers) serving as stop-gap check to further coherence of project vision and quality. Development processes are based around GItHubs pull request model.

The Kokkos leadership decides about admittance of new sub-efforts.

16. What is the maturity level of your project?

Established Stage: we expect to be able to move to Core Stage soon, however currently our formal leadership team does not meet the requirement of having no more than 50% of members from the same organization. Note that Kokkos being comprised of subprojects we will have internal sub-maturity levels. We believe that for HPSF purposes our maturity level should be based on just our primary subprojects which represent of more than >95% of our users and development effort.

17. Please list the project's official communication channels

Issues can be reported on GitHub for the specific subprojects.
The primary community and developer team communication channel is Slack:
https://kokkosteam.slack.com

18. Please list the project's social media accounts

N/A

19. Please describe any existing financial sponsorships

Kokkos team members are financed by their respective institutions. We have team members whose job it is to contribute Kokkos financed by the US Department of Energy at various laboratories as well as the French Alternative Energies and Atomic Energy Commission. The support from these institutions is regularly subject to renewal - however in particular the DOE has a dozens of important efforts based on top of Kokkos and is unlikely to stop supporting Kokkos development in the foreseeable future.

20. Please describe the project's infrastructure needs or requests

Financing Kokkos Slack is very useful to us since it is the primary communication channel both for our multi-institutional team and our user community. We are also interested in organizing annual Kokkos User Group meetings. Furthermore, support for CI may be useful.

@crtrott crtrott added the Project Proposal Label for project proposals to HPSF label Sep 4, 2024
@crtrott
Copy link
Member Author

crtrott commented Sep 5, 2024

Some Notes:

  • we may want to add a question about CI practices and security (e.g signed releases, OpenSSF scorecard)

@ax3l
Copy link
Member

ax3l commented Sep 5, 2024

Thank you for taking the lead. Great and effective summary, thank you!

I added a few more comments in #4 how we could update the template further.

We voted on this project proposal today in the TAC (2024-09-05) and it was approved unanimously.

@bradcray

This comment was marked as resolved.

@crtrott
Copy link
Member Author

crtrott commented Sep 19, 2024

Hi, we are running the founding projects through the process at the moment. Basically we want to just smooth this all out, and then open it wider.

@becker33
Copy link
Contributor

@bradcray For the founding projects, we are still going through the proposal process and using the process to determine which stage of the HPSF lifecycle these projects start at. The TAC vote is really only relevant for that component for the projects that are already members, in addition to serving as a dry-run of the process.

I believe the process is now open, but that there is somewhat of a backlog of business for the TAC currently because we have to categorize lifecycle stages for the founding projects.

@tgamblin
Copy link
Contributor

tgamblin commented Sep 19, 2024

I think @bradcray should feel free to make a proposal based on the template

@bradcray
Copy link
Contributor

Thanks for the information and updates here, @crtrott , @becker33 , and @tgamblin — I'll work on putting a proposal together in the coming weeks, but won't expect it to be prioritized ahead of the founding projects. If the template continues to evolve based on your dry-runs, I'll be happy to edit ours to track that evolution. Thanks again!

@bradcray
Copy link
Contributor

bradcray commented Oct 2, 2024

I think @bradcray should feel free to make a proposal based on the template

We've done this now in #11 — thanks for the encouragement, @tgamblin !

@ax3l ax3l changed the title Project Proposal: Kokkos [Project Proposal] Kokkos Oct 3, 2024
@tgamblin
Copy link
Contributor

TACC voted on 2024-09-19 to approve Kokkos at the established level. 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved established Project Proposal Label for project proposals to HPSF
Projects
None yet
Development

No branches or pull requests

5 participants