Print

Print


Dear all

I have model that terminates on a condition rather than iterate for n time.
Then how can I parallel .
 On Feb 11, 2014 10:50 PM, "Ernesto Carrella" <[log in to unmask]> wrote:

> Just to add on the previous answer.
>
> The simplest way to run the model 300 times and run each model for 10000
> steps:
>
> public static void main(String[] args){
>   final int NUMBER_OF_RUNS = 300;
>   final int STEPS_PER_RUN = 10000;
>
>   for(int run =0; run < NUMBER_OF_RUNS; run++)
>   {
>       private MySimState model = new MySimState(....);
>       for(int i=0; i< STEPS_PER_RUN; i++)
>           model.schedule.step(model);
>   }}
>
> }
>
>
> Now if you want to run it multithreaded, the simplest way to do it is this:
>
> private static class OneRunOfTheModel implements Runnable
>     {
>
>         @Override
>         public void run() {
>
>             MacroII model = new MacroII(System.currentTimeMillis());
>             model.start();
>             for(int i=0; i< STEPS_PER_RUN; i++)
>                 model.schedule.step(model);
>
>         }
>     }
> public static void main(String[] args) throws ExecutionException, InterruptedException {
>         ExecutorService executor = Executors.newCachedThreadPool();
>         List<Future> receipts = new ArrayList<>(NUMBER_OF_RUNS);
>
>         for(int i=0; i< NUMBER_OF_RUNS; i++)
>         {
>             Future receipt = executor.submit(new OneRunOfTheModel());
>             receipts.add(receipt);
>         }
>
>         //here we make sure every run was completed
>         for(Future receipt : receipts)
>             receipt.get();
>
>         executor.shutdown();
>     }
>
>
>
>
> Notice that this is clearly not a good way to multithread. The runnables
> are all potentially very long. Rather, you'd want the runnable to be just a
> model step and build the whole blocking queue infrastructure; but hey, one
> thing at a time.
>
> Ernesto
>
>
> On Tue, Feb 11, 2014 at 2:59 AM, Mac Van Vien <[log in to unmask]> wrote:
>
>> Hi every body,
>> I need to run MaSon model more than 300 times to take data farming.
>> Therefore, I want kick off this model one time and then it  can run
>> several
>> times sequncetly or parallelly. Please show me how to do it.
>>
>> I am looking forward to here from you soon.
>>
>> Thank you very much
>>
>>
>> Your sincerely
>>
>>
>>
>> Mac Van Vien
>>
>
>