Running Turbomole Jobs - alexandrova-lab-ucla/phd3 GitHub Wiki

Setting Up Calculations

To setup a TURBOMOLE job using phd3, all you need is either a coord or .xyz file. Then, calling the script setupturbomole.py will copy over a default definput.json file. You can then edit this file to make sure that you have the proper parameters for your calculation (see here for a detailed explanations of definput.json options). If you already have a definput.json file from another calculation, you can instead copy that over to the current directory. Once you have both a structure and a definput.json file, call setupturbomole.py again to actually setup the job. If you see the following:

    [Define]          ==>> Ended Normally
    [setup turbomole] ==>> SUCCESS]

then your job was setup successfully. Otherwise, there was an issue with either your parameters, input file, or structure file. Often an exception derived from the json class will indicate that definput.json is not formatted properly. If you see a

    [Define] ==>> ERROR TERMINATION

then there was an error with define and you should consult define.out. Note that lines that begin with >>> indicate input into define (from phd3). If you see any other error, either there was something very wrong with your computer hardware, or you specified an incorrect parameter. Parameter errors will appear as Parameter.error in the stack output.

You can do additional edits to the control file, or any other file now, if the options are not specifically allowed within phd3. Beyond that, your job is ready to be run or submitted.

Running Jobs

To run a job within the phd3 framework, you can call the script runturbomole.py with the appropriate arguments.

runturbomole.py -n 16 -t 24 -s /scratch/

The above command would run turbomole with 16 processors for 24 hours in the /scratch/ directory. In general, the -n command specifies number of processors; the -t specifies for how long to run the job for; and the -s is the scratch directory to run the job in. That is, it will copy the files to /scratch/ and then run the appropriate turbomole command (as specified within calculation in definput.json) for a maximum of 24 hours. There is a built in timer in runturbomole.py that will cause it to try and stop the job at 23 hours and bring all the files back to the initial directory so that if this is being run on a super computer, the data won’t be completely lost. In the even that the job cannot be stopped in time, a trun_backup directory will be created which is a snap-shot of the directory on /scratch/ when runturbomole.py tried to stop the job. Thus, if you run out of time on the supercomputer and turbomole can't quit, you can restart the job from this backup directory with minimal loss. Note, that you do not need to run jobs this way. Instead, you can use your own submit scripts to run the job by calling the appropriate job commands, like jobex. Therefore, if there are different calculation types that aren’t currently supported in phd3, you can still run them.

Furthermore, it should be noted that runturbomole.py will attempt to setup the proper parallelization environment up by setting the appropriate environment variables for turbo- mole. However, if you dislike how runturbomole.py sets up this environment, or want control over this, then it will keep the default environment if it already detects that it has been setup (environmental variables already set).