use num_threads instead of omp_set_num_threads

This commit is contained in:
Paul Leroy
2024-02-12 22:37:48 +01:00
parent d0d39a3c5e
commit be68cde7e3
7 changed files with 22 additions and 21 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ if (PLUGIN_STANDARD_3DMASC)
project( Q3DMASC_PLUGIN )
AddPlugin( NAME ${PROJECT_NAME} )
set(Q3DMASC_PLUGIN_VERSION "0.12")
set(Q3DMASC_PLUGIN_VERSION "0.12+")
include( CMakePolicies NO_POLICY_SCOPE )
+6 -4
View File
@@ -136,7 +136,10 @@ bool ContextBasedFeature::prepare( const CorePoints& corePoints,
if (!scaled() && !sfWasAlreadyExisting) //with 'kNN' neighbors, we can compute the values right away
{
unsigned pointCount = corePoints.size();
QString logMessage = QString("Computing %1 on cloud %2 with context cloud %3\n(core points: %4)").arg(typeStr).arg(corePoints.cloud->getName()).arg(cloud1Label).arg(pointCount);
QString logMessage = "Computing " + typeStr
+ " on cloud " + corePoints.cloud->getName() + " (" + QString::number(pointCount) + " points)"
+ " with context cloud " + cloud1Label
+ " (class " + QString::number(ctxClassLabel) + ")";
//first: look for the number of points in the relevent class
const ScalarType fClass = static_cast<ScalarType>(ctxClassLabel);
@@ -165,7 +168,7 @@ bool ContextBasedFeature::prepare( const CorePoints& corePoints,
}
//compute the octree
ccLog::Print(QString("Computing octree of class %1 points (%2 points)").arg(ctxClassLabel).arg(classCount));
ccLog::Print(QString("Computing octree of class %1 (%2 points)").arg(ctxClassLabel).arg(classCount));
ccOctree::Shared classOctree = classCloud.computeOctree(progressCb);
if (!classOctree)
{
@@ -191,8 +194,7 @@ bool ContextBasedFeature::prepare( const CorePoints& corePoints,
bool cancelled = false;
#ifndef _DEBUG
#if defined(_OPENMP)
omp_set_num_threads(std::max(1, omp_get_max_threads() - 2));
#pragma omp parallel for
#pragma omp parallel for num_threads(std::max(1, omp_get_max_threads() - 2))
#endif
#endif
for (int i = 0; i < static_cast<int>(pointCount); ++i)
+1 -2
View File
@@ -424,8 +424,7 @@ static bool ComputeMathOpWithNearestNeighbor( const CorePoints& corePoints,
error.clear();
#ifndef _DEBUG
#if defined(_OPENMP)
omp_set_num_threads(std::max(1, omp_get_max_threads() - 2));
#pragma omp parallel for
#pragma omp parallel for num_threads(std::max(1, omp_get_max_threads() - 2))
#endif
#endif
for (int i = 0; i < static_cast<int>(pointCount); ++i)
+1 -1
View File
@@ -372,7 +372,7 @@ void q3DMASCPlugin::doTrainAction()
masc::TrainParameters tempParams;
if (!masc::Tools::LoadTrainingFile(inputFilename, featuresTest, scalesTest, loadedCloudsTest, tempParams))
{
m_app->dispToConsole("Failed to load the training file (for test)", ccMainAppInterface::ERR_CONSOLE_MESSAGE);
m_app->dispToConsole("Failed to load the training file (for TEST)", ccMainAppInterface::ERR_CONSOLE_MESSAGE);
return;
}
}
+1 -2
View File
@@ -204,8 +204,7 @@ bool Classifier::classify( const Feature::Source::Set& featureSources,
int numberOfTrees = static_cast<int>(m_rtrees->getRoots().size());
#ifndef _DEBUG
#if defined(_OPENMP)
omp_set_num_threads(std::max(1, omp_get_max_threads() - 2));
#pragma omp parallel for
#pragma omp parallel for num_threads(std::max(1, omp_get_max_threads() - 2))
#endif
#endif
for (int i = 0; i < static_cast<int>(cloud->size()); ++i)
+8 -7
View File
@@ -1223,20 +1223,21 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features
unsigned char octreeLevel = octree->findBestLevelForAGivenNeighbourhoodSizeExtraction(largestRadius);
unsigned pointCount = corePoints.size();
QString logMessage = QString("Computing %1 features on cloud %2\n(core points: %3)").arg(fas.featureCount).arg(sourceCloud->getName()).arg(pointCount);
QString logMessage = QString("Computing %1 features on cloud %2 (%3 core points)").arg(fas.featureCount).arg(sourceCloud->getName()).arg(pointCount);
if (progressCb)
{
progressCb->setMethodTitle("Compute features");
progressCb->setInfo(qPrintable(logMessage));
}
ccLog::Print(logMessage);
ccLog::Print(logMessage + " , nb threads " + QString::number(omp_get_max_threads() - 2) + ", nb points " + QString::number(pointCount));
CCCoreLib::NormalizedProgress nProgress(progressCb, pointCount);
nProgress.reset();
QMutex mutex;
#ifndef _DEBUG
#if defined(_OPENMP)
omp_set_num_threads(std::max(1, omp_get_max_threads() - 2));
#pragma omp parallel for
#pragma omp parallel for num_threads(std::max(1, omp_get_max_threads() - 2))
#endif
#endif
for (int i = 0; i < static_cast<int>(pointCount); ++i)
@@ -1372,8 +1373,8 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features
{
break;
}
} //for each scale
} //for each scale
}
if (progressCb)
@@ -1385,15 +1386,15 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features
{
//process cancelled by the user
ccLog::Warning("Process cancelled");
errorStr = "Process cancelled";
errorStr = "Process cancelled, iteration " + QString::number(i);
success = false;
break;
}
}
} //for each point
} //for each cloud
}
for (const Feature::Shared& feature : features)