Quick Sign In:  

Forum: Wishes and new features

Topic: Configurable and automatically scaled degree of parallelism for batch processing

This topic is old and might contain outdated or incorrect information.

At the moment there seems to be a hard-coded limit of 10 items processed at once when doing batch analysis. High-end modern CPUs, particularly on professional workstations, have much greater core counts than this, and it would be nice to take advantage of that. I would like to see a config option in settings for selecting the level of batch operation parallelism manually. It would also probably make sense to set the default degree of parallelism to the number of physical cores (not SMT threads) on the system minus one, which allows for ideally scaled batch processing without starving the rest of the system of processing resources.

To save the devs some research, the physical core count can be found on Windows by calling GetLogicalProcessorInformationEx with the buffer set to NULL and the relationship type set to RelationProcessorCore (0), then dividing the returned length parameter by sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX). Each core's SMT status can be checked via the Processor.Flags field of each struct in the array (field is set to LTP_PC_SMT when SMT is enabled for that core) but that shouldn't be relevant here as we just want physical cores. On OS X you can just call sysctlbyname to query the value of "machdep.cpu.core_count".

Thank you.
 

Posted Mon 21 Oct 19 @ 9:17 pm


(Old topics and forums are automatically closed)