[Swift-devel] Placing and recovering results from Tcl memory on worker ranks
Yadu Nand Babuji
yadunand at uchicago.edu
Thu May 28 14:01:41 CDT 2015
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
More information about the Swift-devel
mailing list