Depending on your cluster, you might find it necessary to nice your processes:
nice -n 19 mast -i input.inp
nice -n 19 mast
Nice-ing allows the headnode to put its regular functions before the MAST processes. MAST should start running within several seconds.
To parse an input file, use
mast -i input.inp
or
mast -i //full/path/to/input/file/myinput.inp
If your input file specifies any POSCAR or CIF files:
The input file will be parsed and a recipe directory should be created inside the $MAST_SCRATCH directory, with the appropriate ingredient subdirectories.
Look at the input.inp, archive_input_options.txt, and archive_recipe_plan.txt files in the recipe directory to see if the setup agrees with what you think it should be.
Running MAST is separate from inputting input files. Use this command:
mast
This command will do two things:
Individual ingredients’ submission scripts are created automatically through a combination of The Ingredients section in the input file, and your the template submission script for your platform
- The template submission script is found in your MAST installation path under submit/platforms/<platform name>/submit_template.sh).
The mastmon process will generate additional entries on $MAST_CONTROL/submitlist, but these entries will not be submitted to the queue until MAST is called again.
The MAST monitor, or mastmon, process goes through the $MAST_SCRATCH directory.
For human troubleshooting of a recipe, the archive_recipe_plan.txt file gives information about which ingredients are parents/children of which other ingredients, and which method each parent should use to update each of its child ingredients.
The status.txt files gives the status of each ingredient.
Ingredient statuses are:
The MAST monitor checks the status of all ingredients whose status is not yet complete. The MAST monitor updates each ingredient status in the recipe plan.
Each non-complete ingredient is checked to see if it is complete (this is a redundant fast-forward check, since sometimes it is useful to copy over previously completed runs into a MAST ingredient directory.)
If complete, the ingredient updates its children and is changed to Complete
For each Initialized ingredient:
For each Proceed-to-run ingredient:
For each Waiting ingredient:
For each Staged ingredient:
When all ingredients in a recipe are complete, the entire recipe folder is moved from $MAST_SCRATCH to $MAST_ARCHIVE
The $MAST_CONTROL folder houses several files:
Every file except submitlist can be periodically deleted to save space.
The errormast file is written when there is an error, and will need to be deleted for MAST to continue running.
The $MAST_SCRATCH folder houses all recipe folders. It also houses a mast.write_files.lock file while the MAST monitor is running, in order to prevent several versions of MAST from running at once and simultaneously checking and writing ingredients.
If a certain recipe has some sort of flaw, or if you want to stop tracking it halfway through, you may have MAST skip over this recipe:
If you would like to skip certain ingredients of a single recipe, edit the recipe’s status.txt file and replace ingredients to be skipped with the status skip (use the whole word).
To un-skip these ingredients, set them back to W for waiting for parents in status.txt.
- Be careful if deleting any files for skipped ingredients.
- Do not delete the metadata.txt file.
- If deleting a file that was obtained from a parent, like a POSCAR file, also set the parent ingredient back to P when you un-skip the child ingredient.
No recipe can be considered complete by MAST if it includes skipped ingredients. However, if you consider the recipe complete, you can move the entire recipe directory out of $MAST_SCRATCH and into $MAST_ARCHIVE or another directory.
When all ingredients in a recipe are complete, the entire recipe directory is moved from $MAST_SCRATCH to $MAST_ARCHIVE.
The command mast needs to be run repeatedly in order to move the status of the recipe forward. In order to run mast automatically, use a crontab.
Important notes:
Crontab commands are as follows:
This crontab line will run mast every hour at minute 15, and is usually suitable for everyday use:
15 * * * * . $HOME/.bashrc; nice -n 19 mast
This crontab line will run mast every 15 minutes and is ONLY suitable for short testing:
*/15 * * * * . $HOME/.bashrc; nice -n 19 mast