title: Multiprocessing: AMD 32-core processor: not using all cores
body: <p>Specs:
  Win 10
  32GB Ram
  AMD Threadripper 2990WX 32-core processor
  Python 3.8.3</p>
  
  <p>I'm having trouble figuring out why my python script that I wrote using python's multiprocessing library is not taking advantage of all 32-cores of my AMD Threadripper 2990WX processor.</p>
  
  <p>It only uses about 16 of them.  I deliberately set the number of processes to 30 cores instead of 32 because it would run into problems if I set it to the full 32.  But still it would only use 16 cores.</p>
  
  <p>I have 32GB of RAM.  Is this a RAM issue?  IF I double my RAM will it then use all the cores I assigned?</p>
  
  <p>Hypothetical: say for one worker to run the script takes 2GB, then if I want 30 workers to run simultaneously, that's a total of 60GB of RAM needed, aside from the RAM needed to run the computer itself.</p>
  
  <p>Is this correct logic?  The script each worker needs to run involves loading the same 800MB file and manipulating it.  So I'm guessing the RAM needed to run the script is at least 1GB per worker. </p>
  
  <p>Even if this were the case, I thought the computer would be better at dividing the work among all processors even if RAM were short.  </p>
  
  <p>So is this a RAM problem or something more serious and complicated?  </p>
  
  <p>[I tried Core Prio, but that didn't help.  I read somewhere the 2990WX had problems optimizing scheduling in a Windows environment.]</p>
  
  <p>So I ran the same script on my intel computer and saw much better results.
  intel specs:
  6-core i7-8700K processor
  16GB RAM
  Win 10</p>
  
  <p>It used all cores assigned and had a consistent load of 100%.  </p>
  
  <p>I went back to my AMD setup and set the number of workers to 5, but still the load was never above 50% each worker.  I have plenty of RAM to run 5 processes at the same time for sure so I don't think it's a RAM issue.  Why is it still running at such a low load?  I am so lost and would love any guidance thank you!</p>
  
  <p>UPDATE:  I turned on XMP for my RAM and turned on Local Dynamic Mode to improve scheduling.  I now see better loads (70-100% per processor) but still generally only 16 cores are being used.</p>
  
  <p>UPDATE 2: I also tried setting the number of workers to 60 and it still came up with the same results. half of the processors were running 50-100% loads while the remainder were 0-2%.</p>
  
  <p>Is this a power/temp issue?  It says it's PPT is 40% of 250W, limit set at 700W.  the temp is steady at 58 celsius.  Is it curbing the use of all processors because the temperature might go too high?  It's not even close to the 95 degree threshold tho.</p>