fprintf(fplog, "\n");
fprintf(stderr, "\n");
- if (lossFraction >= DD_PERF_LOSS_WARN)
+ if ((lossFraction >= DD_PERF_LOSS_WARN) && (dd->comm->dlbState != DlbState::offTemporarilyLocked))
{
std::string message = gmx::formatString(
"NOTE: %.1f %% of the available CPU time was lost due to load imbalance\n"
lossFraction * 100);
bool hadSuggestion = false;
- if (!isDlbOn(comm))
+ if (dd->comm->dlbState == DlbState::offUser)
{
- message += " You might want to use dynamic load balancing (option -dlb.)\n";
+ message += " You might want to allow dynamic load balancing (option -dlb auto.)\n";
+ hadSuggestion = true;
+ }
+ else if (dd->comm->dlbState == DlbState::offCanTurnOn)
+ {
+ message +=
+ " Dynamic load balancing was automatically disabled, but it might be "
+ "beneficial to manually tuning it on (option -dlb on.)\n";
hadSuggestion = true;
}
else if (dlbWasLimited)
" considerable inhomogeneity in the simulated system.",
hadSuggestion ? "also " : "");
-
fprintf(fplog, "%s\n", message.c_str());
fprintf(stderr, "%s\n", message.c_str());
}