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 <[email protected]> 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
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/x10-users
>
> ---
> David E. Hudak, Ph.D. [email protected]
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/x10-users
---
David E. Hudak, Ph.D. [email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users