remove the "multithreading" qmake CONFIG parameter since OMP does not work for the Jamulus server because of too much threading overhead

This commit is contained in:
Volker Fischer 2020-08-02 11:07:46 +02:00
parent f67dbd1290
commit 73ad939352
2 changed files with 0 additions and 20 deletions

View file

@ -6,17 +6,6 @@ contains(CONFIG, "noupcasename") {
TARGET = jamulus
}
# support multi-threading with OMP if requested
contains(CONFIG, "multithreading") {
unix {
message(The OpenMP multithreading is enabled.)
message(NOTE THAT THE OpenMP IMPLEMENTATION IS STILL EXPERIMENTAL AND MAY NOT BE STABLE.)
DEFINES += USE_OMP
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
}
}
CONFIG += qt \
thread \
release

View file

@ -992,15 +992,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE
vecChannelLevels );
}
#ifdef USE_OMP
// TODO This does not work as expected, the CPU is at high levels even if not much work is to be done. So we
// have an issue using OMP in the OnTimer() function. Even if #pragma omp parallel for is used on a trivial
// for loop for testing, still the CPU usage goes to very high values -> What is the cause of this issue?
// NOTE Most probably it is the overhead of threads creation/destruction which causes this effect.
// See https://software.intel.com/content/www/us/en/develop/articles/performance-obstacles-for-threading-how-do-they-affect-openmp-code.html
// "[...] overhead numbers are high enough that it doesnt make sense to thread that code. In those cases, were better off leaving the code in its original serial form."
# pragma omp parallel for
#endif
for ( int i = 0; i < iNumClients; i++ )
{
int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning