WEBVTT 00:00.000 --> 00:09.840 So I'm Greg Becker, I'm going to talk a bit about the high performance software foundation, 00:09.840 --> 00:16.840 which is a relatively new umbrella organization under the Linux Foundation launched at the 00:16.840 --> 00:20.520 ISC conference last year. 00:20.520 --> 00:33.120 So we collectively as a community in HPC generate a lot of open source software, and this 00:33.120 --> 00:41.000 is through sort of pure open source models and through or through community-driven open source 00:41.000 --> 00:44.040 models and through institution-driven open source models. 00:44.040 --> 00:47.240 And a lot of it is coming from the institutional side, right? 00:47.240 --> 00:54.840 The US-XSKL computing project built nearly 100 projects, 80 plus Europe and Japan are 00:54.840 --> 01:00.800 beginning their own major software efforts, and a lot of this is open source software 01:00.800 --> 01:07.680 that is useful in HPC, it's useful into the AI and ML world, et cetera. 01:07.680 --> 01:13.480 And we want to make sure that this software is actually useful to the world and not just 01:13.480 --> 01:19.320 to the organizations that originate the projects, because if you build something open source 01:19.320 --> 01:24.040 that just works for you, that's great, it helps you, but you could help everyone else as 01:24.040 --> 01:25.440 well. 01:25.440 --> 01:36.160 And we see with the use of super computing of HPC style workloads in AI and ML workflows that 01:36.160 --> 01:41.960 the HPC software can have a much broader impact than maybe it could at a previous 01:41.960 --> 01:43.480 point in time. 01:43.480 --> 01:50.640 And a lot of the institution-based software that we develop, we have struggled historically 01:50.640 --> 01:54.440 to transition it to a community-based model. 01:54.440 --> 02:01.120 And then potential users look at our software and they wonder, well, if the institution 02:01.120 --> 02:06.560 that originally wrote this is supporting it, great, but if not, I don't know if the project 02:06.560 --> 02:10.520 is going to survive, or I don't know if this project will be here in five years, I don't 02:10.520 --> 02:14.200 know if someone's going to randomly decide to close source this. 02:14.200 --> 02:19.920 Obviously, if we have those concerns, we're never going to develop the sort of open source 02:19.920 --> 02:24.520 communities that we want to see. 02:24.520 --> 02:27.440 So what is the high-performance software foundation? 02:27.440 --> 02:35.960 It is a neutral home for HPC open source software under the Linux Foundation. 02:35.960 --> 02:43.640 The variety of HPC projects can be put into the high-performance software foundation. 02:43.640 --> 02:50.120 And by joining the Linux Foundation, you give the intellectual property for the project 02:50.120 --> 02:53.560 to the Linux Foundation and the Linux Foundation owns it. 02:53.560 --> 03:00.600 And essentially, the Linux Foundation is the guarantor that this project is not going somewhere 03:00.600 --> 03:01.600 else. 03:01.640 --> 03:06.440 You can't hijack the community that build, if I build a project and you all join the 03:06.440 --> 03:12.680 community, I can't then hijack that project and turn it into something that wasn't 03:12.680 --> 03:14.880 what you thought you were signing up for. 03:14.880 --> 03:20.920 And so this provides a little bit of a better guarantee for people who are joining the 03:20.920 --> 03:25.920 project and hopefully can help us build the sorts of community around these projects that 03:25.920 --> 03:30.960 we want to. 03:30.960 --> 03:34.600 So what sort of software is in HPF so far? 03:34.600 --> 03:38.320 It really runs the entire spectrum of HPC software. 03:38.320 --> 03:47.760 We have Warpex is a simulation code and application for HPC. 03:47.760 --> 03:55.960 We've got a variety of sort of DevOps sorts of tools, performance portability libraries, 03:55.960 --> 04:02.240 solvers, everything in HPC we've got in the HPF at this point. 04:02.240 --> 04:07.240 And we do not want this to be picking winners. 04:07.240 --> 04:14.080 We can have five projects that do the same thing in the HPF if they're all open source 04:14.080 --> 04:18.840 projects that are working towards the right sort of openness and community guidelines. 04:18.840 --> 04:24.560 So you can see we have Charlie Cobb and AppTainer already, which do very similar things. 04:24.560 --> 04:32.480 So we expect that that sort of overlap is going to continue. 04:32.480 --> 04:37.000 So I'll talk a little bit about the structure of HPF as an organization and then I will 04:37.000 --> 04:41.680 come back to talking about what it's like for a project joining because I think that's 04:41.680 --> 04:44.720 where most of our interests are in this room. 04:44.720 --> 04:51.040 So the HPF is funded by the member projects, the member projects pay to be members at the 04:51.120 --> 04:58.000 various tiers and that money is the primary funding for the foundation. 04:58.000 --> 05:07.040 So the associate tier is only open to, I don't know why you look as flying in from 05:07.040 --> 05:14.480 the side, but the associate tier is only open to government and educational institutions 05:14.480 --> 05:22.040 and then the other sorts of institutions have to join at the higher levels if they choose 05:22.040 --> 05:23.360 to. 05:23.360 --> 05:29.920 The governing board is managed by the members and determines how the foundation spends 05:29.920 --> 05:31.200 its money. 05:31.200 --> 05:36.280 The technical advisory council is composed primarily of the projects but also with some 05:36.280 --> 05:40.720 representation from the members and makes the technical decisions. 05:40.720 --> 05:45.040 The technical advisory committee will not make the technical decisions for your project. 05:45.040 --> 05:48.240 We are not going to tell you what to do. 05:48.240 --> 05:53.440 The technical advisory committee makes technical decisions on what our recommendations 05:53.440 --> 06:01.080 should be, what does it take to be a project, what are the best practices for projects in 06:01.080 --> 06:06.240 the foundation, that's the sort of technical decisions that we're making. 06:06.240 --> 06:13.360 And then the technical advisory council also stands up working groups to work on cross-cutting 06:13.360 --> 06:14.360 issues. 06:14.360 --> 06:19.720 So one thing that we might be using this funding for is to provide continuous integration 06:19.720 --> 06:25.720 on HPC hardware for the projects that join. 06:25.720 --> 06:28.240 And here's how the representation works. 06:28.240 --> 06:30.120 I'm not going to spend a lot of time on that. 06:30.120 --> 06:36.040 It's important, but it's not the most fun. 06:36.040 --> 06:41.840 So what does it look like for a project to join HPCF and what is the project life cycle? 06:41.840 --> 06:45.040 There are two things that this life cycle provides us. 06:45.040 --> 06:50.360 One, it's a signal to people who might want to use the project. 06:50.360 --> 06:55.760 I know this project is in the established life cycle stage with the HPCF. 06:55.760 --> 06:59.960 That tells me something about what I get as a user in terms of stability. 06:59.960 --> 07:07.080 And on the other side, it provides a growth path for projects where here's some best practices, 07:07.080 --> 07:12.200 here's some ideas of what you need to do to build the community around your project that 07:12.200 --> 07:15.680 you want to build. 07:15.680 --> 07:20.800 So there are three primary stages of the life cycle plus an emeritus stage. 07:20.800 --> 07:23.400 The sandbox stage is quite open. 07:23.400 --> 07:31.840 This is projects that are committed to open governance and working towards best practices. 07:31.840 --> 07:39.480 If you want to build community around your project and you are at HPC project relevant 07:39.480 --> 07:42.400 to the foundation, we want to get you in the door. 07:42.400 --> 07:47.680 We're not going to be gatekeeping the sandbox stage all that aggressively. 07:47.680 --> 07:55.280 The requirements are mainly the requirements necessary to be a Linux foundation project. 07:55.280 --> 08:00.200 At the established stage, that's saying something about the establishment of a user community 08:00.200 --> 08:02.720 for the project, primarily. 08:02.720 --> 08:07.880 You have good development practices such that users can trust the project and you are a 08:07.880 --> 08:12.560 project that is used in production. 08:12.560 --> 08:17.960 At the core stage, now we're talking about projects that have achieved the sort of long-term 08:17.960 --> 08:24.760 community-based stability that's the goal of the HPSF. 08:24.760 --> 08:31.080 So I'm not going to read off these requirements, but just to kind of rehash what this 08:31.080 --> 08:32.080 is. 08:32.080 --> 08:36.600 This is basically you are a Linux foundation project and you're in the HPC space and you 08:36.600 --> 08:43.240 want to work towards having a stable community. 08:43.240 --> 08:49.480 The big one here is used successfully in production by at least three independent users 08:49.480 --> 08:52.840 and good development practices. 08:52.840 --> 08:57.960 This is a project that has achieved some sort of user community. 08:57.960 --> 09:04.920 The core project criteria, a little bit stricter, we're looking at projects that have 09:04.920 --> 09:12.040 a governing body and have no single institution controlling the governing body. 09:12.040 --> 09:17.240 So this is the sort of project that you can trust even if the founding institution were 09:17.240 --> 09:19.320 to stop supporting it. 09:19.320 --> 09:25.000 There is a community around that project that can maintain it in the long run. 09:25.000 --> 09:30.720 If you are a project that's interested in joining, what you need to do is talk to the members 09:30.720 --> 09:36.200 of the technical advisory council, find two sponsors and then it's a GitHub issue and a 09:36.200 --> 09:44.480 presentation to the tech and there's a vote to join HPSF but then also a vote on what 09:44.480 --> 09:46.040 phase you would join at. 09:46.040 --> 09:51.040 So you could join at core already if you already have that sort of community more likely 09:51.040 --> 09:53.840 at the established or sandbox stage. 09:53.840 --> 09:57.800 If you're interested in joining as a member, either for your institution or because you're 09:57.800 --> 10:01.880 just an incredibly generous individual, talk to me, I can put you in touch with the right 10:01.880 --> 10:05.080 people. 10:05.080 --> 10:10.000 And then the last thing that I want to talk about is we are having the first HPSF conference. 10:10.000 --> 10:16.040 So one of the things that HPSF is using with its funding is we're having a conference, 10:16.040 --> 10:23.040 this is going to be two days of plenary talks about HPSF and sort of high-level talks 10:23.040 --> 10:28.440 from the individual projects and then two days for project meetings for the individual 10:28.440 --> 10:31.480 projects where those communities can come together. 10:31.480 --> 10:38.120 And so this is one of the things that you can get out of joining HPSF is help with running 10:38.120 --> 10:42.520 these sorts of events for your project. 10:42.520 --> 10:47.520 And that's all I've got. 10:47.520 --> 10:54.520 Thanks a lot for having time for questions here. 10:54.520 --> 10:58.280 If you want to have questions on this, be a safe, be a safe, be a great outside, and we'll 10:58.280 --> 11:00.280 switch straight to the next talk.