Cannot allocate more than 4GB RAM per thread

Find answers or ask questions regarding Dalton calculations.
Please upload an output file showing the problem, if applicable.
(It is not necessary to upload input files, they can be found in the output file.)

Post Reply
esmuigors
Posts: 43
Joined: 14 Nov 2018, 17:54
First name(s): Igors
Middle name(s): N.
Last name(s): Mihailovs
Affiliation: Institute of Solid State Physics, University of Latvia
Country: Latvia

Cannot allocate more than 4GB RAM per thread

Post by esmuigors » 27 Nov 2018, 21:00

Dear Dalton supporters,

I have just started using Dalton, and it is the first compiled computational code I use, so maybe my inconvenience is solely due to my inaptness. Sorry if the question is inappropriate.
I have trouble on some machines with memory allocation. both by using WRKMEM environmental variable and by using -mb option. On the cluster, I can allocate more than 4GB without any adventures in either way; on our lab machines (which are using more up-to-date system) I cannot, at least this is what I deduce from "dalton" script output:
DALTON: WRKMEM conversion error; WRKMEM = "2147483648 (here some space characters go, which are trimmed when I publish this post)"
DALTON: read as LMWORK = (here a lot of space characters go, which are trimmed when I publish this post) 11053

DALTON: default work memory size used. 64000000

DALTON: master work memory size also used for slaves. 64000000


Work memory size (LMWORK+2): 64000002 = 488.28 megabytes; node 1

1: Directories for basis set searches:
/home/igors/dadarba:/opt/dalton/basis
Work memory size (LMWORK+2): 64000002 = 488.28 megabytes; node 0

0: Directories for basis set searches:
/home/igors/dadarba:/opt/dalton/basis
If I set WRKMEM to precisely 4GB in words (536870912), it work fine and I can read in the script output that 4.00 GB are used. What information I should provide additionally and what can be the reason for this [mis?]behaviour?

As I was collecting the information on the issue, I noticed that on the cluster, I used 64-bit LAPACK and BLAS for compilation (located under /usr/lib64), but on lab machines, it was 32-bit (?) BLAS/LAPACK (located under /usr/lib). Is this the culprit for my issue?

Thank You very much in advance.

Information about the nodes is attached. Sorry, compilation command was the same for both cases but included only in labmachine_info.txt.
labmachine_info.txt
(1.45 KiB) Downloaded 61 times
cluster16_info.txt
(1.08 KiB) Downloaded 60 times
test_Ea.txt
The output from 'dalton' script.
(1.57 KiB) Downloaded 60 times

hjaaj
Posts: 326
Joined: 27 Jun 2013, 18:44
First name(s): Hans Jørgen
Middle name(s): Aagaard
Last name(s): Jensen
Affiliation: Universith of Southern Denmark
Country: Denmark

Re: Cannot allocate more than 4GB RAM per thread

Post by hjaaj » 28 Nov 2018, 10:46

With 32-bit integers you can max ask for 2**31-1 (because of the sign bit). You asked for 2**31. Try 2**31-1 = 2147483647
This corresponds to almost 16 GB

esmuigors
Posts: 43
Joined: 14 Nov 2018, 17:54
First name(s): Igors
Middle name(s): N.
Last name(s): Mihailovs
Affiliation: Institute of Solid State Physics, University of Latvia
Country: Latvia

Re: Cannot allocate more than 4GB RAM per thread

Post by esmuigors » 28 Nov 2018, 12:42

Thank You very much, prof. Jensen! At least on the cluster, the behaviour is just like You described, works with 2147483647 and does not with 2147483648.

Hence this my problem is solved.

With best wishes,
Igors

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests