diff --git a/RTCP/Cobalt/CoInterface/src/CorrelatedData.cc b/RTCP/Cobalt/CoInterface/src/CorrelatedData.cc index c207e63c26040dd8a44573226f287f78e734cd77..093e8638049f0825dfb2baa3eea02095a2dad62b 100644 --- a/RTCP/Cobalt/CoInterface/src/CorrelatedData.cc +++ b/RTCP/Cobalt/CoInterface/src/CorrelatedData.cc @@ -75,7 +75,8 @@ namespace LOFAR [NR_POLARIZATIONS], itsAlignment, allocator, - true), + true, + false), itsNrBytesPerNrValidSamples(nrBytesPerNrValidSamples(maxNrValidSamples)) { init(nrChannels, allocator); @@ -130,26 +131,19 @@ namespace LOFAR case 4: itsNrValidSamples4.resize( boost::extents[itsNrBaselines][nrChannels], - itsAlignment, allocator, true); + itsAlignment, allocator, true, false); break; case 2: itsNrValidSamples2.resize( boost::extents[itsNrBaselines][nrChannels], - itsAlignment, allocator, true); + itsAlignment, allocator, true, false); break; case 1: itsNrValidSamples1.resize( boost::extents[itsNrBaselines][nrChannels], - itsAlignment, allocator, true); + itsAlignment, allocator, true, false); break; } - - // zero weights - for (size_t bl = 0; bl < itsNrBaselines; ++bl) { - for (size_t ch = 0; ch < nrChannels; ++ch) { - setNrValidSamples(bl, ch, 0); - } - } } diff --git a/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh b/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh index ab6decd8b21fd1683d5da5b5f2676f26791a48c4..68d89c7f543574e147dbe2543cb35ebae1512edc 100755 --- a/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh +++ b/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh @@ -243,7 +243,6 @@ fi SSH_USER_NAME=$(getkey Cobalt.OutputProc.userName $USER) SSH_PUBLIC_KEY=$(getkey Cobalt.OutputProc.sshPublicKey) SSH_PRIVATE_KEY=$(getkey Cobalt.OutputProc.sshPrivateKey) -OUTPUT_PROC_EXECUTABLE=$(getkey Cobalt.OutputProc.executable) OBSERVATIONID=$(getkey Observation.ObsID 0) read_cluster_model @@ -361,7 +360,7 @@ echo "[outputProc] pid file = $PID_LIST_FILE" touch $PID_LIST_FILE # Construct full command line for outputProc -OUTPUTPROC_CMDLINE="source $OUTPUTPROC_ROOT/lofarinit.sh; export QUEUE_PREFIX=$QUEUE_PREFIX LOFARENV=$LOFARENV; $OUTPUT_PROC_EXECUTABLE $OBSERVATIONID" +OUTPUTPROC_CMDLINE="source $OUTPUTPROC_ROOT/lofarinit.sh; export QUEUE_PREFIX=$QUEUE_PREFIX LOFARENV=$LOFARENV; numactl --cpunodebind=0 --preferred=0 outputProc $OBSERVATIONID" # Wrap command line with Docker if required if $DOCKER; then diff --git a/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc b/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc index 3e93b865c8171f86a3c1854aa06718f64675c7a8..ba8ca1431ef557fa53c46c45f5f57d26eb684b74 100644 --- a/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc +++ b/RTCP/Cobalt/OutputProc/src/GPUProcIO.cc @@ -101,11 +101,7 @@ bool process(Stream &controlStream) { bool success(true); - // obtain the parset but don't wait forever. Note that we do not know whether - // we're running in real time mode or not. - alarm(3600); Parset parset(&controlStream); - alarm(0); string myHostName = myHostname(false); @@ -127,6 +123,9 @@ bool process(Stream &controlStream) defaultOutputProcTimeout); setSelfDestructTimer(parset, outputProcTimeout); + } else { + // Kill any existing alarms + alarm(0); } // Send id string to the MAC Log Processor as context for further LOGs. diff --git a/RTCP/Cobalt/OutputProc/src/outputProc.cc b/RTCP/Cobalt/OutputProc/src/outputProc.cc index 8c62538b8605e15a0347647c9257f4e55971c89a..71b3ab32fb6e5585826708501ff354c737c4b9fa 100644 --- a/RTCP/Cobalt/OutputProc/src/outputProc.cc +++ b/RTCP/Cobalt/OutputProc/src/outputProc.cc @@ -24,6 +24,7 @@ #include <cstdio> // for setvbuf #include <unistd.h> #include <omp.h> +#include <time.h> #include <string> #include <stdexcept> #include <boost/format.hpp> @@ -119,6 +120,9 @@ int main(int argc, char *argv[]) OMPThread::init(); + // Prevent stalling in the PortBroker or the resulting connection from COBALT + alarm(3600); + PortBroker::createInstance(storageBrokerPort(observationID)); // retrieve control stream to receive the parset and report back