Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Can 32 bit Mathematica run program which requires more than 4GB RAM ?

share|improve this question

closed as unclear what you're asking by ubpdqn, Öskå, Jens, rasher, bobthechemist Jun 15 at 3:17

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

Then What is difference between 32-bit and 64-bit Mathematica? –  PhysicsCosmos Jun 14 at 10:23
At the risk appearing condescending, but have you considered switching to a 64bit environment? If your programmes are oftentimes computationally heavy (RAM, CPU/GPU) a 32bit operating system isn't going to cut it. Is there any real hardware issue keeping you from going 64bit? –  Sascha Jun 14 at 17:43

1 Answer 1

It depends. A single 32-bit Mathematica process certainly cannot access more than 4GB RAM (since the OS also reserves some memory in the virtual memory space, you actually can use even less). However if you have a 64-bit operating system, or a 32-bit operating system using PAE, then all processes together can use more than 4GB of memory (provided you've got installed as much, of course). If you do parallel computations, each Mathematica subkernel runs in a separate process, so while each individually cannot exceed the 4GB limit, all of them together can.

Of course if you use a non-PAE 32-bit operating system, then there's no way to access more than 4GB of memory, neither by Mathematica nor by any other program running on your system.

share|improve this answer
Do you know whether 32-bit Mathematica builds have PAE support, or not? I've never thought to test this. I would guess not, though. –  Oleksandr R. Jun 14 at 11:18
@OleksandrR.: As far as I understand, PAE is completely transparent to the application. That is, the application has no idea that its virtual memory (which is still 32 bits) is mapped to physical memory outside the 32 bit range. Only the operating system kernel (and, obviously, the CPU) needs to know anything about PAE. –  celtschk Jun 14 at 11:23
The virtual address space directly available to the application is limited to 32 bits (if not 31 bits as is usually the case on Windows--32 bit support needs to be indicated via the LARGEADDRESSAWARE flag for Windows applications), but programs can manipulate physical memory outside of their virtual address space using paging mechanisms available through the OS. If Mathematica implements this, perhaps it can use more than 4GB of RAM on 32-bit PAE systems. (This interface is called Address Windowing Extensions on Windows.) –  Oleksandr R. Jun 14 at 11:30
@Oleksandr Even if on a normal 32bit system without PAE it could still use more memory. This is a common misunderstanding, the physical address space is generally limited by nothing more than your hard disk space (well swap space). More physical memory only makes this is more efficient. –  Voo Jun 14 at 13:51
@Voo, no, on a 32 bit system the address spaces is limited to 32-bits per process. Virtual memory allows each process to have it's own full 32-bit address space, but no single process can address more then 32-bits worth of memory. –  Charles E. Grant Jun 14 at 17:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.