From b27da4e3aadb3fffb30810b995a1d5611da1510c Mon Sep 17 00:00:00 2001 From: John Romein <romein@astron.nl> Date: Thu, 20 Jul 2006 12:53:24 +0000 Subject: [PATCH] BugID: 225 Enabled line buffering on BG/L. --- .../CS1/CS1_BGLProc/src/AH_BGL_Processing.cc | 14 ++++++++++++ .../CS1/CS1_BGLProc/src/WH_BGL_Processing.cc | 22 ++++++++++--------- .../CS1_BGLProc/test/tWH_BGL_Processing.cc | 18 ++++++++++----- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc index e7a7f284915..52d9cb43e2f 100644 --- a/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc +++ b/Appl/CEP/CS1/CS1_BGLProc/src/AH_BGL_Processing.cc @@ -45,6 +45,20 @@ namespace LOFAR { namespace CS1 { +#if defined HAVE_BGL + +static class BlueGeneL_Fixup { + public: + BlueGeneL_Fixup() { + // make std::clog line buffered + static char buffer[4096]; + setvbuf(stderr, buffer, _IOLBF, sizeof buffer); + } +} BlueGeneL_Fixup; + +#endif + + AH_BGL_Processing::AH_BGL_Processing() : itsWHs(0), itsSubbandStub(0), diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc index 6990c5c999e..542f129becb 100644 --- a/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc +++ b/Appl/CEP/CS1/CS1_BGLProc/src/WH_BGL_Processing.cc @@ -1203,7 +1203,7 @@ WH_BGL_Processing* WH_BGL_Processing::make(const string &name) void WH_BGL_Processing::preprocess() { #if defined HAVE_MPI - std::cerr << "node " << TH_MPI::getCurrentRank() << " filters subbands " << itsFirstSubband << " to " << itsLastSubband << " starting at " << itsCurrentSubband << " with " << itsSubbandIncrement << " as increment\n"; + std::clog << "node " << TH_MPI::getCurrentRank() << " filters subbands " << itsFirstSubband << " to " << itsLastSubband << " starting at " << itsCurrentSubband << " with " << itsSubbandIncrement << " as increment\n"; #endif #if defined HAVE_BGL && NR_SUBBAND_CHANNELS == 256 @@ -1743,25 +1743,27 @@ void WH_BGL_Processing::doCorrelate() void WH_BGL_Processing::process() { #if defined HAVE_MPI - std::cerr.precision(15); - std::cerr << "core " << TH_MPI::getCurrentRank() << ": start reading at " << MPI_Wtime() << '\n'; + std::clog.precision(15); + std::clog << "core " << TH_MPI::getCurrentRank() << ": start reading at " << MPI_Wtime() << '\n'; #endif static NSTimer readTimer("receive timer", true); readTimer.start(); getDataManager().readyWithInHolder(SUBBAND_CHANNEL); +#if defined SPARSE_FLAGS +#if defined HAVE_MPI + std::clog << "core " << TH_MPI::getCurrentRank() << ": start getting extra data at " << MPI_Wtime() << '\n'; +#endif + get_DH_Subband()->getExtraData(); +#endif readTimer.stop(); #if defined HAVE_MPI - std::cerr << "core " << TH_MPI::getCurrentRank() << ": start processing at " << MPI_Wtime() << '\n'; + std::clog << "core " << TH_MPI::getCurrentRank() << ": start processing at " << MPI_Wtime() << '\n'; #endif computeTimer.start(); -#if defined SPARSE_FLAGS - get_DH_Subband()->getExtraData(); -#endif - computeFlags(); #if NR_SUBBAND_CHANNELS > 1 @@ -1778,7 +1780,7 @@ void WH_BGL_Processing::process() computeTimer.stop(); #if defined HAVE_MPI - std::cerr << "core " << TH_MPI::getCurrentRank() << ": start writing at " << MPI_Wtime() << '\n'; + std::clog << "core " << TH_MPI::getCurrentRank() << ": start writing at " << MPI_Wtime() << '\n'; #endif static NSTimer writeTimer("send timer", true); @@ -1788,7 +1790,7 @@ void WH_BGL_Processing::process() writeTimer.stop(); #if defined HAVE_MPI - std::cerr << "core " << TH_MPI::getCurrentRank() << ": start idling at " << MPI_Wtime() << '\n'; + std::clog << "core " << TH_MPI::getCurrentRank() << ": start idling at " << MPI_Wtime() << '\n'; #endif } diff --git a/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc b/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc index 1587852fa73..ff82d8fc91c 100644 --- a/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc +++ b/Appl/CEP/CS1/CS1_BGLProc/test/tWH_BGL_Processing.cc @@ -65,7 +65,7 @@ void setSubbandTestPattern(WH_BGL_Processing &wh, double signalFrequency, double // distance of .25 labda to introduce a delay. Also, a few samples can be // flagged. - (std::cerr << "setSubbandTestPattern::setTestPattern() ... ").flush(); + std::cerr << "setSubbandTestPattern::setTestPattern() ... "; static NSTimer timer("setTestPattern", true); timer.start(); @@ -118,10 +118,10 @@ void setSubbandTestPattern(WH_BGL_Processing &wh, double signalFrequency, double dh->fillExtraData(); #endif - (std::cerr << "done.\n").flush(); + std::cerr << "done.\n"; #if defined WORDS_BIGENDIAN - (std::cerr << "swapBytes()\n").flush(); + std::cerr << "swapBytes()\n"; dh->swapBytes(); #endif @@ -220,17 +220,17 @@ void doWork() if ((env = getenv("NRUNS")) != 0) { nRuns = atoi(env); - std::cout << "setting nRuns to " << env << '\n'; + std::clog << "setting nRuns to " << env << '\n'; } if ((env = getenv("SIGNAL_FREQUENCY")) != 0) { signalFrequency = atof(env); - std::cout << "setting signal frequency to " << env << '\n'; + std::clog << "setting signal frequency to " << env << '\n'; } if ((env = getenv("BASE_FREQUENCY")) != 0) { baseFrequency = atof(env); - std::cout << "setting base frequency to " << env << '\n'; + std::clog << "setting base frequency to " << env << '\n'; } std::ostringstream baseFrequencyStr; @@ -265,6 +265,12 @@ int main (int argc, char **argv) { int retval = 0; +#if defined HAVE_BGL + // make std::clog line buffered + static char buffer[4096]; + setvbuf(stderr, buffer, _IOLBF, sizeof buffer); +#endif + #if defined HAVE_MPI TH_MPI::initMPI(argc, argv); #else -- GitLab