From ff567dbe71c5ae7686c5fd3e9acc5f8a1954f327 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Thu, 7 Sep 2023 14:34:30 +0200 Subject: [PATCH] CONFIG: adjust compile-time value of maxThreadFileBufferSize to 0 - consistent with etc/controlDict default STYLE: update banner message for collated --- etc/controlDict | 2 +- .../collatedFileOperation.C | 45 ++++++++++++------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/etc/controlDict b/etc/controlDict index fc3d73ae544..f084663716d 100644 --- a/etc/controlDict +++ b/etc/controlDict @@ -114,7 +114,7 @@ OptimisationSwitches // (sized with magnitude of value) is large enough to hold all // outstanding writes so will not try to initialise the Pstream with // threading support. - // Default: 1e9 + // Default: 0 maxThreadFileBufferSize 0; //- masterUncollated: non-blocking buffer size. diff --git a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C index 5bfe78a1f4a..bb0b861f955 100644 --- a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C +++ b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C @@ -59,7 +59,7 @@ namespace fileOperations float collatedFileOperation::maxThreadFileBufferSize ( - debug::floatOptimisationSwitch("maxThreadFileBufferSize", 1e9) + debug::floatOptimisationSwitch("maxThreadFileBufferSize", 0) ); registerOptSwitch ( @@ -90,26 +90,41 @@ void Foam::fileOperations::collatedFileOperation::printBanner DetailInfo << "I/O : " << this->type(); - if (maxThreadFileBufferSize == 0) - { - DetailInfo - << " [unthreaded] (maxThreadFileBufferSize = 0)." << nl - << " Writing may be slow for large file sizes." - << endl; - } - else + if (mag(maxThreadFileBufferSize) > 1) { + // FUTURE: deprecate or remove threading? DetailInfo << " [threaded] (maxThreadFileBufferSize = " << maxThreadFileBufferSize << ")." << nl << " Requires buffer large enough to collect all data" - " or thread support" << nl - << " enabled in MPI. If MPI thread support cannot be" - " enabled, deactivate" << nl - << " threading by setting maxThreadFileBufferSize" - " to 0 in" << nl + " or MPI thread support." << nl + << " To avoid MPI threading [slow], set" + " (maxThreadFileBufferSize = 0) in" << nl << " OpenFOAM etc/controlDict" << endl; } + else + { + DetailInfo + << " [unthreaded] (maxThreadFileBufferSize = 0)." << nl; + + if (mag(maxMasterFileBufferSize) < 1) + { + DetailInfo + << " With scheduled transfer" << nl; + } + else if (maxMasterFileBufferSize >= 1) + { + DetailInfo + << " With non-blocking transfer," + " buffer-size = " << maxMasterFileBufferSize << nl; + } + else + { + DetailInfo + << " With non-blocking transfer," + " minimal buffer size" << nl; + } + } if (withRanks) { @@ -455,7 +470,7 @@ bool Foam::fileOperations::collatedFileOperation::writeObject { // Re-check static maxThreadFileBufferSize variable to see // if needs to use threading - const bool useThread = (maxThreadFileBufferSize != 0); + const bool useThread = (mag(maxThreadFileBufferSize) > 1); if (debug) { -- GitLab