TURBOMOLE Users Forum

Installation and usage of TURBOMOLE => Parallel Runs => Topic started by: 175116 on January 24, 2012, 06:10:21 PM

Title: TM memory allocation
Post by: 175116 on January 24, 2012, 06:10:21 PM
Hello,

I'm a bit confused about memory allocation in TM. For example, I have a computer with 8 cores and 16GB RAM total (i.e. 2GB/core). I run define module and set RI memory to, let say, 1500MB. I have two basic questions:

1) If I run sequential ridft on a single core, the job may take up to 1500MB for RI + some additional memory for other purposes. Thus the 2GB/core might be sufficient for the whole job, is that right? So I can run 8 jobs at a time...

2) If I run parallel version of ridft (MPI or Global arrays) on 4 cores, the 1500MB RI memory specified in the control file implies that each core may take up to 1500MB for RI (+ some additional memory), or all cores will share the 1500MB? In other words, the memory I allocate for RI within the control file is per core or total?

Thank you very much for elucidation.
Title: Re: TM memory allocation
Post by: antti_karttunen on January 24, 2012, 07:53:56 PM
Hi,

For the MPI version, the $ricore is per core, but actually only the master process uses this memory. So you can allocate the slave processes much less using the $ricore_slave keyword (I normally use $ricore_slave 1). So, in your case you could use 8 cores, $ricore 10000, and $ricore_slave 1 (for example). I don't quite remember how this was for the GA version since I have not been using that lately.

Best,
Antti