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.

