comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: IDL_IDLBridge limited to 4?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: IDL_IDLBridge limited to 4? [message #73394] Thu, 04 November 2010 12:30 Go to next message
Juggernaut is currently offline  Juggernaut
Messages: 83
Registered: June 2008
Member
On Nov 4, 12:14 pm, Donald Woodraska <don.woodra...@gmail.com> wrote:
> I've been using the IDL_IDLBridge to run tasks in parallel in the
> background. However, when I increase the number of IDL_IDLBridge
> objects beyond 4, they don't seem to do anything. Although they are
> given tasks, the linux top command doesn't show any increase in CPU
> usage. I've cranked it up from 4 to as many as 14 IDL_IDLBridge
> objects, but the CPU usage doesn't go beyond 400%.
>
> My box has dual quad cores with hyperthreading, so it looks like 16
> CPU cores are available. IDL recognizes all 16 in !CPU, but I can't
> seem to use them.
>
> IDL> help,!cpu,/str
> ** Structure !CPU, 6 tags, length=32, data length=32:
>    HW_VECTOR       LONG                 0
>    VECTOR_ENABLE   LONG                 0
>    HW_NCPU         LONG                16
>    TPOOL_NTHREADS  LONG                16
>    TPOOL_MIN_ELTS  LONG64                    100000
>    TPOOL_MAX_ELTS  LONG64                         0
>
> I've split my job into 4 pieces and run 4 separate IDL instances with
> 4 bridge objects each on 4 separate terminals. There has to be a
> better way.
>
> Is there some kind of an internal limit in IDL preventing me from
> using more than 4 bridge objects at the same time? Is there a startup
> parameter I need to change? I'm running version 7.0.8 (no DE) on
> Redhat 5.
>
> Thanks!

Are you using the NOWAIT keyword for asynchronous operation?
Re: IDL_IDLBridge limited to 4? [message #73505 is a reply to message #73394] Tue, 09 November 2010 10:26 Go to previous message
don.woodraska is currently offline  don.woodraska
Messages: 13
Registered: October 2005
Junior Member
> Are you using the NOWAIT keyword for asynchronous operation?

Yes. I first create an array of objects using a call to
OBJ_NEW('IDL_IDLBridge') for each index in the array.

I create an integer variable called threadcnt (unimaginative) to cycle
through all of the bridge objects to check if their status() is not
busy
if oBridgeArr[threadcnt]->Status() eq 0 then begin
...
oBridgeArr[threadcnt]->execute, cmdlist[i], /NOWAIT


If the /NOWAIT keyword was not set then I couldn't run more than 1 at
a time. By limiting the number of objects in the array I can see that
for one object I get 100% CPU usage, for 2 I get 200%, for 3 I get
300%, and for 4 I get 400%. For anything more than 4 I always get
400%. There is no difference from 4 all the way up to 14.

However, by running 4 separate IDL command-line sessions, I can use
all 1600% available (nearly).

I saw another post where someone tried using one IDL_IDLBridge object
to create a bunch of other IDL_IDLBridge objects. I haven't tried
that, but even if that works, it's just a workaround.

Has anyone else tried to use more than 4 IDL_IDLBridges simultaneously?
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: IDL 8.0.1 pdf
Next Topic: modify the attribute value within a tag container

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 15:26:44 PDT 2025

Total time taken to generate the page: 1.35894 seconds