Hi All,
I was wondering if anyone had any experience in running multiple instances of Stata on a Windows 2019 Server.
I am using an adapted version of a program I wrote a while ago called qsub, it does a similar thing to batcher, multishell, or parallel.
Basically, the program shell jobs new instances of Stata and runs them in parallel using winexec or shell.
The server i am using has 128 physical cores, split across 4 nodes with 300GB RAM.
I designed a simple stress test of drawing and adding random numbers, when i run this on one specific CPU it runs around 100% activity.
I initiate my qsub program and it starts spawning Stata's. However, after the first 10 instances have been spawned the spawning slows to a crawl and the CPU activity falls dramatically.
My original qsub program was only spawning to Node 0 and relied on windows to assign the processors and was using winexec to do the spawning.
the new qsub program uses shell and and the "start" command to distribute to different numa nodes and control the affinity of each of the CPU allocations specifically.
The lack of performance feels like windows server is throttling the distributions
The server has fair share switched off.
I have stressed tested the server using Prime95 which searches for primes. When i run this the server spins up and all CPUs are activated to 100% and RAM usage maxes out.
I understand hyperthreading wont help because there is only 1 floating point number per CPU.
The stress test utilises
so there isnt conflict or CPU switching.
I can see there was some discussion of something similar in 2020. I just wondered if it was resolved?
https://www.statalist.org/forums/for...erating-system
Alan Riley (StataCorp), Hua Peng (StataCorp) JanDitzen Oscar Ozfidan
Any help or suggestions would be greatly received.
thanks
Adrian
I was wondering if anyone had any experience in running multiple instances of Stata on a Windows 2019 Server.
I am using an adapted version of a program I wrote a while ago called qsub, it does a similar thing to batcher, multishell, or parallel.
Basically, the program shell jobs new instances of Stata and runs them in parallel using winexec or shell.
The server i am using has 128 physical cores, split across 4 nodes with 300GB RAM.
I designed a simple stress test of drawing and adding random numbers, when i run this on one specific CPU it runs around 100% activity.
I initiate my qsub program and it starts spawning Stata's. However, after the first 10 instances have been spawned the spawning slows to a crawl and the CPU activity falls dramatically.
My original qsub program was only spawning to Node 0 and relied on windows to assign the processors and was using winexec to do the spawning.
the new qsub program uses shell and and the "start" command to distribute to different numa nodes and control the affinity of each of the CPU allocations specifically.
Code:
if "`numa'"=="" { winexec `statadir' /e /q do "`jobdir'\\`nextjobname'" } else { affinitymask `processor' -1 ! start "Stata" `nodeopt' `group' `affinityopt' `s(mask)' /realtime /MIN /B "`statadir'" do "`jobdir'\\`nextjobname'" }
The lack of performance feels like windows server is throttling the distributions
The server has fair share switched off.
I have stressed tested the server using Prime95 which searches for primes. When i run this the server spins up and all CPUs are activated to 100% and RAM usage maxes out.
I understand hyperthreading wont help because there is only 1 floating point number per CPU.
The stress test utilises
Code:
set processors 1
I can see there was some discussion of something similar in 2020. I just wondered if it was resolved?
https://www.statalist.org/forums/for...erating-system
Alan Riley (StataCorp), Hua Peng (StataCorp) JanDitzen Oscar Ozfidan
Any help or suggestions would be greatly received.
thanks
Adrian
Comment