Is it possible to determine or get a range of the time required for a specific calculation with knowledge of the type (MM or QM), class (semi-empirical, ab initio or DFT), the degree of theory (MP, CI, etc.) and the basis set (STO-3G, 3-21G, 6-31G(d), etc.) used in the calculation and the computer ability (processor, RAM, etc.)?
-
2$\begingroup$ A more accurate reference for ab initio might be Ab initio quantum chemistry methods. $\endgroup$– Peter MortensenCommented Mar 30, 2016 at 18:11
-
$\begingroup$ scicomp.stackexchange.com $\endgroup$– MithoronCommented Apr 8, 2016 at 18:23
2 Answers
No, that is not possible. What is possible is to estimate how much more time you need to calculate the electronic energy if you increase the system size by some factor. For any method which uses LCAO-MO expansion, it is the number of basis functions $m$ which primarily determines the computational cost, so that it is usually used as a measure of the system size. For instance, HF (without any tricks like density fitting, or taking the spatial symmetry into account) scales approximately as $m^4$, i.e. if you double the number of basis functions by using a basis which is twice as large, the computational cost will be approximately $2^4=16$ times larger. But that is it: estimating the time for a calculation using the well-known scaling behavior is possible only if you already know some timings on the same setup. And besides, this is all about just the electronic energy, which is quite often not the end of the story.
-
-
2$\begingroup$ @M.Ibrahim, because there are too many parameters that can vary significantly: dozens of job types and methods, plenty of important implementation details, settings & speed-up tricks that can be used in a particular program, thousands of basis sets, myriads of computer architectures - all this makes it is absolutely impossible to estimate the time needed for a calculation. $\endgroup$– WildcatCommented Mar 30, 2016 at 19:20
-
1$\begingroup$ Trial and error is basically everything we have at hands: try to submit your job for a time which you think would be more than enough for a successful completion and wait for the result possibly periodically monitoring the submitted job. Start from something simple to get a feel of the scaling behavior of a particular code you run on a particular machine for a particular type of calculation you do. The more you work with a particular code on a particular machine the better your initial estimations of time needed will be. $\endgroup$– WildcatCommented Mar 30, 2016 at 19:25
-
$\begingroup$ You mean to develop a "sense" calibration, don't you ?,,but actually I'm working on enzyme inhibitors so I wanted a method or source of estimation for the computational cost which will help me in decision making; whether to do Quantum calculations or just use the cheap Molecular Mechanical approach. $\endgroup$– M.ghorabCommented Mar 30, 2016 at 19:35
-
2$\begingroup$ As I said, there is no general rule to answer such requests. To get an advice on a level of theory you need to specify few things. 1) What is the size of a system? How many light and heavy atoms are there? 2) What kinds of calculations you want to do? Just the single-point energy + properties (if so which properties?), or geometry optimisation and/or something else? 3) Which hardware and software you have access to? How many cores, memory, disk space and how much wall time are at your disposal? $\endgroup$– WildcatCommented Mar 30, 2016 at 19:59
For some methods it would be theoretically possible to estimate the total time required to perform them, because they requires some specific steps (system dependents or not) for which the number of operations involved can be estimated. Knowing that and a measure of speed of the computer used for that mater (see for example: FLOPS) you can in principle to estimate the total calculation time.
In practice we can't. There is not too detailed info easily available. Even more, as it would be computer dependent (in the sense that any two random computers can take different relative times for any too parts of the calculation, due to specific hardware) there is not too interest in this kind of prediction. But, due to personal experience, computational chemist can have a vague idea about the time required for a calculation, more or less accurate depending of their experience.
There is other "kind" of methods (enclosed by quotes because no one classify methods in this way) for which it is in essence impossible. Those methods require iterative steps to get closer to the solution, and finish when some closeness criteria is reached. As is not possible to know how many steps they require for a particular system ( even more, there are many many tweaks that can change it a lot) it is not possible to know how many operations will take to perform the method.
Resume
For some method it is theoretically possible to estimate the time needed, but as there is so many variables it is not done. In practice the estimate are done through personal experience, depending the method, basis set (if have sense), system and calculation type.
Advice
If you have an specific problem, ask about the specific case here, including in the question the result (with accuracy required) that you are in need of, and the system in question.