How to Set Size of Global Array?


Just Got Here
Hi all,

I got the following GA error when doing EOMEA-CCSD calculation. It seems my available GA space is not large enough. Is there a way to change the size of the available GA space?

Thanks,
Yuan


Parallel file system coherency ......... OK

Fock matrix recomputed
1-e file size = 147456
1-e file name = ./b4cho-6s6p6d.f1
Cpu & wall time / sec 39.5 39.5
4-electron integrals stored in orbital form
1: WARNING:armci_set_mem_offset: offset changed 613451268096 to 613450219520
2: WARNING:armci_set_mem_offset: offset changed 289350471680 to 289349423104
3: WARNING:armci_set_mem_offset: offset changed 449792598016 to 449791549440
4: WARNING:armci_set_mem_offset: offset changed 752342880256 to 752341831680
5: WARNING:armci_set_mem_offset: offset changed -72531296256 to -72532344832
6: WARNING:armci_set_mem_offset: offset changed 70680068096 to 70679019520

v2    file size   =       3160356621
4-index algorithm nr. 15 is used
imaxsize = 40
imaxsize ichop = 0
available GA memory 7324899752 bytes
available GA memory 7324920008 bytes
tce_gacreate: failed ga_create size/nproc bytes 8557730064
------------------------------------------------------------------------

Forum Regular
See
http://nwchemgit.github.io/index.php/Release66:Top-level#MEMORY
and
http://nwchemgit.github.io/index.php/Release66:TCE#Memory_considerations

Just Got Here


Thanks. Still don't understand where global array is. Does it use the space in "global" when I'm allocating the memory, or somewhere else? So when I'm setting memory like "memory stack ** heap ** global ** mb", am I telling the program some information about global array allocation? From the quote above, how to allocate global array seems depending on the machines architecture --- distributed memory or shared memory.

Forum Regular
Yes, in the memory allocation global refers to the memory available to global arrays. So an allocation such as

memory stack 500 mb heap 100 mb global 1300 mb

would allocate 1300 MB to global arrays. As far as the dependence on machine architecture, you do not need to worry about it. If you are on a shared memory machine, then you will get what you specify. If you are on a distributed memory machine, the code will essentially ignore the partitioning between memory segments (the total memory allocated is all that is really important in this case) and global arrays can use as much memory as is not in use by stack/heap.

Just Got Here
Thanks!


Forum >> NWChem's corner >> Running NWChem