|
From: | Marcus G. Daniels |
Subject: | Re: [swarm-hackers] Swarm on MacOS 10.6 Snow Leopard |
Date: | Fri, 18 Sep 2009 14:15:22 -0600 |
User-agent: | Thunderbird 2.0.0.23 (Macintosh/20090812) |
Scott Christley wrote:
OpenCL struck me as well, especially now that they have the on-the-fly compilation/linking/loading (I've been wanting this for years!).I've been using the Snow Leopard implementation for a few months, and more recently the AMD/ATI 2.0 stream SDK. I agree the on-the-fly compilation is a real win, if for no other reason than to perfect loop unrolling. Both are LLVM-based but unfortunately there is no viable open-source answer.
Not so much for strict ABM but more for hybrid models where you have different methods that need to be integrated, to get the most efficient code, you need to intertwine the different methods. For example, I'm working on a model with discrete cells in 3D space that move, each cell has a gene network (ODE) and that network is tied to cell-cell neighbor interaction, so it is not really possible to separate out the two pieces, they need to be integrated together into the same code. I suppose the big question is if these "model integration links" can be determined automatically to know what code to produce.I don't really believe there is any way to do this until you build some of them. Then they could be factored into convenient interfaces and become cookie-cutters for similar problems. At which point it isn't science anymore, so why bother with it. ;-)
C++ template parameterization is the usual answer, but that's very rigid. As I see it a big weakness of C and Java are the weak/noneexistent macro systems. Compared to Common Lisp, where whole programs can be built from the language itself (instead of a small crippled preprocessor language).
Marcus
[Prev in Thread] | Current Thread | [Next in Thread] |