MASON-INTEREST-L Archives

May 2015

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Sean Luke <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Wed, 6 May 2015 22:53:48 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (36 lines)
Marshall, we are indeed proposing extensions to MASON for selected JVM-based languages as part of an NSF proposal which is still pending.  I'm interested in what your performance results are (command line only, no GUI) compared to the raw Java version.  You might also try tutorial 1 and compare it to the Scheme version (in sim/app/scheme) and the Java version.

Our past experience has been that Clojure has some performance problems because we have to ref everything to get around the fact that multiagent simulation is very highly mutable.  It's not Clojure's strong point.  So whereas optimized Kawa scheme can run tutorial 1 and flockers at something like 80% the speed of optimized Java, this isn't the case for Clojure, which is much (or *was* much) slower.  

If you're getting better results, I'd really like to hear how it's going, as I'd love to see a Clojure API for MASON.  I'm cc:ing Michael Schader, who did the most recent Clojure attempt a few years back.  Kawa may be hard to beat speadwise.

In general the plan for external languages is as follows:

	STEP 1.  Port some examples to the language in a very "Java" like programming style, and see what needs to be done to make it efficient.  Here the objective is to verify that it is *possible* to target MASON from the language.

	STEP 2.  Develop a set of wrapper functions in the language, or in MASON proper, to make many common tasks faster and more apropos to the langauge in question.  For example in Kawa we might use macros and Kawa objects to produce an API for making and using agents and automatically scheduling them.  Here the objective is to make an environment that is *useful* to typical people who use this language.

Sean


On May 6, 2015, at 10:24 PM, Marshall Abrams <[log in to unmask]> wrote:

> I haven't used MASON in the past, I wanted to try using it with Clojure.  I've been working through the tutorial in the manual, translating the Java into Clojure.  Nearly everything up through section 2.8 is done.  I'll probably be adding material from the rest of the chapter when I get a chance.  In case you come across someone who's interested, the results are here:
> 
> https://github.com/mars0i/majure
> 
> A couple of days ago I came across the 2013 report planning future developments for MASON, and saw that there's a plan to develop Clojure interfaces.  Has any work been done on that yet?
> 
> Thanks to everyone who has worked on the development of MASON-
> 
> Marshall
> 
> 
> Marshall Abrams, Associate Professor 
> Department of Philosophy, University of Alabama at Birmingham
> http://http://members.logical.net/~marshall
> Email: [log in to unmask]; Phone: (205) 996-7483;  Fax: (205) 975-6610
> Mail: HB 414A, 900 13th Street South, Birmingham, AL 35294-1260;  Office: HB 418
> 
> 

ATOM RSS1 RSS2