Parallella will have Erlang - How about Google Go?

955 views
Skip to first unread message

ROuNIN

unread,
Oct 27, 2012, 8:28:11 AM10/27/12
to golang-nuts
Will Google Go run on this Parallella board - Parallella: A
Supercomputer For Everyone

http://www.kickstarter.com/projects/adapteva/parallella-a-supercomputer-for-everyone

The Parallella platform is based on the Epiphany multicore chips
developed by Adapteva over the last 4 years and field tested since May
2011. The Epiphany chips consists of a scalable array of simple RISC
processors programmable in C/C++ connected together with a fast on
chip network within a single shared memory architecture.

Here is a link to the Epiphany Architecture Reference Manual
http://www.adapteva.com/wp-content/uploads/2012/10/epiphany_arch_reference_3.12.10.03.pdf

The Epiphany architecture is programming-model neutral and compatible
with most popular
parallel-programming methods, including Single Instruction Multiple
Data (SIMD), Single
Program Multiple Data (SPMD), Host-Slave programming, Multiple
Instruction Multiple Data
(MIMD), static and dynamic dataflow, systolic array, shared-memory
multithreading, messagepassing,
and communicating sequential processes (CSP).

Erlang is mentioned on this video at 09:57:

http://www.youtube.com/watch?feature=player_embedded&v=RAHDHrPozOU

26GFLOP from just 2 Watts!

communicating sequential processes CSP!!!!!!!

Ian Lance Taylor

unread,
Oct 28, 2012, 12:08:06 AM10/28/12
to ROuNIN, golang-nuts
On Sat, Oct 27, 2012 at 5:28 AM, ROuNIN <rounin....@gmail.com> wrote:
> Will Google Go run on this Parallella board - Parallella: A
> Supercomputer For Everyone

Somebody would have to port one of the compilers and the runtime library.

Ian

minux

unread,
Oct 28, 2012, 1:31:28 PM10/28/12
to Ian Lance Taylor, ROuNIN, golang-nuts
gcc already has a Epiphany backend.
however there isn't a Epiphany libffi port.

Does gccgo runtime require other major things?

i think an efficient Go runtime (specifically the scheduler) on Epiphany will 
require major (even research) work (locate aware scheduling).

Ian Lance Taylor

unread,
Oct 28, 2012, 11:58:23 PM10/28/12
to minux, ROuNIN, golang-nuts
On Sun, Oct 28, 2012 at 10:31 AM, minux <minu...@gmail.com> wrote:
>
>
> On Sun, Oct 28, 2012 at 12:08 PM, Ian Lance Taylor <ia...@google.com> wrote:
>>
>> On Sat, Oct 27, 2012 at 5:28 AM, ROuNIN <rounin....@gmail.com> wrote:
>> > Will Google Go run on this Parallella board - Parallella: A
>> > Supercomputer For Everyone
>>
>> Somebody would have to port one of the compilers and the runtime library
>
> gcc already has a Epiphany backend.
> however there isn't a Epiphany libffi port.
>
> Does gccgo runtime require other major things?

No, except for porting libgo itself. That should be straightforward
for a GNU/Linux OS, somewhat more work for something else.

libffi is only needed for reflect.Call and runtime.SetFinalizer.

Ian

Kevin Gillette

unread,
Oct 29, 2012, 12:08:19 AM10/29/12
to golan...@googlegroups.com
On Saturday, October 27, 2012 6:28:21 AM UTC-6, ROuNIN wrote:
communicating sequential processes  CSP!!!!!!!

My understanding of how this kind of hardware works is that the mini-cores will only prove particularly useful for parallel algorithms (remember that go optionally handles parallelism _through_ concurrency, but doesn't address parallelism directly). Non-identical concurrent tasks, such as what goroutines are often employed for, may not be viable to run on anything but the primary ARM cores ('communicating' and 'sequential' both directly hinder parallelization). Sharing memory by communicating (e.g. channels) may also not be viable except on the primary ARM cores. That said, using cgo to offload truly parallel problems, such as matrix multiplication, would be quite beneficial.

ROuNIN

unread,
Jan 31, 2013, 5:57:45 PM1/31/13
to golan...@googlegroups.com
On Thu, Jan 31, 2013 at 11:29 AM, ROuNIN  wrote:
> Hello Ian,
> Seems like the ball has started to roll but needs the golang
> community's help:
>
> http://forums.parallella.org/viewtopic.php?f=27&t=138
>
> ROuNIN

Looks like they have correctly identified the issue: somebody will
need to port libffi to support Epiphany.  This isn't something I have
any time to work on myself, though I'd be happy to try to answer
questions.

Note that libffi is a separate library that the gccgo Go library uses.
 libffi has nothing to do with Go.

Reply all
Reply to author
Forward
0 new messages