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

Update Landing Page #15

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Update Landing Page #15

wants to merge 7 commits into from

Conversation

lightsighter
Copy link
Contributor

These changes update the landing page for the website with a new motivation and description of what Legion is. It needs to be approved by the group, and the formatting definitely needs to be improved. The font on the second image is still too small.

@lightsighter lightsighter self-assigned this Jan 18, 2023
we aim to facilitate the creation high productivity high performance computing ecosystems
so that all users can leverage modern massively parallel machines.

#### The Key Ideas ####
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that something like this should go ahead of the analogies to hardware / out-of-order processing. On a first scan of the website, users care more about what legion can do for them, rather than how legion works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will try to refactor the text to move this part up higher.

Ideally users want to write programs in a high
productivity sequential programming model and have those programs automatically executed with high performance on
parallel hardware. Achieving this end requires the development of a nuanced programming model and
sophisticated programming systems capable of analyzing and transforming sequential programs into parallel programs.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to my comment below, we should have a blurb about what writing programs in Legion can do for you. Things that come to mind:

  • Easily scale to large machines (of GPUs and CPUs) while writing sequential programs
  • Automatic parallelization, synchronization and communication (no more writing buggy MPI programs with deadlock and stale data, underutilization of the network etc)
  • Easily port to different machines and processor kinds through the mapping interface. Share experiences of moving from summit to crusher for example
  • low-level and high-level APIs (raw Legion, Regent, Legate)
  • programmers can still use all of their favorite libraries on individual devices (cublas, blas etc)
  • interop with MPI is possible for old applications (example S3D porting story)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly disagree with this one (in fact it is exactly what I was told was wrong with the current website). We cannot under any circumstances have a laundry list of things that Legion is/does. There must be one and only one idea of what Legion is and how it works, so that anyone can understand what it is doing. I have a laundry list of things that are novel about Legion in the section below this and we can add to it, but anything in this top section cannot detract from the singular story about what Legion is.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

n fact it is exactly what I was told was wrong with the current website). We cannot under any circumstances have a laundry list of things that Legion is/does

I'm pretty surprised about that. I'm not suggesting to replace this story about Legion, but I think it should be somewhere. Most mature software projects I've interacted with have something like this: https://github.com/cockroachdb/cockroach#what-is-cockroachdb, https://arrow.apache.org/, https://www.sqlite.org/index.html, the list goes on. I'm speaking a bit from experience, but when I first saw the Legion project after talking to Alex when applying, I didn't really understand what was gained from the fancy abstractions that Legion provides. If I had a better understanding then of what users actually get from Legion, then a story of how those features come out of the programming model would make more sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All those projects you listed have comparable systems, i.e. everyone knows what a database system is, so they can easily communicate what it is their system does and how it is slightly different. The problem with Legion is that there is nothing else that is even remotely like it (in software anyway). Therefore the 'why' has to come before the 'what', otherwise you have no context for understanding. For example, we could say: "Legion is a software implementation of a superscalar out-of-order seven-stage pipelined processor for sequential task programs that executes as a distributed system so it can run on everything from your desktop to a supercomputer." but nobody would have any idea what we are talking about or why they need that and we'd lose them right away.

Copy link
Contributor

@elliottslaughter elliottslaughter Jan 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to try harder to summarize Legion in a handful of sentences. We can follow that with the "why", but the current text loses the reader really quickly. The irony of a long "why" section is that I'm left wondering why I care, while I'm reading about why I should care. We need to hook readers faster than that.

I personally like Rohan's bullets above. I don't think they suffer from the "N ideas" problem. They're consequences of the one idea that is central to the system. Plus, they're also fast to read. The cost of a set of short bullets is a lot lower than dense paragraphs of text.

It's also worth thinking about who we're trying to target with this. I'm assuming it's mostly people who are technical but not necessarily experts in parallel/distributed programming. I would assume even less in the way of hardware experience.

I personally think that the SOOP analogy doesn't work for new users, because most of the people we're trying to reach don't have the necessary hardware experience to grasp it intuitively. I think this causes more confusion than it helps. Instead I'd focus on sequential semantics, dynamic analysis, and parallel/distributed/accelerated execution. Maybe we can add a second page (right now we call this the "overview", maybe there's a better name for it) that goes into more details about the programming model, deferred/asynchronous execution, the layers of the software stack and runtime organization, etc. That would be an appropriate place to talk about the SOOP. But not here.

One possible structure would be:

Home page:

  • The Legion pitch. 50 words max.
  • Bullets, per Rohan above (or similar)
  • The "why it matters"
  • Link to overview with more details

Overview page:

  • The "what" section: SOOP analogy, program analysis, core data abstractions, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can follow that with the "why", but the current text loses the reader really quickly. The irony of a long "why" section is that I'm left wondering why I care, while I'm reading about why I should care. We need to hook readers faster than that.
I personally think that the SOOP analogy doesn't work for new users, because most of the people we're trying to reach don't have the necessary hardware experience to grasp it intuitively.

You guys are trying to write the Legate pitch, and not the Legion pitch. The pitch for Legion should be for the expert users who are going to be building the things on top, not for the end-users. Note you also need to encapsulate what Regent is in the same idea, which my text does as well, but your suggestions do not. Again, it must be one and only one core idea. If you can come up with a better analogy than what I did, then I am all ears.

I'm assuming it's mostly people who are technical but not necessarily experts in parallel/distributed programming. I would assume even less in the way of hardware experience.

The people that are yelling at me are the exact opposite on all three axes of this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lightsighter Could you tell us what feedback you got about the current website? It's a little difficult to respond to it without knowing what it is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The feedback I was given is this: the Legion project is too big and complicated as currently explained. You need to have one and only one idea stating clearly what the purpose of Legion is and how to think about it.

@lightsighter
Copy link
Contributor Author

@elliottslaughter Made a temporary deployment of the webpage here: https://elliottslaughter.github.io/legion-website-test/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants