> < ^ Date: Fri, 14 Nov 2003 10:00:48 +0000
< ^ From: sal@dcs.st-and.ac.uk < >
> < ^ Subject: Re: Maximum allocable memory

Dear GAP Forum,

Roberto Radina asked:

What is the maximum amount of memory that can be allocated? There is any
difference between Unix and Windows?
In a Window2000 machine with 1.5 GB of main memory apparently I can only get
127MB (with -m 128M GAP says that can't extend the workspace).

Bill Alombert reported:

On a Linux machine with 768MB ofRAM, I can go as high as 891MB
(I have 1GB of swap).

With GAP 4.3, on a 32 but architecture, the only inherent limit is at about
2GB where some signed integer problems arise. This will be resolved in GAP
4.4. On a 64 bit architecture there is no realistic limit.

However, GAP needs the operating system to allocate it a contiguous memory
region for the workspace, and operating systems differ in their willingness
and ability to do this. I am not sure about Windows (very few developers use
Windows regularly, and we'd really recommend UNIX for large computations).

Others may know ways round the 128MB limit you seem to have hit.

On Linux, the first problem that arises is that, when you compile GAP to
dyanmically load shared libraries (the default) Linux seems to like to put
them at about the 1GB mark in the address space. This causes the limitation
which Bill Alombert reports. This can be avoided by compiling GAP to link
libraries statically (the -static option to gcc, other things for other
compilers). This allows up to 2GB (provided you have enough virtual memory) of
workspace, or close to 3GB with the development version of GAP.

Steve Linton	School of Computer Science  &
      Centre for Interdisciplinary Research in Computational Algebra
	     University of St Andrews 	 Tel   +44 (1334) 463269
http://www.dcs.st-and.ac.uk/~sal	 Fax   +44 (1334) 463278   

> < [top]