[CPMD-list] ALLOCATION OF MEMORY FAILED
Robert Williams
bob at bob.usuhs.mil
Fri Jan 14 17:16:40 CET 2005
Dear list,
This problem on 32 bit intel is biting me again,
so I've put together some information that may help others.
I, however, still need some help with this,
since I think I have access to more memory than
CPMD is able to allocate.
I can allocate at least 2.5 Gbytes with a simple
ifc fortran program (see below),
but (I think) CPMD is failing
to allocate memory that is below 1.7 Gbytes.
Please check my logs below and correct me if I'm wrong.
------------------------------------------------
This issue with 32 bit processors is cropping up
more frequently recently in scientific computing.
Documentation about it on the web has been sparse,
so I've gathered a few links that address this
problem. The best is
http://www.spack.org/wiki/LinuxRamLimits
where it is made more or less clear that there
is a hard and fast limit of around 3 Gbytes
or a little less for
a single process on 32 bit intel.
Also good, including a simple fortran program to
test memory access:
http://softwareforums.intel.com/ids/board/message?board.id=11&message.id=100
--------------------------------------------------------------
So...my problem, if I can access 2.5 Gbytes with other programs,
why this on a serial cpmd compiled with ifort 8.1:
*** RGGEN| THE NEW SIZE OF THE PROGRAM IS 92896/ 111440 kBYTES ***
*** RINFORCE| THE NEW SIZE OF THE PROGRAM IS 271112/ 290060 kBYTES ***
*** FFTPRP| THE NEW SIZE OF THE PROGRAM IS 482992/ 500276 kBYTES ***
...
****************************************************************
PROCESSOR 0 ALLOCATION OF 146341736 WORDS OF MEMORY FAILED
****************************************************************
*** MEMORY| THE NEW SIZE OF THE PROGRAM IS 506240/1669568 kBYTES ***
...
[PEAK NUMBER 54] PEAK MEMORY 210876035 = 1687.0 MBytes
top reports:
Mem: 3628760k total, 3116784k used, 511976k free, 2668k buffers
Swap: 5040228k total, 4k used, 5040224k free, 2945044k cached
[root at linux1 linux-2.4.21]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 327680
cpu time (seconds, -t) unlimited
max user processes (-u) 28657
virtual memory (kbytes, -v) unlimited
The memtest program to test how much memory can be allocated:
[bob at linux1 aaa_ap]$ ./memtest
A( 1 ): ok - memory allocated (GB) = 0.2500000
B( 1 ): ok - memory allocated (GB) = 0.5000000
C( 1 ): ok - memory allocated (GB) = 0.7500000
A( 2 ): ok - memory allocated (GB) = 1.000000
B( 2 ): ok - memory allocated (GB) = 1.250000
C( 2 ): ok - memory allocated (GB) = 1.500000
A( 3 ): ok - memory allocated (GB) = 1.750000
B( 3 ): ok - memory allocated (GB) = 2.000000
C( 3 ): ok - memory allocated (GB) = 2.250000
A( 4 ): ok - memory allocated (GB) = 2.500000
Allocation of B( 4 ) failed with status= 41
Thanks in
--
Dr. Robert Williams
Dept. of Biomedical Informatics
Uniformed Services University
301-295-3568
More information about the CPMD-list
mailing list