|Spartan '14 Help|
|Back to Main or Home(J)
What does this error message mean?
There are 3 main memory related error messages that appear in Spartan. They are :
Setting Spartan's memory limitsSpartan checks the machine to see how much Memory is available. You can set the amount of memory a job can use from within Spartan. The place you do this is different on each platform.
The default memory value is also unique for each type machine:
Suggested Memory Settings for Parallel Spartan Versions
When Spartan runs a job in parallel the memory is duplicated among each parallel thread. Thus the memory requirements increase linearly with number of threads/cores being used. For example a job which requires 1.5 GB of memory for a serial run, will require 6 GB of memory for when run on 4 cores. Keep this in mind when you are setting the memory requirements, or when buy memory for a multi-core machine.
Memory Requirements for Frequency CalculationsFrequency calculations use significantly more RAM than a geometry optimization. The more RAM, the better and quicker the calculation of second derivatives.
Memory Requirements for Semi-Empirical Calculations
While Semi-Empirical calculations take much less memory than ab initio calculations, however, requirements can add up for very large systems. As a rough approximation (only good to 1 digit)
where N is the number of atoms.
If using the SM54 Cramer-Truhlar solvation method one can expect another 9*8*(N3)/1024 kB of memory allocated for the semi-empirical modification.
Memory Requirements for DFT Calculations
Memory is usually not a limiting factor in DFT calculations, since we use a direct method for the exchange calculation. The biggest arrays are linear in the number of atoms, and quadratic with the number of basis functions.
Memory Requirements for post-HF CalculationsWhile more memory is always better with the advanced (post HF) methods, the usual machine limits are the amount of available scratch disk space.
Return to Top
Memory Requirements for DFT CalculationsReturn to Top
Probably not. The most likely effect will be to slow down Spartan calculations dramatically. But if you know what you are doing, and are careful it can help.
In the worst case scenario, you will increase your swap, and Spartan will think your machine has more RAM than it really does. Spartan will then use this "virtual" RAM. Spartan will run, but often the RAM required by Spartan will reside on the disk. Accessing the disk is many order of magnitudes slower than running in RAM, and the speed of Spartan will plummet. A similar problem can occur even if Spartan is using less than the total RAM in your system. If a Spartan job and another program such as a web browser, a java applet, or even another Spartan job are both trying to use the real RAM a thrashing of memory will occur.
There is a case where increasing swap space may help, but since it is so easy to do something wrong be careful. If there are some bloated applications on your machine which are running, but you are not using them, yet you choose not to exit them, they will take up valuable space in memory; Memory which Spartan wants to use. The best thing to do is to quit these applications. But you can also increase swap in the hope that the OS will swap the applications you aren't using out of memory and let Spartan use the real RAM.
When increasing swap it is very important to set the
of Spartan to be less than real Memory in your system.
Typical modern operating systems require a bare minimum of
of RAM to run. So the maximum memory should be:
Return to Top
In DFT calculations the algorithms used partition memory into two different regions. For discussion purposes let's call them 'STATIC' and 'HEAP' memory. There are times when the algorithm incorrectly predicts the amount of 'STATIC' memory. When this occurs you may get an error message in the verbose output asking for more memory. This can usually be fixed by adding the MEM_STATIC=xx keyword to the output where xx is in megabytes (MB). The default is usually on the order of 32 MB. It is important that this number is less than the total memory allocated in the machine. See the discussion on setting Spartan's memory limits.
Note: This replaces the deprecated keyword MEMORY=yy
where yy was in units of "double-words" (64-bits)
Back to Main or Home(J)
firstname.lastname@example.org Last modified: Thu Jun 20 10:47:57 PDT 2013