On Jun 25, 2011, at 6:49 PM, David E Hudak wrote: > > On Jun 24, 2011, at 9:08 PM, David P Grove wrote: > >> >> >> >> David E Hudak <dhu...@osc.edu> wrote on 06/24/2011 04:47:45 PM: >>> >>> [X10-users] Java native interface and runtime? >>> >>> Hi All, >>> >>> I have a colleague with a Java implementation of a genetic >>> algorithm. He is interested in parallelizing the application for >>> both multicore and multinode execution. >>> >>> In the initial implementation, there are a set of classes for >>> specifying fitness functions, expressing genes and implementing gene >>> manipulations. There is a top-level simulation object that run the >>> various number of generations. My plan was to try using the java >>> native interface to use the existing Java classes for organisms and >>> fitness, and rewrite the top level simulation in X10. >>> >>> I have been evaluating X10 for purely numeric applications on our >>> cluster (C++ back end, MPI runtime and mpiexec as a process >>> launcher). I believe I read somewhere that the Java native >>> interface requires the Java back end. In that case, I'd need to >>> make sure we could run the sockets runtime and whatever process >>> launcher we have for java (x10run?). >>> >>> Anyone have any advice? >>> >> >> Following up on what Igor said, I'd suggest going with your plan of writing >> the top level simulation in X10, but instead of using JNI, try to use the >> multi-place Java implementation of X10 and call the Java generic algorithm >> from X10 compiled to Java. > > So, that is like section 18.3 of the language spec ("External Java Code") as > opposed to section 18.2 ("Native Blocks"). Are there examples of this in the > regression tests? > > Thanks, > Dave > >> >> We're kicking off an activity over the summer to make the X10/Java >> interoperability even more user-friendly, so this could be an interesting >> case study for us. Let us know if you run into problems.
OK, first problem is that I am not sure how to start. In X10, I am able to create DistArrays of X10 objects. The data structure for the Java genetic algorithm is a vector of Individual (Individual is a class and objects of that class represents organisms in the population). So, I tried to create a DistContainer for Individuals, but x10c did not like it: import individual.*; public class DistContainer { public static def main(args:Array[String](1)) { val arraySize = 400; val bob = new Individual(); Console.OUT.println("DistContainer test: Starting"); val testArray = DistArray.make[Individual](Dist.makeBlock(1..arraySize), () => new Individual()); Console.OUT.println("DistContainer test: Complete"); } } Individual.java is the same directory as DistContainer.x10: dhudak@opt0003 1028%> ls total 28 4 build-command 4 DistContainer-pbs.sh 4 DistContainer.x10 4 individual/ 12 Individual.java dhudak@opt0003 1029%> x10c DistContainer.x10 /nfs/07/dhudak/devel/x10/mcsweeny/examples/DistContainer/DistContainer.x10:13: Could not find type "Individual". /nfs/07/dhudak/devel/x10/mcsweeny/examples/DistContainer/DistContainer.x10:13: No valid constructor found for Individual(). 2 errors. Thanks, Dave >> >> We've also been making some nice improvements (post 2.2 release) in the >> performance of the multi-JVM implementation of X10. So once your code is >> working, if there are communication related performance problems, we could >> also work with you to try it on the development branch we have going right >> now to work on multi-JVM serialization performance. >> >> --dave >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure contains a >> definitive record of customers, application performance, security >> threats, fraudulent activity and more. Splunk takes this data and makes >> sense of it. Business sense. IT sense. Common sense.. >> http://p.sf.net/sfu/splunk-d2d-c1 >> _______________________________________________ >> 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 > > > > > > > > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense.. > http://p.sf.net/sfu/splunk-d2d-c1 > _______________________________________________ > 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 ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ X10-users mailing list X10-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/x10-users