[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: about memory
Hong Gang wrote:
> The following is the error given by my program.
> % Unable to allocate memory: to make array.
> Cannot allocate memory
>
> I have some large arrays as Tb(632*664, 880). I do not know what is the
> matter with the program. Can anyone give me some idea?
Usually this means that IDL has run out of memory. An array of dimensions
419648 (632*664) by 880 would have 369290240 elements. If it is of type
FLOAT, then each element takes up 4 bytes, coming to a grand total of
almost 1.4 Gigabyte. Do you have that much memory?
It might be possible to increase the amount of virtual memory (= swap space
on disk) available, but swapping memory from disk invariably slows down
programs quite a lot. A much better approach would be to rewrite your program
so that it needs less memory, e.g. by processing the data in smaller blocks.
hope this helps,
Jaco