Page 1 of 1

Cannot allocate more than 4GB RAM per thread

Posted: 27 Nov 2018, 21:00
by esmuigors
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 59 times
test_Ea.txt
The output from 'dalton' script.
(1.57 KiB) Downloaded 60 times

Re: Cannot allocate more than 4GB RAM per thread

Posted: 28 Nov 2018, 10:46
by hjaaj
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

Re: Cannot allocate more than 4GB RAM per thread

Posted: 28 Nov 2018, 12:42
by esmuigors
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