Enable Multi-Core Processing Across All Operating Systems #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that when running the dGen model on a Windows 10 device, specifying multiple cores in
config.py
did not result in multi-core utilization; only one CPU core was being used. Upon investigating, I found several checks forif 'ix' not in os.name:
indgen_model.py
andagents.py
. These checks set the number of cores toNone
and usedcf.ThreadPoolExecutor
for non-'ix' operating systems, whilecf.ProcessPoolExecutor
was used for 'ix' operating systems.To address this, I made the following changes:
if
clauses that checked for the OS name.config.py
is respected.cf.ProcessPoolExecutor
as the default executor regardless of the operating system.These changes have significantly improved performance in my tests. The model now spawns processes equal to the number of cores specified in
config.py
, resulting in computation times that are approximately divided by the number of cores used.Please review these changes and consider merging them if they do not cause any issues.