Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
use threads number setting in algorithms which support multiple CPUs
  • Loading branch information
alexbruy authored and nyalldawson committed Apr 24, 2023
1 parent 8011030 commit a44bfac
Show file tree
Hide file tree
Showing 18 changed files with 48 additions and 37 deletions.
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/TilesXYZ.py
Expand Up @@ -252,7 +252,7 @@ def generate(self, writer, parameters, context, feedback):
self.tile_format = self.formats[self.parameterAsEnum(parameters, self.TILE_FORMAT, context)]
self.quality = self.parameterAsInt(parameters, self.QUALITY, context)
self.metatilesize = self.parameterAsInt(parameters, self.METATILESIZE, context)
self.maxThreads = int(ProcessingConfig.getSetting(ProcessingConfig.MAX_THREADS))
self.maxThreads = context.numThreads()
try:
self.tile_width = self.parameterAsInt(parameters, self.TILE_WIDTH, context)
self.tile_height = self.parameterAsInt(parameters, self.TILE_HEIGHT, context)
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalboundary.cpp
Expand Up @@ -101,7 +101,7 @@ QStringList QgsPdalBoundaryAlgorithm::createArgumentLists( const QVariantMap &pa
}

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalbuildvpc.cpp
Expand Up @@ -115,7 +115,7 @@ QStringList QgsPdalBuildVpcAlgorithm::createArgumentLists( const QVariantMap &pa
args << "--overview";
}

applyThreadsParameter( args );
applyThreadsParameter( args, context );

for ( const QgsMapLayer *layer : std::as_const( layers ) )
{
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalclip.cpp
Expand Up @@ -90,7 +90,7 @@ QStringList QgsPdalClipAlgorithm::createArgumentLists( const QVariantMap &parame
};

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
Expand Up @@ -79,7 +79,7 @@ QStringList QgsPdalConvertFormatAlgorithm::createArgumentLists( const QVariantMa
QStringLiteral( "--output=%1" ).arg( outputFile )
};

applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdaldensity.cpp
Expand Up @@ -111,7 +111,7 @@ QStringList QgsPdalDensityAlgorithm::createArgumentLists( const QVariantMap &par
}

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
Expand Up @@ -114,7 +114,7 @@ QStringList QgsPdalExportRasterAlgorithm::createArgumentLists( const QVariantMap
}

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
Expand Up @@ -111,7 +111,7 @@ QStringList QgsPdalExportRasterTinAlgorithm::createArgumentLists( const QVariant
}

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
Expand Up @@ -91,7 +91,7 @@ QStringList QgsPdalExportVectorAlgorithm::createArgumentLists( const QVariantMap
}

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalfilter.cpp
Expand Up @@ -112,7 +112,7 @@ QStringList QgsPdalFilterAlgorithm::createArgumentLists( const QVariantMap &para
}
}

applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
Expand Up @@ -83,7 +83,7 @@ QStringList QgsPdalFixProjectionAlgorithm::createArgumentLists( const QVariantMa
QStringLiteral( "--assign-crs=%1" ).arg( crs.authid() )
};

applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalmerge.cpp
Expand Up @@ -84,7 +84,7 @@ QStringList QgsPdalMergeAlgorithm::createArgumentLists( const QVariantMap &param
<< QStringLiteral( "--output=%1" ).arg( outputFile );

applyCommonParameters( args, layers.at( 0 )->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );

for ( const QgsMapLayer *layer : std::as_const( layers ) )
{
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalreproject.cpp
Expand Up @@ -95,7 +95,7 @@ QStringList QgsPdalReprojectAlgorithm::createArgumentLists( const QVariantMap &p
args << QStringLiteral( "--transform-coord-op=%1" ).arg( coordOp );
}

applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdalthin.cpp
Expand Up @@ -89,7 +89,7 @@ QStringList QgsPdalThinAlgorithm::createArgumentLists( const QVariantMap &parame
};

applyCommonParameters( args, layer->crs(), parameters, context );
applyThreadsParameter( args );
applyThreadsParameter( args, context );
return args;
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgsalgorithmpdaltile.cpp
Expand Up @@ -101,7 +101,7 @@ QStringList QgsPdalTileAlgorithm::createArgumentLists( const QVariantMap &parame
args << QStringLiteral( "--a_srs=%1" ).arg( crs.authid() );
}

applyThreadsParameter( args );
applyThreadsParameter( args, context );

for ( const QgsMapLayer *layer : std::as_const( layers ) )
{
Expand Down
9 changes: 4 additions & 5 deletions src/analysis/processing/pdal/qgspdalalgorithmbase.cpp
Expand Up @@ -88,14 +88,13 @@ void QgsPdalAlgorithmBase::applyCommonParameters( QStringList &arguments, QgsCoo
}
}

void QgsPdalAlgorithmBase::applyThreadsParameter( QStringList &arguments )
void QgsPdalAlgorithmBase::applyThreadsParameter( QStringList &arguments, QgsProcessingContext &context )
{
QgsSettings settings;
int threads = settings.value( QStringLiteral( "/Processing/Configuration/MAX_THREADS" ), 0 ).toInt();
const int numThreads = context.numberOfThreads();

if ( threads )
if ( numThreads )
{
arguments << QStringLiteral( "--threads=%1" ).arg( threads );
arguments << QStringLiteral( "--threads=%1" ).arg( numThreads );
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/analysis/processing/pdal/qgspdalalgorithmbase.h
Expand Up @@ -55,7 +55,7 @@ class QgsPdalAlgorithmBase : public QgsProcessingAlgorithm
/**
* Adds "--threads"parameter to the pdal_wrench command line.
*/
void applyThreadsParameter( QStringList &arguments );
void applyThreadsParameter( QStringList &arguments, QgsProcessingContext &context );

/**
* "Fixes" output file name by changing suffix to .vpc if input file
Expand Down

0 comments on commit a44bfac

Please sign in to comment.