swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Swarm-Modelling] ABMs on Graphical Processor Units


From: Marcus G. Daniels
Subject: Re: [Swarm-Modelling] ABMs on Graphical Processor Units
Date: Wed, 09 Jan 2008 17:03:04 -0700
User-agent: Thunderbird 2.0.0.9 (Windows/20071031)

Seth Tisue wrote:
 Russell> I think the most useful outcome of this work would be a
 Russell> library of data structures and algorithms with a C language
 Russell> interface (with a JNI Java interface a relatively trivial
 Russell> proposition on top of that) that provides useful building
 Russell> blocks for ABMs. Such a library would be useful for all of the
 Russell> above toolsets (except perhaps NetLogo, for which is not
 Russell> obvious how you call the Java layer from logo).

(NetLogo models may call out to arbitrary Java code.  This is documented
at http://ccl.northwestern.edu/netlogo/docs/extensions.html .
Unless there are high level operators that express concurrency (e.g. map a function over a space, or merging discrete event schedules across agents), I don't think it will work very well to just layer on a library. I think what's probably ideal is not a library but a compiler for an appropriate high level language for ABM. Maybe write a MetaABM GCC or LLVM frontend? Short of something like that, I think the only way to go is to write several tuned libraries for specific tasks (e.g spaces) which are also for specific architectures (assuming there are sensible interfaces from above). There are people working on adapting GOMP (GCC's OpenMP) for the Cell. One idea would be to extend GCC's Java compiler with some kind of OpenMP-like directives. But for Java on Cell it's just such a big VM to slosh around. I can't believe that would ever work well. Unclear what kind of progress is being made on IBM's X10, but it doesn't sound to me like that project has displaced IBM's standard compiler suite (and Octopiler), or the Cell Superscalar project.
Marcus


reply via email to

[Prev in Thread] Current Thread [Next in Thread]