Re: Maximum memory accessible by Mathematica 6.0 in Windows XP

*To*: mathgroup at smc.vnet.net*Subject*: [mg77957] Re: Maximum memory accessible by Mathematica 6.0 in Windows XP*From*: Roland Franzius <roland.franzius at uos.de>*Date*: Wed, 20 Jun 2007 05:40:15 -0400 (EDT)*Organization*: Universitaet Hannover*References*: <f4lbl8$g38$1@smc.vnet.net>

L. Dwynn Lafleur schrieb: > Computing Platform: > Dell PC with Intel Dual Core CPU @ 2.66 GHz > 4 GB RAM installed > Windows XP SP2 (Media Center Edition) > > ------------------------------------------- > > As I understand it (see, e.g., > http://msdn2.microsoft.com/en-us/library/aa366778.aspx), a single > application in Windows XP can use to 2 GB of memory (RAM + virtual). > However, I have not been able get Mathematica 6.0 to use 2 GB, although > I have been able to do so with other programs, e.g., Python. With only > background processes and Windows Task Manager (WTM) running, I load > Python 2.5.1 through its interactive IDLE shell. After entering the > command "nn=range(129000000)", the Python shell remains loaded and > functional, and the Process tab in WTM shows the pythonw.exe process > using 2,053,644 KB of memory. > > OTOH, again with only background processes and WTM running, suppose I > open Mathematica 6.0 instead of Python. If I execute the line > > nn = Range[312000000]; MaxMemoryUsed[]/(1024.0*1024.0) > > the output is "1195.67"; i.e., Mathematica reports about 1.2 GB of > memory being used, and the kernel is still loaded and functional. At > that point WTM shows the following memory usages: > > MathKernel.exe process ... 1,238,728 KB > Mathematica.exe process .. 24,712 KB, > Total Commit Charge ...... 1,528,652 KB (WTM > Performance tab) > > (Why a Mathematica list of 312 million integers should require far less > memory than a Python list of 129 million integers is beside the point > here; I am only interested in the total memory accessed by the two > programs.) > > If the Range argument in the above Mathematica command were larger by > a fraction of a percent, I would expect only a small increase in the > reported memory usage. Specifically, MathKernel.exe should still use > well under 2 GB and still be in functional state. However, when I quit > the Mathematica kernel, then execute > > nn = Range[313000000];MaxMemoryUsed[]/(1024.0*1024.0) > > only this message appears: > > ------------------------- > No more memory available. > Mathematica kernel has shut down. > Try quitting other applications and then retry. > ------------------------ > > (WTM verifies that MathKernel.exe is indeed no longer running and that > Mathematica.exe is using 25,448 KB of memory.) > > Am I misunderstanding what is going on? Shouldn't I be able to get > Mathematica to use more than about 1.2 GB of memory in Windows XP? Is > Mathematica self-limiting the amount of memory it requests from Windows? > I have made some experiments with Mathematica 6.0 executing q=Table[i^2,{i,1,10^8}] under Windows XP SP2 with 500 MB Ram Centrino system looking at the system perfomance tag of the Windows task manager. The system crashes at exactly 2.06 GB total memory. I have set the /3GB switch in boot.ini, expanding the 32bit virtual adress space to unsigned 4GB for programs able to handle unsigned address pointers. Now Mathematica crashes at 2.06 GB again but this time killing the Mathematica GUI too. An error message is issued that the Java runtime cannot access the interrupt Alt . for aborting a calculation. So my conclusion is Mathematica 6.0 does not utilize on 32bit Windows machines with more than 2GB 32-bit signed address space and even produces adress mapping errors in error handling for formally negative adresses. -- Roland Franzius