Author Topic: memory requirements for the ccsd(t)  (Read 5997 times)

marand

  • Full Member
  • ***
  • Posts: 26
  • Karma: +0/-0
memory requirements for the ccsd(t)
« on: October 15, 2013, 12:42:52 PM »
Dear users and developers!

I have a question concerning the memory needed to perform (preferably in the efficient way) ccsd(t) energy calculations.

I am using the SMP version of turbomole 6.5 on a single node with 48 cores and 248 gb of RAM (or alternatively, on the virtual-shared-memory architecture with 69 cores and 600 gb of RAM, part of which can be used to emulate the hard disc).

I am not using the RI option in the preceding SCF calculations, so I am not declaring any ricore memory, only the maxcore.

The system I am working on is the m-cyanoaniline (9 heavy atoms). The lecel of theory is ccsd(t)/aug-cc-pVDTZ (or VQZ). I have noticed that the triples require a very large amount of memory - I have to declare at least 7000mb of maxcore for the augTZ basis set for the calculations to complete. On the other hand, according to the manual, the estimated memory for such calculations ( O^2*N^2/(128*1024) ) does not exceed 1500mb.

Nonetheless, if I specify, say 2000mb of maxcore, I receive the following message:

 ========================
  internal module stack:
 ------------------------
    ricc2
    cc_solve_t0
    ccvecfun
    ccn7engine
 ========================

 Out of memory in ccn7engine!
 ricc2 ended abnormally

This would not be such a problem as I can specify large memory, but large maxcore values slow down the calculations and make them less efficient. Morover, the statistics I get from my server say that the calculations use less than 10% of the declared memory.

What am I doing wrong?
Thanks for any assistance.

Best regards
Marcin









uwe

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 560
  • Karma: +0/-0
Re: memory requirements for the ccsd(t)
« Reply #1 on: October 16, 2013, 11:54:21 AM »
Hello,

the triples part consists more or less mainly of linear algebra steps. Those are done with multi-threaded MKL routines from Intel in the parallel SMP version. MKL often need a lot of memory which comes in addition to the memory the ricc2 needs itself.

If you are going to use a lot of memory, please use the so called 'huge' version which is available for 64bit Linux. If it is not installed by default (there should be a binary called ricc2_omp_huge in $TURBODIR/bin/em64t-unknown-linux-gnu_smp), contact the Turbomole support to get your download account reactivated. The huge version can be found in a subdirectory called huge in your download area. This version also uses the 64bit integer MKL version, so using a lot of memory should not be a problem for CCSD(T).

Regards,

Uwe