From gene@eastrg1.cray.com Wed Apr 28 05:01:57 1993 Date: Wed, 28 Apr 93 09:01:57 EDT From: gene@eastrg1.cray.com (Eugene Fleischmann) Message-Id: <9304281301.AA06069@sodium.cray.com> To: rbw@msc.edu Subject: Re: direct vs. in-core calculations > From chemistry-request@ccl.net Mon Apr 26 19:10:44 1993 > To: DSMITH@uoft02.utoledo.edu, chemistry@ccl.net > Subject: Re: direct vs. in-core calculations > Sender: chemistry-request@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@eastrg2.cray.com ++++++++++++++++++++++++++++++++++++++++