mohammed elsaeedy <mohammed.elsae...@kaust.edu.sa> wrote on 07/13/2010 
09:13:59 AM:

> Dear List,
> 
>     I have several questions about the underlying communication of X10, 
that
> I hope anyone could answer.
> 
> 1) When I was using X10DT, there was an option panel, where I get to 
choose
> the interprocess communication strategy (e.g. open MPI, MPICH2),
>     but what If I'm not using the eclipse plug-in X10DT, and I'm using 
the
> terminal for compilation and running (like manager, and launcher 
commands)
>    is there some kind of command where I could choose the interprocess
> communication like the X10DT? And does it differ from one strategy to 
the
>    other?

If you build on the command line using "x10c++", most non-AIX platforms
default to using the sockets transport (i.e., different places communicate
using sockets).  This is the same transport you get with the X10DT
installation on any non-AIX platform.

The sockets transport understands MPI environment from the various 
versions
of MPI (OpenMPI, MPICH2, etc), and so X10 executables built with the 
sockets
transport can be launched using mpirun.  However, they do not use MPI to
communicate.

You can use whatever mpirun is in your PATH to launch X10 sockets 
executables.

X10 can also be built with the MPI transport, which would make it use MPI 
for
communicating between places.  The current X10 distribution does not come
with the MPI transport pre-built by default because of the many different
versions of MPI the users may have on their systems.  There are 
instructions
for adding the MPI transport to your X10 installation at
http://x10.codehaus.org/X10RT+Implementations#X10RTImplementations-AugmentingaprebuiltX10ReleasewiththeMPIversionofX10RT
 
.

> 2) If I want to deploy over a cluster or the Blue Gene/p, how can I do 
that?

If you want to deploy the current release (2.0.4), you would have to build
X10 from source using a BG/p cross-compiler.  I believe there are some
plans for distributing a BG/p build as part of the 2.0.5 release, due out
in a couple of weeks.

Once you have a BG/p build of X10, you deploy it on the BlueGene cluster
just like you would any other BlueGene application, using whatever 
scheduler
is available on the system.

> 3) X10 is very useful in implementing parallel code, hiding most of the
> complexity of communication, and synchronization, but what If I want
>     to implement one-to-all Broadcast and All-to-one Reduction with a
> certain algorithm that fits in with the underlying network topology?
>    I mean does the X10 compiler do that for me? Does it implement an
> efficient network communication strategy? or do I have to do it by 
myself
>    and if so how can I do that?

For the moment, you would have to do this yourself, presumably using a set 
of
asyncs that use either finish or conditional atomics for synchronization.
You may want to take a look at our benchmark programs (in the benchmarks
repository), which implement some of the reductions you mentioned.

We will eventually have some of these reduction operations in the standard
library, and there is work in progress on designing the appropriate APIs,
but we have no set date or release that will contain these.  Stay tuned.

Hope this helps,
        Igor
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
X10: Parallel Productivity and Performance (http://x10-lang.org/)
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
"I hear and I forget.  I see and I remember.  I do and I understand" -- 
Confucius


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to