Hi David,

On Tue, Nov 8, 2011 at 12:09 PM, David Barbour <[email protected]> wrote:
> I would like to see dedicated papers or links on Gezira and Nile - enough to
> re-implement them in another language.

I see you've already been given links to the code in the github
repositories, so there's that. Unfortunately, a lot of code with
almost zero-documentation isn't too helpful, and I don't have any
papers I can point you to.

Reimplementing Nile is tough, as all we have right now is the
OMeta-based compiler. And that compiler doesn't document the language
too well because the compiler has a lot of left-over cruft from early
prototyping. And several intended language features weren't
implemented in that compiler.

I'm slowly working on a new, Maru-based Nile compiler. The parsing is
complete, and I'm working on the type inference phase now.
Unfortunately, I only have about a day a week to work on it, and I'm
still learning my way around Maru, so the going is slow.

That said, you can ask me specific questions here about Nile or Gezira
and I will try to answer them.

> I expect techniques as used in Vertigo [1] or GPipe [2] could put Nile
> directly on a GPU, via pixel and geometry shaders.

I'd go the OpenCL route, as it is more general than OpenGL.
Regardless, the main difficultly is that Nile provides a different
model of computation than the GPU does. Only a subset of Nile programs
would be both possible and efficient to execute on a GPU. And this is
assuming that the data set is large enough to make the transfer
to/from the GPU worth it.

That said, one could write a Nile-to-OpenCL compiler that statically
detects the parts of the program that might benefit from GPU
execution, and compiles just those parts. I've thought about how to go
about this quite a bit. But I need to finish my dissertation first.

> This would be a far
> better proof-of-concept, IMO, than relying on user threads across 40 cores
> to get a 30x speedup.

Depends on what concept you're trying to prove :) Our main focus with
STEPS is expressive software systems. The parallelism proof-of-concept
was only to demonstrate that Nile's model of computation allows for
parallel execution, nothing more.

Regards,

Dan

_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to