IDL asynchronous execution fails at >50 child processes [message #93423] |
Mon, 11 July 2016 02:47 |
trisb
Messages: 18 Registered: November 2010
|
Junior Member |
|
|
Hello,
I wonder if there are any other people out there running IDL on highly multi-core machines with parallelised code. When I upgraded to an 88 core machine (single node), I ran into the following odd problem.
Here is a very simple programme that starts n_proc IDL child processes and sends a command for asynchronous execution:
n_proc = 50
pp = objarr(n_proc)
for i=0,n_proc-1 do pp[i]=obj_new('IDL_IDLBridge',output='')
for i=0,n_proc-1 do begin & print,i & pp[i]->execute,'wait,30',/nowait & end for
With n_proc = 50 or lower, everything runs normal. However, if I choose n_proc = 51, the programme will halt when submitting job to process #50 with the error message
% IDL_IDLBRIDGE Error: Error executing asynchronous command.
What I found is the following: If n_proc = 50, then all 50 processes will run okay asynchronously. If n_proc = 51, then up to #49 will run ok. Here is a small table:
n_proc -- # up to which it runs ok
44 -- 44
50 -- 50
51 -- 49
52 -- 47
60 -- 29
So for each job above 50, it halts 2 earlier. I have no clue what could cause this. Any suggestions?
Cheers,
F.
|
|
|