I have a problem where my `For`

loop will not get rid of my `PrintTemporary`

monitor, and it means I end up with loads and loads of progress bars.

`(* set number of kerlnels to use *) numkernel = 4; (* how high do you want to count to? *) iterations = 15; (* for monitoring progress over multiple kernels *) progress[current_, total_] := Column[{StringRiffle[ToString /@ {current, total}, " of "], ProgressIndicator[current, {0, total}]}, Alignment -> Center] (* counting very slowly *) takeyourtime[howmany_, kernelnum_] := Module[{}, For[i = 1, i <= howmany, i++, status[[Key[$ KernelID]]] = <| "Kernel" -> "Kernel " <> ToString@kernelnum, "Monitor" -> progress[i, howmany]|>; Pause[1]; ]; ] (* will count up to iterations, k times over numkernel kernels *) For[k = 1, k <= 3, k = k + 1;, Print[k]; (*clean up*) Clear[parrallel]; (* how to divide the counting *) division = Round[iterations/numkernel]; (* remainder on the first kernel *) divisionmod = Round[iterations/numkernel] + Mod[iterations, numkernel]; (* put the first evaluation in, with the remainder*) parrallel = {Hold[ParallelSubmit[{takeyourtime[divisionmod, 1]}]]}; (*for number of kernels, set up the parrallel stuff *) For[i = 2, i <= numkernel, i++ , parrallel = Append[parrallel, Hold[ParallelSubmit[{takeyourtime[division, 1]}]]]; (*to this, so we can add i and do the monitoring better, have to be careful when expressions are evaluated, want to keep that for the parralel bit *) parrallel[[i]] = StringReplace[ToString[parrallel[[i]]], ", i]" -> ", " <> ToString[i] <> "]"]; parrallel[[i]] = ToExpression[parrallel[[i]]]; ] ; LaunchKernels[]; (* the monitoring variable we will print *) status = Association @@ ParallelTable[$ KernelID -> <|"Kernel" -> "", "Monitor" -> ""|>, {i, $ KernelCount}]; (*distribute the required definitions around the kernels *) DistributeDefinitions[takeyourtime, division, divisionmod ]; SetSharedVariable[status]; (* this is the monitoring bit *) PrintTemporary[ Dynamic[Row[ Riffle[Column[#, Alignment -> Center] & /@ Query[Values, Values]@Select[#"Monitor" =!= "" &]@status, Spacer[5]]]]]; (*execute the parralel process *) results = WaitAll[ReleaseHold[parrallel]]; CloseKernels[]; ] `