MPI "lite" library?

MPI "lite" library?

Postby aolofsson » Wed Dec 19, 2012 4:42 am

We have been searching for a message passing parallel programming framework for the Epiphany without great results for years. MPI is great because it has a strong community of thousands of expert programmers and a well understood programming model but it's a non-starter for the Epiphany b/c it's just too heavy.

Does anyone know of any efforts currently underway to create a really light-weight open source message passing library for the many manycore architectures currently in development (Epiphany, Intel MIC, Kalray, P2012, Tilera, etc)? A light weight "standard" transport layer could make developing higher level message passing/streaming languages and frameworks much easier. (similar to how OpenCL is pushing heterogeneous computing forward)

Here's the best alternative we have found so far written for the Intel SCC.
http://marcbug.scc-dc.com/svn/repository/trunk/
User avatar
aolofsson
 
Posts: 1005
Joined: Tue Dec 11, 2012 6:59 pm
Location: Lexington, Massachusetts,USA

Re: MPI "lite" library?

Postby dar » Sat Dec 22, 2012 4:38 am

Well, its amusing to communicate this over the forum, but I have looked into this already. In talking with a colleague involved with openmpi, I pointed out that the early OpenCL kernel extensions looked like MPI "lite" - and he then pointed out that something called precisely that had been the subject of discussions within MPI. There is also a package with that name for multithreaded architectures, I beleive. This is mostly an issue of what to throw out of the MPI standard, and then mapping the syntax that is left. The MPI "lite" library you are looking for can be build on top of libcoprthr. I have experimented with the concept using a toy neutron fission code where I created a program that worked semantically like an MPI code being launched on the Epiphany cores. I believe the biggest issue will be partitioning code into "kernel size" pieces.
dar
 
Posts: 90
Joined: Mon Dec 17, 2012 3:26 am

Re: MPI "lite" library?

Postby ed2k » Sat Dec 22, 2012 5:03 pm

maybe even the MPI "lite" is too heavy for 32K memory. why not using a simple c-struct based memory copy model (strip down FIFO, ring buffer etc), leave the heavy lifting to the host (endian conversion, parsing etc)
Erlang's c-port could be the right direction.
ed2k
 
Posts: 113
Joined: Mon Dec 17, 2012 3:27 am

Re: MPI "lite" library?

Postby dar » Sat Dec 22, 2012 5:20 pm

I cannot speak to Erlang c-port since I do not know enough about it. The term MPI "lite" is used here, I believe, to capture an idea or objective, and not implying a specific level of complexity or support, i.e., it remains to be fully defined and is more notional. What is definitely true is that it should be a memory copy based implementation. And the 32K limit is a stringent one, as you suggest, and will limit what is realistic to achieve.

The motive from my perspective is based on a belief that there is benefit in presenting familiar APIs with potentially different under-the-hood implementations, as opposed to always attempting to construct something new for the programmer to learn, and then rewrite there code from scratch. The motive here is to allow, if possible, MPI programmers to use there code with modifications, to adapt it to this parallel architecture, possibly having to deal with some limitations. Alternative is to rewrite code. Can something meaningful be done here with the concept of MPI "lite"? Not sure, but its interesting enough to take a look, I believe. I am looking at some proof-of-concept code now to test the idea.
dar
 
Posts: 90
Joined: Mon Dec 17, 2012 3:26 am

Re: MPI "lite" library?

Postby ed2k » Sat Dec 22, 2012 6:26 pm

I was taking it literally via google search, http://pcl.cs.ucla.edu/projects/sesame/ ... ull97.html
ed2k
 
Posts: 113
Joined: Mon Dec 17, 2012 3:27 am


Return to MPI

Who is online

Users browsing this forum: No registered users and 2 guests

cron