Tracking progress in ParallelDo
- To: mathgroup at smc.vnet.net
- Subject: [mg132584] Tracking progress in ParallelDo
- From: Brian Beckage <Brian.Beckage at uvm.edu>
- Date: Mon, 14 Apr 2014 05:27:50 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
I'm applying a function repeatedly using ParallelDo. I would like to keep track of its progress. I've tried using both my own counter variable as well as using the increments within the ParallelDo function (below). Neither provides a way of sequentially tracking how many of the iterations have been spawned (not completed--but just kicked off).
How could I track that iteration 1, 2, 3, 4, 5 etc. have been started? Is there a better way of monitoring progress of the ParalleDo?
Thanks for your help!
Brian
USING MY OWN COUNTER: myCounter:
parallelBootstrapFireMultiplier[nBoot_, fireMultiplierRange_, parmList1_,
nYears_, initLandscapeProbs_] := Module[{outIter, myCounter},
ParallelEvaluate[Clear[myCounter]];
myCounter = 0;
SetSharedVariable[myCounter];
Reap[
ParallelDo[
myCounter++;
Print["Starting parallelBootstrapMultiplier step ", myCounter, " out of ",
nBoot];
outIter =
iterFireMultiplier[fireMultiplierRange, parmList1, nYears,
initLandscapeProbs];
ParallelSow[outIter],
{nBoot}]
]
]
RESULTS in:
(kernel 2) Starting parallelBootstrapMultiplier step 2 out of 6
(kernel 1) Starting parallelBootstrapMultiplier step 2 out of 6
(kernel 1) Starting parallelBootstrapMultiplier step 4 out of 6
(kernel 2) Starting parallelBootstrapMultiplier step 4 out of 6
(kernel 2) Starting parallelBootstrapMultiplier step 5 out of 6
(kernel 1) Starting parallelBootstrapMultiplier step 6 out of 6
USING THE INCREMENT i FROM ParallelDo:
parallelBootstrapFireMultiplier[nBoot_,fireMultiplierRange_,parmList1_,nYears_,initLandscapeProbs_]:= Module[{outIter},
Reap[
ParallelDo[
Print["Starting parallelBootstrapMultiplier step ",i, " out of ",nBoot];
outIter=iterFireMultiplier[fireMultiplierRange,parmList1,nYears,initLandscapeProbs]; (*This returns a list*)
ParallelSow[outIter],
{i,nBoot}]
]
]
RESULTS in:
Starting parallelBootstrapMultiplier step 1 out of 6
Starting parallelBootstrapMultiplier step 4 out of 6
Starting parallelBootstrapMultiplier step 5 out of 6
Starting parallelBootstrapMultiplier step 2 out of 6
Starting parallelBootstrapMultiplier step 3 out of 6
Starting parallelBootstrapMultiplier step 6 out of 6