how to convert memory in bytes or words to memory in MA or GA ?


Clicked A Few Times
Dear Nwchem developers and users,

I need to run ccsd(t) calculations on large systems. But everytime I try I get an error message displaying the requested memory needed, but in GA or MA unity. Let's consider this case where I ask 1950mw, that is 15.6 GB of memory :



memory 1950 mw
...
         Memory information
------------------

heap = 511180801 doubles = 3900.0 Mbytes
stack = 511180801 doubles = 3900.0 Mbytes
global = 1022361600 doubles = 7800.0 Mbytes (distinct from heap & stack)
total = 2044723202 doubles = 15600.0 Mbytes
verify = yes
hardfail = no
...
...
The CCSD calculation needs at least          36980521600 of global GA memory per processor !                                 
The CCSD calculation needs at least 91875376 of local MA memory !



The problem is that I don't understand this GA or MA unity. I searched the documentation and read the section :
http://nwchemgit.github.io/index.php/Release62:Top-level#MEMORY

but, I still don't understand how to convert a memory in bytes or words, to GA or MA to fulfill my ccsd(t) calculation requirement. Could you please advise me ?

Thanks & Regards,
Edrisse

Forum Vet
Edrisse,
I have a few comments/suggestions (even though I have to admit that I don't completely understand your question):

  • you can input your memory line in mb, without having to do the word, bytes, etc ... conversion. Therefore, if the code is suggesting use that is needs a global memory of 36980521600 bytes, the you can ask for 36980521600/1024/1024=35267 mb

  • how many processors are you currently using for your calculation? NWChem is design to efficiently run on parallel computers, therefore, the more processors you use, the more likely is that the global memory requirement decreases

Clicked A Few Times
Thanks for your prompt answer Edoapra,
Sorry I forgot to specify I was using Nwchem 6.0 with 1 processor only,
I was just confused because the output number 36980521600 had no unity specified (bytes or words) and I did not understand either the meaning of GA.
But thanks to your answer, I realize now I need to ask 35.267 gb to run my ccsd(t) calculation.
Best Regards,
Edrisse

Clicked A Few Times
Dear Edoapra,
I met the memory requirement by asking 9000 mw (I'm still using 1 core only),
memory 9000 mw 
...
Memory information
------------------

heap = 2359296001 doubles = 18000.0 Mbytes
stack = 2359296001 doubles = 18000.0 Mbytes
global = 4718592000 doubles = 36000.0 Mbytes (distinct from heap & stack)
total = 9437184002 doubles = 72000.0 Mbytes
verify = yes
hardfail = no

but I get now a new error message :

Parallel integral file used  124082 records with       0 large values
Last System Error Message from Task 0:: Inappropriate ioctl for device
0:armci_malloc:malloc 1 failed: 915195912
(rank:0 hostname:c1bay7 pid:24175):ARMCI DASSERT fail. memory.c:PARMCI_Malloc():872 cond:0
0: ARMCI aborting 0 (0).
0: ARMCI aborting 0 (0).
system error message: Invalid argument

Could you please explain me how to overcome this error ?
Thanks & Regards,
Edrisse

Forum Vet
Edrisse,
As stated in my initial reply
http://nwchemgit.github.io/Special_AWCforum/sp/id3991
NWChem is designed to run on multiple processes, not on a single core.


Forum >> NWChem's corner >> Running NWChem