[Swift-devel] Placing and recovering results from Tcl memory on worker ranks

Justin M Wozniak wozniak at mcs.anl.gov
Thu May 28 14:20:12 CDT 2015


This kind of cleanup script does not trigger dataflow progress.

On 5/28/2015 2:01 PM, Yadu Nand Babuji wrote:
> Hi Justin, Tim,
>
> Is there any method available to execute a task per worker rank at the
> end of the run ?
> I remember that a cleanup script that could be specified using an
> environment variable that
> would be executed as the workers finalized. I'm trying to use node local
> memory by aggregating
> results from computation in tcl variables, but I do not know how I could
> specify a leaf app that
> would return the results from the tcl-variables per rank at the
> finalizing stage.
>
> Here's what the leaf-code that accumulates in a tcl variable, and this
> appears to work:
>
> @dispatch=WORKER
> (float a) accum (float s) "turbine" "0.0" [
> """
> if ![info exists var] {set var 0}
> set var [expr {$var + <<s>>}]
> set <<a>> $var
> """
> ];
>
> This came from the different approaches I tried to improve the
> performance of the benchmarking code
> Ioan's students were using. The bottleneck there was writes to an array,
> which is what I'm trying to avoid
> entirely by putting results into on-node memory and then doing a final
> aggregate over all ranks. But
> ensuring that the aggregation over ranks happen after all other work has
> completed without specifying
> any data dependencies is proving to be a hard problem
>
> Thanks,
> Yadu
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel

-- 
Justin M Wozniak




More information about the Swift-devel mailing list