Interest?

Re: Interest?

Postby Greg Zuro » Tue Sep 03, 2013 10:16 pm

Is there some concept of the support that there will be for Erlang (Elixir!) on this board?

I have Erlang running easily on the Zedboard, so expect that it will run fine on the ARM in this board, so how might Erlang practicaly extend to the Epiphany portion?

Cheers,
Greg
Greg Zuro
 
Posts: 14
Joined: Sun Jan 06, 2013 10:58 am

Re: Interest?

Postby sr-ix » Wed Jan 22, 2014 4:49 pm

While I'm still waiting on my board, I've been working with Erlang little over a year now (started from a previous job in VoIP/telephony) and went through the very awesome training from Erlang Solutions by Robert Virding.
sr-ix
 
Posts: 1
Joined: Wed Jan 22, 2014 4:29 pm

Re: Interest?

Postby shr » Wed Feb 05, 2014 7:05 pm

The erlang-mini distribution already runs on the Parallella board though one has to implement Epiphany functionality in C/C++/OpenCL. I think that 2MB is the practical lower limit to run the current Erlang VM so running a VM on each node wouldn't work with the current Epiphany chips.

Perhaps the VM could be factored into pieces that work on the Epiphany. The Release Project is working to scale Erlang to thousands of distributed cores and some of this work may be applicable to Epiphany.
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Re: Interest?

Postby alexrp » Wed Feb 05, 2014 8:26 pm

The trick to porting something like Erlang to Epiphany is to run most of the VM on the host CPU and only the actual bytecode interpretation as a small C executable on the accelerator side. The host then uses the various core reset functionality to swap out processes as it sees fit.

And the problem with the above is that this is not how the current Erlang VM works at all. :(
alexrp
 
Posts: 154
Joined: Mon Dec 17, 2012 3:22 am
Location: Thisted, Denmark

Re: Interest?

Postby shr » Thu Feb 06, 2014 2:46 am

So, how hard would it be to factor the byte code interpreter out of the VM as a whole? How big might it be?
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Re: Interest?

Postby greytery » Thu Feb 06, 2014 9:54 am

Running compute intensive code on an interpreted layer on a coprocessor does seem to be a v. inefficient approach, by definition. I think that supports the point of trying to run the Erlang VM on the ARM, and only a v.small subset on the Epiphany - IF AT ALL!

As said above, Erlang processes can make calls to C/C++ routines, and sometimes that's the best way.
For example, I'm thinking about Wings 3D (Erlang) and how it accelerates some of its graphics calcs (C++, OpenGL). That is, it keeps a healthy distinction between the main program body running on general purpose X86, and making best use of the co-processor (i.e the graphics card).

So instead of trying to run a cut-down VM on each core, why not concentrate on ensuring that there are efficient mechanisms and interfaces to invoke Epiphany routines? Methinks it would be simpler than gutting the VM and deliver immediate value.

Use Erlang for what it does best (e.g. distributed scalability and resilient computing) and the Epiphany (or any other coprocessor) for what it does best.

I have - sorry, have ordered - two boards, and one project I have in mind is to run Erlang on my Windows PCs AND on the Parallellas, so distributing the processes across my Gigabyte network. Only the processes that required specific acceleration would need to run on the Parallellas.

(Edit) Gigabit. I Wish!
tery
User avatar
greytery
 
Posts: 205
Joined: Sat Dec 07, 2013 12:19 pm
Location: ^Wycombe, UK

Re: Interest?

Postby shr » Thu Feb 06, 2014 10:32 pm

The practicality of running interpreted code on the Epiphany depends upon how much work each interpreted insturction does. If the instruction is 'A + B' where A and B are large matrices it can look quite practical. As things stand now using Erlang on the ARM cores for high level coordination and control and calling C/C++/OpenCL computational kernels on the Epiphany for specicalized tasks is best.
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Re: Interest?

Postby alexrp » Sat Feb 08, 2014 3:29 am

shr wrote:So, how hard would it be to factor the byte code interpreter out of the VM as a whole? How big might it be?

Quite hard. The Erlang VM source is not as approachable as one could hope for. Also, since Erlang only speaks bigints (not machine ints), you'd need quite a bit of code for that. But the harder part is probably adapting the very complicated scheduler infrastructure. There's also memory management / garbage collection to consider. And things like cross-machine networking and other common system calls.

It would be a huge undertaking, and I'm inclined to say that writing a slim Erlang VM from scratch would be easier.
alexrp
 
Posts: 154
Joined: Mon Dec 17, 2012 3:22 am
Location: Thisted, Denmark

Re: Interest?

Postby Greg Zuro » Mon Feb 10, 2014 5:20 am

alexrp wrote:It would be a huge undertaking, and I'm inclined to say that writing a slim Erlang VM from scratch would be easier.


Might the Erlang on xen effort be applicable here?
Greg Zuro
 
Posts: 14
Joined: Sun Jan 06, 2013 10:58 am

Re: Interest?

Postby shr » Tue Feb 11, 2014 4:50 pm

The Xen effort doesn't look applicable for Parallella to me. It's more about removing the traditioal OS and running Erlang directly on the Xen hypervisor. Erlang/ALE looks like a good starting point perhaps treating the Epiphany as a collection of virtual devices.
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Previous

Return to Erlang

Who is online

Users browsing this forum: No registered users and 2 guests