From: John D'Errico on
Luna Moon <lunamoonmoon(a)gmail.com> wrote in message <a5d020f6-0e41-4a57-897d-68fecbd8e622(a)a1g2000vbl.googlegroups.com>...
> Hi all,
>
> I am currently having XP 32bit version.
>
> Does moving to Vista 64 bit or Windows 7 64 bit help permanently
> eliminate the out-of-memory issue?
>
> (of course I will have to order a 64bit version of Matlab)

No. It will not do so, because you will not
have an infinite amount of memory, and you
will just be encouraged to try to solve larger
problems.

No matter what you will have a finite amount
of real memory, perhaps a few gigabytes,
perhaps a dozen or so. So the actual REAL
memory that you will have will go up by a
factor of 2 to 10 or so.

At the same time, your computer will have
virtual memory that it can address. But that
virtual memory access is SLOW. Slow as a
snail in the middle of winter. Virtual memory
uses hard disk storage, which is painfully
slow compared to RAM access.

So for those of you who expect to suddenly
see all of their problems solved because of
64 bit addressing, don't get your hopes up
too high.

John
From: Mark Shore on
Luna Moon <lunamoonmoon(a)gmail.com> wrote in message <a5d020f6-0e41-4a57-897d-68fecbd8e622(a)a1g2000vbl.googlegroups.com>...
> Hi all,
>
> I am currently having XP 32bit version.
>
> Does moving to Vista 64 bit or Windows 7 64 bit help permanently
> eliminate the out-of-memory issue?
>
> (of course I will have to order a 64bit version of Matlab)
>
> Thanks!

"Permanently eliminate"? If only things were so easy...

Take a Win XP x32 OS computer equipped with 4 GB of RAM. The RAM in the video card will reduce the available system RAM since these memory addresses are partly mapped out of the ~4 GB (2^32) available space. The operating system itself will take about 1 GB of RAM, leaving most applications with 1-2 GB maximum available RAM. In fact in Win XP all other processes and applications are limited to a combined 2 GB address space unless a switch is set in the boot.ini file to change this to 3 GB. In my own experience this has rarely worked and causes some computers to fail to boot.

Change to Windows Vista or 7 x64 and the 2^32 address limit is gone, and if you've got the budget, Win 7 x64 will handle up to 96 GB of RAM. I have a dual-boot computer with more modest 8 GB RAM, and here are the comparative numbers:

Win XP x32
>> memory
Maximum possible array: 1262 MB (1.324e+009 bytes) *
Memory available for all arrays: 1434 MB (1.503e+009 bytes) **
Memory used by MATLAB: 238 MB (2.499e+008 bytes)
Physical Memory (RAM): 3572 MB (3.745e+009 bytes)

* Limited by contiguous virtual address space available.
** Limited by virtual address space available.


Win 7 x64
>> memory
Maximum possible array: 14692 MB (1.541e+010 bytes) *
Memory available for all arrays: 14692 MB (1.541e+010 bytes) *
Memory used by MATLAB: 453 MB (4.745e+008 bytes)
Physical Memory (RAM): 8180 MB (8.577e+009 bytes)

* Limited by System Memory (physical + swap file) available.

As John notes, a little more than half of the 14692 MB shown above will be swap space on the hard drive, and much slower. But the change to a 64-bit OS and a doubling of RAM has increased the usable high speed memory available to MATLAB from 1434 MB to about 7000 MB. Not bad.

For arbitrarily large problems of course, it would be necessary to break things into chunks, or write smarter code.