Re: Memory management [message #332 is a reply to message #331] |
Fri, 12 June 1992 07:56  |
landsman
Messages: 93 Registered: August 1991
|
Member |
|
|
In article <12JUN199209141539@stars.gsfc.nasa.gov>, isaacman@stars.gsfc.nasa.gov (Subvert the Dominant Paradigm! (301) 513-7769) writes...
> There seems to be some peculiarity in the way IDL does its memory
> management in the TRANSPOSE function. Running on a VAXstation 3100/76,
> the following statements cause the process to hang:
>
> IDL> A = FINDGEN(3,200000)
> IDL> A = TRANSPOSE(A)
>
> The problem can be made to disappear as the arry size is made smaller,
> presumably depending on one's page file quota and so forth. (On our
> system, using A = FINDGEN(3,100000) works fine.)
>
I also have problems using TRANSPOSE with a 3 by 200000 array on both SUN
V2.3.1 and VAX V2.2.2. (Note that TRANSPOSE works properly for much larger
arrays if they are closer to being square, so, as Rich noted, the problem is not
one of simple virtual memory limits.)
Presumably, TRANSPOSE has been optimized for a near square array, but the
code should be fixed up so that it doesn't hang up an IDL session.
Meanwhile, the following IDL code accomplishes the TRANSPOSE fairly quickly:
a = findgen(3,200000)
b = fltarr(200000,3,/nozero)
for i=0,2 do b(0,i) = REFORM(a(i,*))
**********************************************
Wayne Landsman
landsman@stars.gsfc.nasa.gov
|
|
|