Commit summary from repository starlink
------------------------------------
(Tim Jenness) smurf: Ensure that WVM threads are split properly
100.0% applications/smurf/libsmf/
(Tim Jenness) smurf: Fix critical WVM indexing bug
100.0% applications/smurf/libsmf/
Commits from repository starlink
-----------------------------
commit b871a97cf4e70847992feb9774d7833cddf472b7
Author: Tim Jenness <[log in to unmask]>
Date: Fri Jun 29 14:45:56 2012 -0700
smurf: Ensure that WVM threads are split properly
There are a variable number of SCUBA-2 samples for every WVM
reading. In the past we naively split the time-series into equal
chunks even if that split WVM readings down the middle. This
had the disadvantage of calculating the same WVM measurement
multiple times whilst also giving an answer that changed depending
on the number of active threads. The reason for the latter being
that the airmass would be different at a different section of the
time slice but the WVM measurement is only valid for the start
of the value.
Now we scan through the WVM data looking for each new measurement
and then we decide where to split up the worker threads so that
they coincide with those boundaries. If there are fewer measurements
than workers we simply use fewer workers.
No attempt is made to correct for a phase shift in WVM_TIME
relative to RTS_END.
applications/smurf/libsmf/smf_calc_smoothedwvm.c | 165 +++++++++++++++++---
1 files changed, 141 insertions(+), 24 deletions(-)
commit 57e4b7bd41cd06b81d9ad3fdc29034d460041266
Author: Tim Jenness <[log in to unmask]>
Date: Fri Jun 29 08:34:44 2012 -0700
smurf: Fix critical WVM indexing bug
When the WVM calculation was rewritten to be multi-threaded
a couple of indexes remained at their original values of 0 and
nframes in loops. This wasn't really obvious in the test data
I was using and with only 4 cores but with 32 threads and
occassional glitches the WVM trends towards the value of the last
threads to complete.
applications/smurf/libsmf/smf_calc_smoothedwvm.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
|