
The Legion Parallel Programming System - espeed
https://legion.stanford.edu
======
eslaught
Hi HN,

Didn't post this, but am one of the authors of Legion (more on the language
side / Regent [1]). Feel free to ask me questions. I do think our front page
does an especially bad job of explaining what we do, so I'm sure you'll have
some. :-)

[1]: [http://regent-lang.org/](http://regent-lang.org/)

~~~
greglindahl
Is this Legion project related to the late 1990s Legion, which involved
distributed computing for HPC and was funded by the same funding agencies and
had collaborations with the same HPC organizations?

~~~
eslaught
It's probably unrelated, but do you have a link/citation to 1990s Legion?

We started around 2010-2011. The project immediately prior to this was called
Sequoia[1] (published on 2006, probably started a couple years prior).

[1]:
[http://graphics.stanford.edu/papers/sequoia/sequoia_sc06.pdf](http://graphics.stanford.edu/papers/sequoia/sequoia_sc06.pdf)

~~~
seanmcdirmid
It’s probably this work:
[https://pdfs.semanticscholar.org/416b/391e374dd3a2b656b8d13c...](https://pdfs.semanticscholar.org/416b/391e374dd3a2b656b8d13ce6a54b3d069f15.pdf)

It’s more systems/HPC community, and a couple of decades old, so I don’t think
the name reuse will cause much confusion.

------
dotnwat
The first time Legion really clicked for me--and when I could place it in
context--was reading the first few chapters of the Legion thesis [0].

[0]:
[https://legion.stanford.edu/pdfs/bauer_thesis.pdf](https://legion.stanford.edu/pdfs/bauer_thesis.pdf)

------
tracnar
Interesting!

I've been thinking about a fully declarative language (logic-based like
datalog/prolog or functional) with an orthogonal optimization layer. This
seems to go in that direction, but still based on an imperative base and
focused on parallelism. Are there other languages doing this
logic/optimization split?

~~~
eslaught
Here's a free idea for anyone who's interested: I want to see a CSS for
program optimization. You label your code with whatever semantics labels you
want. By default they do nothing, but you can load "code profiles" to instruct
the compiler how to optimize the code based on whatever machine/application
specific properties you care about. This way you can add optimization hints to
the code without littering them throughout the code base.

~~~
all2
Take a look at Halide, a DSL for graphics / matrix calculations.

------
dang
Related from 2015:
[https://news.ycombinator.com/item?id=10764268](https://news.ycombinator.com/item?id=10764268)

------
fdserr
where’s the EFFin sources?

~~~
eslaught
[https://github.com/StanfordLegion/legion](https://github.com/StanfordLegion/legion)

