Closed crtrott closed 2 weeks ago
Some Notes:
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.
@crtrott / @ax3l : Is the HPSF proposal process currently open, or is this just a dry-run at this point? I'm imagining the latter given the comments above, and thinking that Kokkos was one of the founding projects? But the mention of the TAC voting leaves me second-guessing. Thanks.
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.
@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.
I think @bradcray should feel free to make a proposal based on the template
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!
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 !
TACC voted on 2024-09-19 to approve Kokkos at the established level. 🎉
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 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:
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:
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
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.