Hi all, I am trying to build X10 source in Eclipse (helios). I checked out all the modules (common, compiler, constraints, dist, doc, man, ..., tut) from the trunk as separate java projects. I am using JRE 1.6, and the polyglot-epl.jar. When I try to build the runtime module with ant (version 1.7.1), I get the following error:
Buildfile: /Documents/X10Src/x10.runtime/build.xml init: check-xrx: gen-xrx: [echo] Building Java sources for XRX [echo] x10c -c x10/array/Array.x10 x10/array/BaseDist.x10 x10/array/Dist.x10 x10/array/DistArray.x10 x10/array/EmptyRegion.x10 x10/array/FullRegion.x10 x10/array/Layout.x10 x10/array/Mat.x10 x10/util/concurrent/atomic/AtomicInteger.x10 x10/util/concurrent/atomic/AtomicLong.x10 x10/util/concurrent/atomic/AtomicReference.x10 x10/util/concurrent/atomic/Fences.x10 [exec] Exception in thread "main" java.lang.Error: Unresolved compilation problems: [exec] The import polyglot.frontend.ForgivingVisitorGoal cannot be resolved [exec] The method getILexStream() from the type X10Lexer refers to the missing type ILexStream [exec] The method getIPrsStream() from the type X10Parser refers to the missing type IPrsStream [exec] The method TypesInitializedForCommandLineBarrier() is undefined for the type ExtensionInfo.X10Scheduler [exec] ForgivingVisitorGoal cannot be resolved to a type [exec] ForgivingVisitorGoal cannot be resolved to a type [exec] ForgivingVisitorGoal cannot be resolved to a type [exec] ForgivingVisitorGoal cannot be resolved to a type [exec] at x10.ExtensionInfo.<init>(ExtensionInfo.java:41) [exec] at x10c.ExtensionInfo.<init>(ExtensionInfo.java:31) [exec] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [exec] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [exec] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [exec] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [exec] at java.lang.Class.newInstance0(Class.java:355) [exec] at java.lang.Class.newInstance(Class.java:308) [exec] at polyglot.main.Main.loadExtension(Main.java:189) [exec] at polyglot.main.Main.getExtensionInfo(Main.java:64) [exec] at polyglot.main.Main.start(Main.java:90) [exec] at polyglot.main.Main.start(Main.java:74) [exec] at polyglot.main.Main.main(Main.java:166) BUILD FAILED /Documents/X10Src/x10.runtime/build.xml:236: exec returned: 1 The builds of common, compiler and constraints modules are successful though. Can anyone suggest me what might be the problem here? Thanks, Jeeva P. U of Alberta On 2010-08-02, at 4:42 AM, x10-users-requ...@lists.sourceforge.net wrote: > Send X10-users mailing list submissions to > x10-users@lists.sourceforge.net > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/x10-users > or, via email, send a message with subject or body 'help' to > x10-users-requ...@lists.sourceforge.net > > You can reach the person managing the list at > x10-users-ow...@lists.sourceforge.net > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of X10-users digest..." > Today's Topics: > > 1. Re: Proper use of distributions (Igor Peshansky) > 2. Some questions about X10 and PGAS (mohammed elsaeedy) > 3. Re: Some questions about X10 and PGAS (Dave Hudak) > 4. Re: Some questions about X10 and PGAS (mohammed elsaeedy) > 5. Re: Some questions about X10 and PGAS (Dave Hudak) > > From: Igor Peshansky <ig...@us.ibm.com> > Date: July 30, 2010 8:01:11 AM MDT > To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > Subject: Re: [X10-users] Proper use of distributions > Reply-To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > > > Hi, Dave, > > You are accessing the method size() of the *field* a_prefix_sum > of the current object (i.e., "this"). However, the message says > that the *target* of the method *must be local* to the place you > are running in. It then says what it thinks that place is, and > what it knows about the place where the method target lives. > > So, the message says: > >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/PrefixSum.x10:42: >> Place type error: either method target should be local or >> method should be global. >> Method target: PrefixSum.this.a_prefix_sum >> Method target place: null >> Current place: PrefixSum#this.home >> Method: size > > The target is "this.a_prefix_sum", and the home place of that > object is "null" (which is to say "unknown" -- we ought to improve > our error messages). The compiler knows that since you are > within a non-global instance method of class PrefixSum, you must > be running in the place where the current instance lives, namely > "PrefixSum#this.home". > > You need to tell the compiler that the field a_prefix_sum lives > in the same place as the enclosing object. The simplest way to > do this is to change the declaration of the field to say: > > val a_prefix_sum: Array[Int](1)!; > > or, in a more expanded form > > val a_prefix_sum: Array[Int](1){self.home==this.home}; > > This says that the home place of the object the field refers to > (self.home) must be the same as the home place of the object that > contains the field (this.home). The compiler will statically > verify that fact. Since you always initialize that field with a > new object created in the constructor, the compiler knows that > it must have been created at the place where the enclosing object > is being constructed, so you don't have to change anything else > in the code. > > Incidentally, this is a classic example of an underspecified type: > the type you specify is a supertype of the type you actually need. > > However, while the type is underspecified, it is essentially > harmless, because the parts of the program we discussed so far do > access the object in the correct place, even if the static type > information does not reflect that. Your original issue is > different. > > You are invoking place_str() in a place that is not the home place > of the enclosing object, and thus the dynamic check (which the > compiler inserted for you) fails. When compiling with > -STATIC_CALLS, you will get a (legitimate) static error at that > point. > > If you intend to call a method from a place that is not the home > place of the object, you need to mark it "global". You also need > to ensure that all the data it accesses is either also marked > "global", or retrieved via an "at (this)" (same as "at (this.home)"). > In your particular case, the method place_str() should be global, > as should the field a_prefix_sum. > > Note that you may have more errors of this kind in the parts of > the program that you have not posted to the list. Please address > them accordingly. > > The rule of thumb is that once you start writing multi-place code, > you should stop relying on the compiler to insert the dynamic > checks for you, but instead bite the bullet, build with -STATIC_CALLS, > and fix the errors. > > Hope this helps, > Igor > > Dave Hudak <dhu...@osc.edu> wrote on 07/30/2010 09:10:49 AM: > >> Hi Igor (and all), >> >> Here is the output from the compiler: >> >> dhu...@oscnet166 125%> x10c++ -STATIC_CALLS -o Driver Driver.x10 >> PrefixSum.x10 AsyncPrefixSum.x10 DistPrefixSum.x10 >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/AsyncPrefixSum. >> x10:48: Place type error: either method target should be local or >> method should be global. >> Method target: AsyncPrefixSum.this.a_prefix_sum >> Method target place: null >> Current place: AsyncPrefixSum#this.home >> Method: size >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/AsyncPrefixSum. >> x10:49: Place type error: either method target should be local or >> method should be global. >> Method target: AsyncPrefixSum.this.a_prefix_sum >> Method target place: null >> Current place: AsyncPrefixSum#this.home >> Method: size >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/PrefixSum. >> x10:42: Place type error: either method target should be local or >> method should be global. >> Method target: PrefixSum.this.a_prefix_sum >> Method target place: null >> Current place: PrefixSum#this.home >> Method: size >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/DistPrefixSum. >> x10:61: Place type error: either method target should be local or >> method should be global. >> Method target: DistPrefixSum.this >> Method target place: null >> Current place: p >> Method: place_str >> 4 errors. >> >> Let's focus on the third error, since that is from the "easiest" >> implementation (single activity, single place). The code is attached. >> I think my problem boils down to a lack of understanding about >> referencing an object's fields and exactly what "this" means. >> >> I start out by declaring a class whose objects will allocate an array. >> I provide 3 constructors (a default and 2 initialization >> constructors). Constructors seem to use "this" for their definition - >> is that correct? >> >> public class PrefixSum { >> >> val a_prefix_sum: Array[Int](1); >> >> public def this() { >> a_prefix_sum = new Array[Int]([1..2], (Point)=>0); >> } >> >> public def this(length:Int) { >> a_prefix_sum = new Array[Int]([1..length], (Point)=>0); >> for ((i) in a_prefix_sum) { >> a_prefix_sum([i]) = i; >> } >> } >> >> public def this(a:Array[Int](1)) >> { >> a_prefix_sum = new Array[Int](a.region, (Point)=>0); >> for ((i) in a_prefix_sum) { >> a_prefix_sum([i]) = a([i]); >> } >> } >> >> ...then, I get the following error on the following code: >> >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/PrefixSum. >> x10:42: Place type error: either method target should be local or >> method should be global. >> Method target: PrefixSum.this.a_prefix_sum >> Method target place: null >> Current place: PrefixSum#this.home >> Method: size >> >> public def str_end():String >> { >> return a_prefix_sum([a_prefix_sum.size()]).toString(); >> } >> >> So, it looks like accessing the "size" field of a_prefix_sum goes >> through "this" - which is the class PrefixSum??? >> >> Thanks, >> Dave >> >> >> On Jul 29, 2010, at 3:08 PM, Igor Peshansky wrote: >> >>> Hi, Dave, >>> >>> You're accessing a field (or calling a method) of a remote object >>> reference. If you ran the compiler with the -STATIC_CALLS flag, >>> you would have gotten a compile-time error. As it is, the >>> compiler inserts a dynamic check for you, which then fails at >>> runtime. >>> >>> Try compiling your program with -STATIC_CALLS, and see what the >>> compiler reports. >>> >>> Hope this helps, >>> Igor >>> P.S. Judging by your stack trace, you seem to be running on a Mac. >>> There was a bug with printing Mac stack traces in X10 2.0.5 which >>> is fixed in SVN HEAD (so it will work better in the next release). >>> >>> Dave Hudak <dhu...@osc.edu> wrote on 07/29/2010 12:53:18 PM: >>> >>>> Hi All, >>>> >>>> I took Igor's advice on using a cell to pass results back to the >>>> calling place. I recoded my function for translating a distarray > into >>>> a string as follows. The "boo/hoo" statements are line counters: >>>> >>>> public def place_str(): String >>>> { >>>> Console.OUT.println("hoo"); >>>> var s : String = ""; //var is mutable >>>> Console.OUT.println("hoo1"); >>>> var first : Boolean = true; //var >>>> declaration must include type >>>> Console.OUT.println("place_str "+here.id); >>>> for (pt in a_prefix_sum | here) { >>>> if (first) { >>>> first = false; >>>> } >>>> else { >>>> s += ", "; >>>> } >>>> Console.OUT.println("place_str point = "+pt); >>>> s += a_prefix_sum(pt).toString(); //works because >>>> toString is global >>>> } >>>> return s; >>>> } >>>> >>>> public def str():String >>>> { >>>> var s : String = ""; //var is mutable >>>> for (p in a_prefix_sum.dist.places()) { >>>> Console.OUT.println("str "+p.id); >>>> val z = new Cell[String](null); >>>> Console.OUT.println("boo"); >>>> val h = here; >>>> Console.OUT.println("boo2"); >>>> at (p) { >>>> Console.OUT.println("boo3"); >>>> val q = place_str(); >>>> Console.OUT.println("boo4"); >>>> at (h) z.set(q); >>>> Console.OUT.println("boo5"); >>>> } >>>> s += z(); >>>> if (p.id != (Place.MAX_PLACES - 1)) { >>>> s += ", "; >>>> } //if >>>> Console.OUT.println("s = "+s); >>>> } //for i >>>> return s; >>>> } >>>> >>>> I am causing an exception when I call the place_str method from any >>>> place other that place 0. Here is the output: >>>> >>>> dhu...@oscnet166 77%> mpirun -np 8 Driver >>>> <...snip> >>>> str 0 >>>> boo >>>> boo2 >>>> boo3 >>>> hoo >>>> hoo1 >>>> place_str 0 >>>> place_str point = (1) >>>> place_str point = (2) >>>> place_str point = (3) >>>> place_str point = (4) >>>> boo4 >>>> boo5 >>>> s = 1, 2, 3, 4, >>>> str 1 >>>> boo >>>> boo2 >>>> boo3 >>>> Uncaught exception at place 0: x10.lang.ClassCastException (home==1): > >>>> DistPrefixSum{self.home==here} >>>> x10.lang.ClassCastException (home==1): DistPrefixSum{self.home==here} >>>> at x10::lang::Throwable::fillInStackTrace() >>>> >>>> Any ideas? >>>> >>>> Thanks, >>>> Dave >>>> On Jul 28, 2010, at 8:05 PM, Igor Peshansky wrote: >>>> >>>>> Igor Peshansky/Watson/i...@ibmus wrote on 07/28/2010 07:15:02 PM: >>>>> >>>>>> Dave Hudak <dhu...@osc.edu> wrote on 07/28/2010 02:37:22 PM: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> I am trying to write a class that will do a prefix sum on an > array. >>> I >>>>>>> have written the single-place version and a single-place version >>> that >>>>>>> uses multiple activities to compute the sums. I am now trying to >>>>>>> write the distributed version. Both classes are included (I will >>>>>>> eventually write an interface for these classes). >>>>>>> >>>>>>> I have been able to write the constructors and call them without >>> run- >>>>>>> time exceptions occurring. Now, I want to write a function that >>>>>>> returns a single string representation of a dist array. I wrote a > >>>>>>> function that should create a string representation of all dist >>> array >>>>>>> elements at a given location (I called it place_str), and then I >>> want >>>>>>> to loop over all places: >>>>>>> >>>>>>> (from DistPrefixSum.x10): >>>>>>> >>>>>>> public def str():String >>>>>>> { >>>>>>> var s : String = ""; //var is mutable >>>>>>> for (var place_id:int=0; place_id<Place.MAX_PLACES; > place_id++) >>> >>>>> { >>>>>>> s += at (Place.places(place_id)) place_str(); >>>>>>> if (place_id != (Place.MAX_PLACES - 1)) { >>>>>>> s += ", "; >>>>>>> } //if >>>>>>> } //for i >>>>>>> return s; >>>>>>> } >>>>>>> >>>>>>> My error occurs on the at statement: >>>>>>> >>>>>>> dhu...@oscnet166 35%> x10c++ -O -o Driver Driver.x10 PrefixSum.x10 > >>>>>>> AsyncPrefixSum.x10 DistPrefixSum.x10 >>>>>>> >>>>>> >>>>> >>>> >>> >> > /Users/dhudak/osc/research/x10/tutorial/examples/GoodPrefixSum/src/DistPrefixSum. >>>>>>> x10:49: Local variable "place_id" is accessed from an inner class > or >>> a >>>>>>> closure, and must be declared final or shared. >>>>>>> 1 error. >>>>>>> >>>>>>> Does anyone have any recommendations? Creating a single string > from >>> a >>>>>>> dist array of integers is a reduction just like finding the sum or > >>> max >>>>>>> of the entries, so I figure its well understood... >>>>>> >>>>>> Dave, >>>>>> >>>>>> This is a bug in the typechecking of at expressions. You can work >>>>> around >>>>>> this by changing the body of the for loop to >>>>>> >>>>>> val z = new Cell[String](null); >>>>>> val h = here; >>>>>> at (Place.places(place_id)) { val q = place_str(); at (h) >>>>> z.set(q); >>>>>> } >>>>>> s += z(); >>>>>> if (place_id != (Place.MAX_PLACES - 1)) { >>>>>> s += ", "; >>>>>> } //if >>>>>> >>>>>> The above code is less efficient, but it should work. >>>>>> I've opened a JIRA issue: >>> http://jira.codehaus.org/browse/XTENLANG-1632 >>>>> . >>>>>> Please watch that issue for updates on the fix. >>>>>> Igor >>>>> >>>>> Dave, >>>>> >>>>> The fix turned out to be simple. This is now fixed in SVN HEAD >>> (r15224), >>>>> and will be available in the next X10 release (or you can build from > >>> SVN >>>>> to pick up the fix). >>>>> 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 > > > > > > > From: mohammed elsaeedy <mohammed.elsae...@kaust.edu.sa> > Date: August 1, 2010 5:47:05 AM MDT > To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > Subject: [X10-users] Some questions about X10 and PGAS > Reply-To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > > > Dear List, > > I have some questions regarding PGAS and X10, > > 1) One of the goals for PGAS languages is: > *One-sided communication for improved inter-process performance, *how is > that achieved, if I'm compiling with an x10rt of MPI flavor, which is > eventually a *Two**-sided communication.* > * > * > *2)How is the "async" implemented under the hoods? is it POSIX threads or is > it OpenMP?* > * > * > *3) X10 and Chapel are APGAS, what is the difference between APGAS and PGAS > langauges? > * > -- > Thank you for your concern. > Regards, > Mohammed El Sayed > > > > > From: Dave Hudak <dhu...@osc.edu> > Date: August 1, 2010 11:55:21 AM MDT > To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > Subject: Re: [X10-users] Some questions about X10 and PGAS > Reply-To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > > > > On Aug 1, 2010, at 7:47 AM, mohammed elsaeedy wrote: > >> Dear List, >> >> I have some questions regarding PGAS and X10, >> >> 1) One of the goals for PGAS languages is: >> *One-sided communication for improved inter-process performance, *how is >> that achieved, if I'm compiling with an x10rt of MPI flavor, which is >> eventually a *Two**-sided communication.* >> * >> * >> *2)How is the "async" implemented under the hoods? is it POSIX threads or is >> it OpenMP?* >> * >> * >> *3) X10 and Chapel are APGAS, what is the difference between APGAS and PGAS >> langauges? > > I'll try this one. APGAS is shorthand for "asynchronous PGAS". Traditional > PGAS implementations (UPC and Co-Array FORTRAN) use an MPI-style execution > called SPMD (single-program, multiple data) in which a fixed number of > parallel threads are created at the beginning of the program and all exist > until the end of the program. In asynchronous PGAS, the programmer can > create threads during the execution of the program (e.g., using the async or > at commands in X10). > > Thanks, > Dave > >> * >> -- >> Thank you for your concern. >> Regards, >> Mohammed El Sayed >> ------------------------------------------------------------------------------ >> The Palm PDK Hot Apps Program offers developers who use the >> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >> of $1 Million in cash or HP Products. Visit us here for more details: >> http://p.sf.net/sfu/dev2dev-palm >> _______________________________________________ >> X10-users mailing list >> X10-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/x10-users > > --- > David E. Hudak, Ph.D. dhu...@osc.edu > Program Director, HPC Engineering > Ohio Supercomputer Center > http://www.osc.edu > > > > > > > > > > > > > > > From: mohammed elsaeedy <mohammed.elsae...@kaust.edu.sa> > Date: August 1, 2010 12:32:40 PM MDT > To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > Subject: Re: [X10-users] Some questions about X10 and PGAS > Reply-To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > > > Dear David, > > > Thank you for your reply, but does that mean the traditional PGAS > programming language does not present Intra-level parallelism (as in > threads)? and it only provides Inter-level parallelism as in executing on > different Processing Elements. > Where as APGAS, provides both level of parallelism. > > am I right? > I hope I get my other questions answered too :) > > Thank you all > > On Sun, Aug 1, 2010 at 1:55 PM, Dave Hudak <dhu...@osc.edu> wrote: > >> >> On Aug 1, 2010, at 7:47 AM, mohammed elsaeedy wrote: >> >>> Dear List, >>> >>> I have some questions regarding PGAS and X10, >>> >>> 1) One of the goals for PGAS languages is: >>> *One-sided communication for improved inter-process performance, *how is >>> that achieved, if I'm compiling with an x10rt of MPI flavor, which is >>> eventually a *Two**-sided communication.* >>> * >>> * >>> *2)How is the "async" implemented under the hoods? is it POSIX threads or >> is >>> it OpenMP?* >>> * >>> * >>> *3) X10 and Chapel are APGAS, what is the difference between APGAS and >> PGAS >>> langauges? >> >> I'll try this one. APGAS is shorthand for "asynchronous PGAS". >> Traditional PGAS implementations (UPC and Co-Array FORTRAN) use an >> MPI-style execution called SPMD (single-program, multiple data) in which a >> fixed number of parallel threads are created at the beginning of the program >> and all exist until the end of the program. In asynchronous PGAS, the >> programmer can create threads during the execution of the program (e.g., >> using the async or at commands in X10). >> >> Thanks, >> Dave >> >>> * >>> -- >>> Thank you for your concern. >>> Regards, >>> Mohammed El Sayed >>> >> ------------------------------------------------------------------------------ >>> The Palm PDK Hot Apps Program offers developers who use the >>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >>> of $1 Million in cash or HP Products. Visit us here for more details: >>> http://p.sf.net/sfu/dev2dev-palm >>> _______________________________________________ >>> X10-users mailing list >>> X10-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/x10-users >> >> --- >> David E. Hudak, Ph.D. dhu...@osc.edu >> Program Director, HPC Engineering >> Ohio Supercomputer Center >> http://www.osc.edu >> >> >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> The Palm PDK Hot Apps Program offers developers who use the >> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >> of $1 Million in cash or HP Products. Visit us here for more details: >> http://p.sf.net/sfu/dev2dev-palm >> _______________________________________________ >> X10-users mailing list >> X10-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/x10-users >> > > > > -- > Thank you for your concern. > Regards, > Mohammed El Sayed > > > > > From: Dave Hudak <dhu...@osc.edu> > Date: August 2, 2010 4:42:15 AM MDT > To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > Subject: Re: [X10-users] Some questions about X10 and PGAS > Reply-To: Mailing list for users of the X10 programming language > <x10-users@lists.sourceforge.net> > > > > On Aug 1, 2010, at 2:32 PM, mohammed elsaeedy wrote: > >> Dear David, >> >> >> Thank you for your reply, but does that mean the traditional PGAS >> programming language does not present Intra-level parallelism (as in >> threads)? and it only provides Inter-level parallelism as in executing on >> different Processing Elements. >> Where as APGAS, provides both level of parallelism. >> >> am I right? > > Correct. APGAS environments (in theory) make it easier to program > multi-level parallel applications. As hybrid architectures become more > common (think clusters of multicore nodes or clusters of nodes each > containing an accelerator like a GPU), multilevel parallelism will be > necessary to fully utilize the machine. Of course, multilevel parallelism > can be created outside of APGAS: lots of programmers are combining MPI + > OpenMP or MPI + CUDA. > > Dave > >> I hope I get my other questions answered too :) >> >> Thank you all >> >> On Sun, Aug 1, 2010 at 1:55 PM, Dave Hudak <dhu...@osc.edu> wrote: >> >>> >>> On Aug 1, 2010, at 7:47 AM, mohammed elsaeedy wrote: >>> >>>> Dear List, >>>> >>>> I have some questions regarding PGAS and X10, >>>> >>>> 1) One of the goals for PGAS languages is: >>>> *One-sided communication for improved inter-process performance, *how is >>>> that achieved, if I'm compiling with an x10rt of MPI flavor, which is >>>> eventually a *Two**-sided communication.* >>>> * >>>> * >>>> *2)How is the "async" implemented under the hoods? is it POSIX threads or >>> is >>>> it OpenMP?* >>>> * >>>> * >>>> *3) X10 and Chapel are APGAS, what is the difference between APGAS and >>> PGAS >>>> langauges? >>> >>> I'll try this one. APGAS is shorthand for "asynchronous PGAS". >>> Traditional PGAS implementations (UPC and Co-Array FORTRAN) use an >>> MPI-style execution called SPMD (single-program, multiple data) in which a >>> fixed number of parallel threads are created at the beginning of the program >>> and all exist until the end of the program. In asynchronous PGAS, the >>> programmer can create threads during the execution of the program (e.g., >>> using the async or at commands in X10). >>> >>> Thanks, >>> Dave >>> >>>> * >>>> -- >>>> Thank you for your concern. >>>> Regards, >>>> Mohammed El Sayed >>>> >>> ------------------------------------------------------------------------------ >>>> The Palm PDK Hot Apps Program offers developers who use the >>>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >>>> of $1 Million in cash or HP Products. Visit us here for more details: >>>> http://p.sf.net/sfu/dev2dev-palm >>>> _______________________________________________ >>>> X10-users mailing list >>>> X10-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/x10-users >>> >>> --- >>> David E. Hudak, Ph.D. dhu...@osc.edu >>> Program Director, HPC Engineering >>> Ohio Supercomputer Center >>> http://www.osc.edu >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> The Palm PDK Hot Apps Program offers developers who use the >>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >>> of $1 Million in cash or HP Products. Visit us here for more details: >>> http://p.sf.net/sfu/dev2dev-palm >>> _______________________________________________ >>> X10-users mailing list >>> X10-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/x10-users >>> >> >> >> >> -- >> Thank you for your concern. >> Regards, >> Mohammed El Sayed >> ------------------------------------------------------------------------------ >> The Palm PDK Hot Apps Program offers developers who use the >> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >> of $1 Million in cash or HP Products. Visit us here for more details: >> http://p.sf.net/sfu/dev2dev-palm >> _______________________________________________ >> X10-users mailing list >> X10-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/x10-users > > --- > David E. Hudak, Ph.D. dhu...@osc.edu > Program Director, HPC Engineering > Ohio Supercomputer Center > http://www.osc.edu > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > The Palm PDK Hot Apps Program offers developers who use the > Plug-In Development Kit to bring their C/C++ apps to Palm for a share > of $1 Million in cash or HP Products. Visit us here for more details: > http://p.sf.net/sfu/dev2dev-palm_______________________________________________ > X10-users mailing list > X10-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/x10-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ X10-users mailing list X10-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/x10-users