Dave Hudak <dhu...@osc.edu> wrote on 06/23/2010 12:06:42 PM:

>
> OSC announced its X10 workshop for August.  In response, a member of
> the physics community sent along some pointed questions.
>
> Below, I have included his questions and my attempt at answers.  If
> anyone on this list has anything more concrete to add, I will pass it
along.

Hi Dave,

        Taking a belated (sorry) attempt to answer some of the points raised.


>
> >>
> >> When I got a previous X10 announcement for OSC, I looked up X10 and
had
> >> trouble believing this was serious -- the most obvious points being
> >> to me:
> >>
> >> 1. what is java doing there (save as a potential guide for suggesting
> >>    new programmers avoid some cmds in C++, at least at the start)?
> >
> > Java was selected as the base language for X10, but X10 is not
> java.  It provides native arrays for scientific computing that are
> similar to C, for example.

This is an accurate answer.  I think it also drives home the point that we
should take a pass through the X10 web-site and update our "marketing."
Historically, X10 started as some language extensions to Java, but over
time it has grown into a complete programming language in its own right.
We're probably behind on updating pieces of the web-site and documentation
to reflect this.  X10 is an object-oriented language like Java but, as you
pointed out, it has better support for some of the key primitive
abstractions (arrays, complex numbers) needed by scientific computing than
Java does.


> >
> >>
> >> 2. Why is there no way of incorporating fortran code?
> >>
> >
> > While X10 is based on Java, it need not be run in the java virtual
> machine.  It can be compiled.  IBM has built a compiler and linking
> with externally compiled libraries is supported.  I will check on
> the FORTRAN compatibilities.

X10 supports fairly natural inter-operation with native C/C++ code.  I
think the main issue with inter-operating with Fortran with a similar
degree of integration is that the default implementation of x10.array.Array
uses a row-major layout (instead of the column-major layout used by
Fortran).  By design, the array layout algorithm is encapsulated into a
single class (x10.array.RectLayout). The intent of the design was that by
changing the logic in this single class, one could build a variant of the
X10 class libraries that supported column-major layout.  We'd need to do a
little bit of implementation work to actually do this, but it shouldn't be
that complicated.   Supporting a mix of row-major and column-major arrays
in a single program would be possible as well, but would add a
load/compare/branch sequence to every array load/store, so I suspect one
would want row vs. column major arrays to be a build-time option.

It's been 15 years since I've written any Fortran code, so maybe I've
forgotten other details that would need to be addressed to allow natural
X10/Fortran interop.  If so,  please let me know.

> >
> >> Then I called around and discovered no one who believed this was
> >> serious.
> >>
> >>    Who with computer intensive routines that worked and
> >>    had survived numerous ports is going to rewrite them,
> >>    save to improve parallelization.
> >>
> >
> > Computer architectures for HPC are changing to clusters of
> combined multicore/manycore devices (now CPUs + GPUs, more
> integrated versions later).  In order to truly take advantage of
> these architectures, I believe (and this is editorializing, but hey,
> it's an email :-) applications will have to express multilevel
> parallelism, explicitly manage multiple memory spaces and overlap
> computation with communication.  The driving motivation behind the
> X10 language is to make this kind of programming easier.
> >
> >>    Who with a working code using all of C++ that works on
> >>    large scale parallel machines is going to rewrite in a
> >>    limited version of C++?
> >
> > This is a serious issue.  Anytime a new language is proposed, the
> question of supporting legacy codes arises (and rightly so).
> Adoption of a language is measured in decades.  If the X10 community
> gets more things right than they get wrong and users find it
> acceptable, then it might catch on.  But, it will take time.
>

I think this is the right thrust.  X10 is really aimed at multi-level and
irregular parallelism that are especially challenging to write using
current approaches. We know it takes a long time for a new language to
catch on. Therefore, we fully expect to need to be able to inter-operate
with existing non-X10 programs and libraries for the foreseeable future.
People have code that works now and they will want to continue using
significant pieces of it even if they decide to migrate some portion of an
application to be written in X10.  We also will continue to support
efficiently calling typical native math libraries from X10.

> >
> >> Is it really true that blue waters will only handles X10?
> >
> > Absolutely not.  From everything I have seen, Blue Waters will
> support fortran, C, C++, MPI, OpenMP, etc. And, X10 runs on more
> than just Blue Waters.  I am compiling and running X10 example on my
> mac and on Glenn, OSC's cluster.

Nothing more to add to this.

> >
> >>  Is there a
> >> compiler that had passed many of the standard tests on a variety
> >> of program types?
> >>
> >
> > Well, there is a compiler.  I don't quite know how to answer the
> "many of the standard tests" question - do you have specifics?
> >

We've written a few of the standard HPC Challenge benchmarks in X10.  We
get good performance for these (competitive with UPC or C+MPI).  There's
surely quite a bit more to do in order to demonstrate that X10 "really
works" and "really performs," but some progress has been made.

We'd be interested in hearing any specifics on what the "standard tests"
are.  It would be useful for us to be able to put together a list of such
things and see if there are any unexpected issues that would have to be
solved to be able to code up X10 solutions of them.

--dave
------------------------------------------------------------------------------
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