Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!us.feeder.erje.net!newspeer1.nac.net!newspump.sol.net!post2.nntp.sol.net!posts.news.twtelecom.net!nnrp3.twtelecom.net!not-for-mail From: Brian Beckage Newsgroups: comp.soft-sys.math.mathematica Subject: Tracking progress in ParallelDo Date: Mon, 14 Apr 2014 09:28:07 +0000 (UTC) Sender: steve@smc.vnet.net Approved: Steven M. Christensen , Moderator Message-ID: Lines: 59 Organization: Time-Warner Telecom NNTP-Posting-Date: 14 Apr 2014 09:34:08 GMT NNTP-Posting-Host: 64aa310a.news.twtelecom.net X-Trace: DXC=;=D5_25oVM9BnH\hm8kQj6=;[h;PUXBgb4b4gWQ>GE5;1EFiONJ7[Go60=]]EJaSL7; X-Complaints-To: abuse@twtelecom.net Xref: csiph.com comp.soft-sys.math.mathematica:16803 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