Hello everyone,
Introduction
I’m trying to parallelize a for
loop in a large codebase called PyReason so that each iteration runs on a separate CPU core. I have 50 CPU cores at my disposal. The size of the loop depends on the number of nodes
from a graph that I input to the program. Currently this value is in the neighbourhood of 300,000
. I’m experiencing significant slowdowns, around 2x
, 3x
when running with parallel=True
. I’m trying to understand the possible reasons for this slowdown.
Questions
- When using
prange
on a for loop, does this assign every loop iteration to different available CPU cores? If not, how can I do this? - This is a link to the
for
loop in the codebase that I’m trying to parallelize. I’m calling different functions and adding elements to lists (threadsafe) in each iteration. I’m observing significant slowdown when runningprange
and I’m not sure why. I would assume that each iteration is on a separate CPU core so I should see speedups. (my knowledge about howprange
works is limited) - Is there a better way of parallelizing the above linked
for
loop on my CPU cores?
Thank you so much for your time,
Dyuman