Skip to content

Running DMD Jobs

matthew-hennefarth edited this page Jun 2, 2021 · 2 revisions

Setting Up Calculations

Similar to setting up a TURBOMOLE job, all you need is a .pdb file to setup a πDMD job with phd3. Calling setupdmd.py will copy over a default dmdinput.json file which you can then edit (see here for the available options). However, if you already have a dmdinput.json file in the directory you are calling it in, it will begin the process of setting up the job. If you see the following:

[setup dmd] ==>> SUCCESS

then your job was setup successfully. Otherwise, there was an issue with either your parameters, the input file, or your pdb file. Often an exception derived from the json class will indicate that definput.json is not formatted properly (see here for how to format). Another common error is

ValueError: state file

This is an issue (more than likely) with πDMD not being to handle your pdb file. There are a number of reasons why the state file could not be made, and we direct you to consult the following page for how to fix the issue. Having successfully setup the job, you are now ready to run or submit it.

Running DMD Jobs

To run a job within the phd3framework, you can call the script rundmd.py with the appropriate arguments.

rundmd.py -n 8 -t 24 -s /scratch/

The above command would run πDMD with 8 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 πDMD command for a maximum of 24 hours. There is a built in timer in rundmd.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 event that the job cannot be stopped in time, a dmd_backup directory will be created which is a snap-shot of the directory on /scratch/ when rundmd.py tried to stop the job. Thus, if you run out of time on the super computer and rundmd.py can't quit, you can restart the job from this backup directory with minimal loss. Jobs that are restarted will have the echo and movie files appended to so that there is continuity in these files (so long as the names are not changed in dmdinput.json).

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.