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