MASON-INTEREST-L Archives

October 2015

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

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

Print Reply
Sender:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Tue, 27 Oct 2015 14:15:44 -0400
Reply-To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Subject:
MIME-Version:
1.0
Message-ID:
In-Reply-To:
Content-Type:
multipart/alternative; boundary=001a113ff318f6243105231a10a3
From:
Eric 'Siggy' Scott <[log in to unmask]>
Parts/Attachments:
text/plain (4 kB) , text/html (5 kB)
Rashi,

There is a display frame that gets created in each iteration which gets
> closed at the end of the iteration


Is this frame being created by GUIState?

Part of why we're confused is that, as Ernesto pointed out, when doing
experiments you typically want to use the main method in your SimState
object to launch the program, as opposed to GUIState.  Notice that Sean's
example of parallel batches launches the HeatBugs class, not the
HeatBugsWithUI class.

That way there are no frames or visualizations involved whatsoever.

Siggy

On Tue, Oct 27, 2015 at 12:06 PM, Sean Luke <[log in to unmask]> wrote:

> I think what you're trying to do is parallelize runs.  If you're trying to
> parallelize runs, it doesn't make much sense to be visualizing them at the
> same time -- you're just making things slower.
>
> Instead, you should run MASON on the command line without visualization.
> There is a built-in option in MASON to run parallel batches.  For example,
> let's say that you have 8 cores and need to run 80 runs of HeatBugs, each
> run for 10000 steps.  You could do this:
>
>         java sim.app.heatbugs.HeatBugs -repeat 10 -parallel 8 -for 10000
>
> Sean
>
> On Oct 27, 2015, at 7:50 AM, Rashi Aswani <[log in to unmask]> wrote:
>
> > Hello,
> >
> > I am sorry for not being clear earlier. I believe my question is a Mason
> related one. More specifically I want to run an experiment that will be
> repeated 100 times (each iteration has some randomly generated parameters).
> One obvious way is to run an iteration and then manually start the program.
> However this is time consuming, hence I am trying to automate the runs.
> >
> > In each iteration, there are multiple agents each modeled as thread in
> Mason. There is a display frame that gets created in each iteration which
> gets closed at the end of the iteration. In order to make it automated I am
> setting the display frame to null by using displayFrame.dispose() and then
> displayFrame = null after the run is completed so in the next iteration a
> new display frame comes up. However this is creating an issue since the old
> display frame was not  getting killed. In order to make sure it gets killed
> correctly, I had to put in an arbitrary sleep so that all the threads are
> finished and then the frame is killed. However the sleep is leading to:
> > (a) Long run times (hours) once I set up more runs.
> > (b) As I am making the frame null, it is not freeing up the memory hence
> I get memory dump after some point. I also tried using unregisterFrame()
> and unregisterAllFrames() but none of these worked.
> >
> > In short, I'm trying to find out,
> > (a)Is there a functionality in Mason that can detect when all the
> threads are done so we know when to close the display frame?
> > (b)Is there a way to close the display frame instead of specifically
> nullifying it?
> >
> > Thanks,
> > Rashi
> >
> > On Mon, Oct 12, 2015 at 11:09 PM, Eric 'Siggy' Scott <[log in to unmask]>
> wrote:
> > Rashi,
> >
> > How to wait for threads until they complete is a general Java question,
> not a Mason question.  General multithreaded programming is out of the
> scope of this list.
> >
> > Of course, perhaps I've misunderstood your question, and you are using
> something Mason-specific to control your threads.  In that case perhaps you
> could give us a little more detail about what you're doing and what you'd
> like to do.
> >
> > Cheers,
> >
> > Siggy
> >
> >
> >
> >
> > On Mon, Oct 12, 2015 at 11:18 AM, Rashi Aswani <[log in to unmask]>
> wrote:
> > Hello,
> >
> > I'm using mason for a simulation having various threads and I'm trying
> to run the same simulation again with different parameter values. I'm
> currently using thread.sleep (to pause main thread) before creating one
> more simulation (in next iteration) so as provide enough time for existing
> simulation to run.
> > It would be great to know if there is any other way of handling threads,
> as the sleep increases runtime to a great extent.
> > Thanking you in advance.
> >
> > Regards,
> > Rashi Aswani
> >
> >
> >
> >
> > --
> >
> > Ph.D student in Computer Science, George Mason University
> > CFO and Web Director, Journal of Mason Graduate Research
> > http://mason.gmu.edu/~escott8/
> >
>



-- 

Ph.D student in Computer Science, George Mason University
CFO and Web Director, Journal of Mason Graduate Research
http://mason.gmu.edu/~escott8/


ATOM RSS1 RSS2