Best message transfer interface to use?

Discussion about Parallella (and Epiphany) Software Development

Moderators: amylaar, jeremybennett, simoncook

Best message transfer interface to use?

Postby dekanutepederaz » Thu Oct 13, 2016 10:35 pm

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).
dekanutepederaz
 
Posts: 5
Joined: Thu Oct 13, 2016 10:20 pm

Re: Best message transfer interface to use?

Postby jar » Fri Oct 14, 2016 4:18 am

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.
User avatar
jar
 
Posts: 295
Joined: Mon Dec 17, 2012 3:27 am

Re: Best message transfer interface to use?

Postby polas » Fri Oct 14, 2016 11:13 am

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
polas
 
Posts: 46
Joined: Thu Mar 05, 2015 9:41 pm

Re: Best message transfer interface to use?

Postby jwbuurlage » Thu Nov 10, 2016 10:03 am

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).
User avatar
jwbuurlage
 
Posts: 13
Joined: Sun Oct 26, 2014 11:41 am
Location: Utrecht, The Netherlands

Re: Best message transfer interface to use?

Postby peteasa » Sat Nov 12, 2016 3:45 pm

Hi Jan-Willem,

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

Peter.
User avatar
peteasa
 
Posts: 117
Joined: Fri Nov 21, 2014 7:04 pm

Re: Best message transfer interface to use?

Postby jwbuurlage » Tue Nov 15, 2016 10:04 am

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
User avatar
jwbuurlage
 
Posts: 13
Joined: Sun Oct 26, 2014 11:41 am
Location: Utrecht, The Netherlands


Return to Programming Q & A

Who is online

Users browsing this forum: No registered users and 11 guests

cron