MGD swarm-support Mar. 27, 2001 There's a lot that can be done to speed-up models, but the first step is to get profiling information. (e.g. jdkswarm -Xprof) Some of the options are: 0) Algorithmic optimizations -- profiling makes these obvious 1) Use language-specific homogeneous ForEach FActions -- that eliminates method dispatch costs and cross language lookups. 2) Likewise, schedule simple actions with language-specific `FActions'. 3) Identify places where cross languages calls are expensive and substitute pure Java code. Or, even better, contribute features to Swarm so that they run in fast chunks for native-code performance. 4) Use the GNU Java compiler, gcj, to compile the model and Swarm stubs down to native code. I recently submitted changes to GCJ to make this work. See the java@gcc.gnu.org mailing list archives if you want to fool around with it. The result of this is you get a simple executable. (Unlike what I talked about at SwarmFest last year this doesn't involve a JVM at all.) The model I'm working on now had about a 1.3 factor speedup without any other changes. Also, the quality of profiling information from this is much better than from JVMs, since it goes all the way down through Java runtime support, Swarm itself, and system C libraries.