Re: direct vs. in-core calculations
> From chemistry-request(-(at)-)ccl.net Mon Apr 26 19:10:44 1993
> To: DSMITH(-(at)-)uoft02.utoledo.edu, chemistry(-(at)-)ccl.net
> Subject: Re: direct vs. in-core calculations
> Sender: chemistry-request(-(at)-)ccl.net
>
> Doug,
>
> If the memory is free and sufficient for the problem, you should
> always use INCORE (although I am not sure if this option is available
> on non-CRAY versions of the code). For closed shell systems memory
> requirements scale as N^4/4 where N is the number of basis functions.
> If you pay extra for memory then you need to consider the performance
> boost you get from running INCORE. On a CRAY-2 it can be as much as
> a factor of four. On the C90 it appears that it is a factor of three.
> At some point the DIRECT algorithm overcomes the INCORE algorithm,
> but this seems to be far beyond the basis function count that can
> be fit INCORE on todays machines reasonably ... some 'memorable' data
> points on the basis function memory relationship for closed shell
> systems are 100 basis function or fewer fit inside 100+ MWs (64 bit
> words, 200 basis needs 200 MWs (64 bit words), 300 basis needs 1+ GWs
> (again 64 bit words). Open shell systems need twice as much space.
>
> Sincerely,
>
> Richard Walsh
> Minnesota Supercomputer Center
>
>
> ---
>
Richard,
I beg to differ with your numbers. Using N^4/4 one calculates:
# functions memory
----------- ------
100 -> 25 MW
200 -> 400 MW
300 -> 2025 MW
However, the Gaussian manual says, and my own experience support it,
that for closed shell RHF calculations memory scales as N^4/8 plus
some additional memory, say 500,000 words. (G92 User's Guide p.88.)
My own experience has been that the additional .5 MW is too small,
a more realistic number is 100N*N. Using this formula one calculates:
# functions memory
----------- ------
100 -> 12.5 + 1 = 13.5 MW
200 -> 200 + 4 = 204 MW
300 -> 1012.5 + 9 = 1021.5 MW
A recent calculation of mine ran INCORE with 61 MW for 147 functions.
( 147 -> 58.4 + 2.2 = 60.6 MW )
Even this memory requirement for 300 functions (i.e. 2025 MW) is
tractable on today's Cray systems. I might also point out that use of
the DIRECT keyword can still cause an INCORE calculation to run if
sufficient memory has been provided using the %mem=???? directive in
conjunction with the # QSUB lM ???mw option for NQS (if it is a batch
job) and having no additional limits imposed on the job by the system.
My opinion is that the INCORE is not warranted for production work at
a site where no charge is incurred for memory, since the job may sit in
a queue for some time, then fail due to lack of memory, whereas a DIRECT
job will test for memory availability and run DIRECT if there is a lack
of memory. The trade off, of course, is that you will then pay for the
EXTRA CPU time incurred running DIRECT instead of INCORE.
Regards,
Gene
++++++++++++++++++++++++++++++++++++++++
Eugene D. Fleischmann, Ph.D.
Computational Chemist
Cray Research, Inc.
(301)595-2695
gene(-(at)-)eastrg2.cray.com
++++++++++++++++++++++++++++++++++++++++