Multiple threads [message #17130] |
Thu, 16 September 1999 00:00  |
Dave Brennan
Messages: 28 Registered: December 1998
|
Junior Member |
|
|
My department is thinking of buying a new Sun system. We are considering
buying a dual processor system. However, to take full advantage of this
I need software that can be run as a multithread.
1. Can IDl be written to take advantage of multithread processing?
2. If so, how is this accomplished, i.e does anyone have any example
code?
3. Can IDL's slicer3 use multithreads when rendering?
Thank in advance
Dave Brennan
|
|
|
Re: Multiple threads [message #17220 is a reply to message #17130] |
Tue, 21 September 1999 00:00  |
Dave Brennan
Messages: 28 Registered: December 1998
|
Junior Member |
|
|
Thanks for the replys.
However, from what has been said, I don't think at the moment it is worth
getting a dual processor system (why pay more and have more hassle for little
performance improvement!)
I find it a bit strange though that IDL can't be implimented in this way. If
IDl could be run with multithreads it would enable some of the IDL processing
functions such as rendering and projections to be done on the fly (our
radiologists would like that!) Is this a possible enhancement of IDL in the
future, or will pigs fly first??
Cheers
Dave Brennan
|
|
|
Re: Multiple threads [message #17227 is a reply to message #17130] |
Mon, 20 September 1999 00:00  |
Liam Gumley
Messages: 473 Registered: November 1994
|
Senior Member |
|
|
David Brennan wrote:
> My department is thinking of buying a new Sun system. We are considering
> buying a dual processor system. However, to take full advantage of this
> I need software that can be run as a multithread.
>
> 1. Can IDl be written to take advantage of multithread processing?
> 2. If so, how is this accomplished, i.e does anyone have any example
> code?
> 3. Can IDL's slicer3 use multithreads when rendering?
I can give you the name of someone who has written a set of IDL callable
wrappers for the PVM library. Let me know if you're interested.
Cheers,
Liam.
--
Liam E. Gumley
Space Science and Engineering Center, UW-Madison
http://cimss.ssec.wisc.edu/~gumley
|
|
|
Re: Multiple threads [message #17229 is a reply to message #17130] |
Mon, 20 September 1999 00:00  |
Karl Young
Messages: 31 Registered: April 1996
|
Member |
|
|
Hi David,
Ha ha ha ha, ho ho ho, hee hee hee !
Sorry if that sounded flippant. We have an 8 processor Sun space heater (at
least that's the function of 7 processors when we use IDL). The answers to
1. and 2. are basically when hell freezes over. I don't know the answer to
3.
because I don't use slicer3 but based on the answers to 1. and 2. I'm sure
you
could make an educated guess. Since the budget patrol would simply not
find this an acceptable use of such expensive hardware we've had to write
most stuff in C and C++ (using threads and the MPI library) that is called
by IDL. The only reason we use IDL on that machine is because nobody
has time to rewrite our interface code.
If your interested in how we've implemented this stuff send me some email.
> My department is thinking of buying a new Sun system. We are considering
> buying a dual processor system. However, to take full advantage of this
> I need software that can be run as a multithread.
>
> 1. Can IDl be written to take advantage of multithread processing?
> 2. If so, how is this accomplished, i.e does anyone have any example
> code?
> 3. Can IDL's slicer3 use multithreads when rendering?
>
> Thank in advance
>
> Dave Brennan
-- KY
Karl Young
UCSF,VA Medical Center
MRS Unit (114M)
4150 Clement Street
San Francisco, CA 94121
Email: kyoung@itsa.ucsf.edu
Phone: (415) 750-2158 lab
(415) 750-9463 home
FAX: (415) 668-2864
|
|
|
Re: Multiple threads [message #17265 is a reply to message #17130] |
Thu, 16 September 1999 00:00  |
davidf
Messages: 2866 Registered: September 1996
|
Senior Member |
|
|
David Brennan (9147261b@clinmed.gla.ac.uk) writes:
> My department is thinking of buying a new Sun system. We are considering
> buying a dual processor system. However, to take full advantage of this
> I need software that can be run as a multithread.
>
> 1. Can IDl be written to take advantage of multithread processing?
No.
> 2. If so, how is this accomplished, i.e does anyone have any example
> code?
Can't.
> 3. Can IDL's slicer3 use multithreads when rendering?
No. It uses direct graphics.
The *only* thing that can take advantage of multi-processors in
IDL is rendering of object volumes via the HINTS keyword. Nothing
else, sorry. :-(
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
|
|
|
Re: Multiple threads [message #17267 is a reply to message #17130] |
Thu, 16 September 1999 00:00  |
korpela
Messages: 59 Registered: September 1993
|
Member |
|
|
In article <37E0FE2C.79095DC9@clinmed.gla.ac.uk>,
David Brennan <9147261b@clinmed.gla.ac.uk> wrote:
> My department is thinking of buying a new Sun system. We are considering
> buying a dual processor system. However, to take full advantage of this
> I need software that can be run as a multithread.
>
> 1. Can IDl be written to take advantage of multithread processing?
IDL is capable of some multiprocessing will appropriate call_externals
and link_images, but not multithreading. I've written some multiprocessing
code, but haven't ever published it, nor is it in a publishable state.
In order to do usable work you need the shared memory capabilities of
my VARRAY package (available at my web site). If you wan't I'll put my
routines somewhere where you can get to them. I haven't yet gotten any
good iplementations of IPCs beyond shared memory.
Here's a simple multiprocessing routine as an example of what I've done....
------------------------------------------------------------ ---------
function test
; create a 1024x1024 shared float array
a=VARRAY(float(0),1024,1024,/writable)
; process the [*,0:511] elements in the background
; process the [*,512:1023] elements in the foreground
if PROC_FORK() eq 0 then begin
a[*,0:511]=randomn(seed,1024,512)
PROC_EXIT
endif else begin
a[*,512:1023]=randomu(seed,1024,512)
PROC_WAIT
endelse
return,a
end
------------------------------------------------------------ -----------
> 2. If so, how is this accomplished, i.e does anyone have any example
> code?
Specialized libraries call the system code you need to make new processes.
Eric
--
Eric Korpela | An object at rest can never be
korpela@ssl.berkeley.edu | stopped.
<a href="http://sag-www.ssl.berkeley.edu/~korpela">Click for home page.</a>
|
|
|