The scratch directory is the place where DIRAC will write temporary files. At the beginning of the run, DIRAC copies input files and the binary into the scratch space and at the end of the calculation, the output is copied back, possibly together with other useful (restart) files.
You can set the scratch space like this:
$ pam --scratch=/somepath
If --scratch is not set, DIRAC will look for the environment variables SCRATCH or TMPDIR.
If these variables are not set, DIRAC defaults to $HOME/DIRAC_scratch_directory.
On your local computer you typically want to use the same scratch space every time and you may be tired of typing pam --scratch every time. In this case, put --scratch=/somepath in your ~/.diracrc.
DIRAC will always append $USER/DIRAC_inp_mol_pid to the scratch path. This is to prevent users from accidentally wiping out their home directory.
For this use:
$ pam --scratchfull=/somepath
In this case DIRAC will use the path as it is and not append anything to it. Be careful with this since DIRAC may remove the path after the calculation has finished.
On a cluster you typically want to be able to find the scratch directory based on some job id. If you are on a cluster with a Torque/PBS scheduler then it can be useful to set:
$ pam --scratch=/somepath/$USER/$PBS_JOBID
This means that all nodes write temporary files to the same disk.
No additional flags are needed for this run.
This means that each node writes temporary files to its own disk.
For this situation the input files have to be distributed over the nodes based on --machfile:
$ pam --scratch=/somepath/$USER/$PBS_JOBID --machfile=/path/to/machfile
If you don’t give --machfile, DIRAC assumes that you run using a global scratch disk.
The list of machines is typically generated when the scheduler launches the job but you can also set the list of machines manually.
The input files are by default distributed using rsh/rcp. If your cluster does not support these you can change to ssh/scp protocol:
$ pam --scratch=/somepath/$USER/$PBS_JOBID --machfile=/path/to/machfile --rsh=ssh --rcp=scp