Page 1 of 1

Best message transfer interface to use?

PostPosted: Thu Oct 13, 2016 10:35 pm
by dekanutepederaz
Hello, newbie corner here!
Currently I am developing a parallel algorithm, but I can't decide what to use. For now the algorithm uses MPI, but I have started migrating it to EBSP, because it is more convenient and easier to work with.

Another problem that I faced is the big size of the binaries. Could you recommend some ways to decrease the size, since it overflows the Internal RAM of the nodes. For now the algorithm is written on C++ and uses set and vector (I read that STL libraries aren't a good idea).

Re: Best message transfer interface to use?

PostPosted: Fri Oct 14, 2016 4:18 am
by jar
To address the binary size, I think GCC does a better job making small binaries with C code. If you've using C++ in a C manner, it will probably do fine, but I haven't tested that. STL libraries may blow up code size as you mentioned. You want to avoid 64-bit types.

You don't want to execute code out of RAM if you can help it. Particularly the critical routines.

Re: Best message transfer interface to use?

PostPosted: Fri Oct 14, 2016 11:13 am
by polas
With GCC using -Os will optimise for binary size which might be of interest, other compile time optimisations for speed (e.g. O3) can increase the size of the binary so that is something to watch out for. It is also worth playing with the code itself, for example wIth GCC (using C rather than C++) I found that using switch statements significantly increase the binary size in contrast to just using if/else/else if etc..

Nick

Re: Best message transfer interface to use?

PostPosted: Thu Nov 10, 2016 10:03 am
by jwbuurlage
Sorry to dig up an old thread, but I have written a blog post about using C++ on the parallella: http://blog.codu.in/parallella/epiphany ... a_cpp.html.
It also includes a preview of an upcoming C++ BSP library that targets the Epiphany (spiritual successor to EBSP).

Re: Best message transfer interface to use?

PostPosted: Sat Nov 12, 2016 3:45 pm
by peteasa
Hi Jan-Willem,

Your C++ BSP library looks very impressive. Is it going to be published open source?

Peter.

Re: Best message transfer interface to use?

PostPosted: Tue Nov 15, 2016 10:04 am
by jwbuurlage
Hi Peter,

Yes it will be released as an open-source library, we are in the process of settling for a final API, and an 'initial release' is not that far away. The great thing about Bulk is that it is not limited to the Epiphany chip, but the same library can be used to program multi-core shared memory systems using the standard C++ threading library (could be used e.g. for the ARM host on the parallella) and distributed clusters using MPI (can be used to communicate between different Parallella's) with the same syntax on each level. It is therefore also not at all limited to the Epiphany/Parallella ecosystem but is a library that targets a large range of platforms -- we are very excited about this. If you (or others) want to test it out before it is released send me a PM with contact information and I will send a preview version around soon.

-- Jan-Willem