Running multiprocessor jobs on the grid
The WeNMR VRC has recently released a new GROMACS web portal allowing easy setup of molecular dynamics (MD) simulations for simple protein systems. GROMACS is a versitile package to perform molecular dynamics, i.e simulate the Newtonian equations of motion for systems with hundreds to millions of particles. GROMACS is able to work with many biochemical molecules like proteins, lipids and nucleic acids.
The WeNMR GROMACS webportal combines the versitility of this molecular dynamics package with the calculation power of the grid, making use of the multithreading capability of GROMACS for efficient simulations. This however requires that the jdl scripts send to the WMS specify the number of CPUs requested to ensure a proper allocation of resources. At the same time, MD jobs can be computationally expensive and, as consequence, hit the limit of the queues, which will result in a grid job being "aborted". To be able to retrieve the results of an aborted job, the perusal mode should be enabled.
Here is an example of the gromacs jdl script being submitted to the grid using a regular glite-wms-jobsubmit command (the perusal and CPU numbers specifications are highligthed in bold).
JobType = "Normal";
Requirements = (other.GlueCEPolicyMaxWallClockTime > 1440 && Member("VO-enmr.eu-GROMACS4.5.3-rtc-r2",other.GlueHostApplicationSoftwareRunTimeEnvironment));
Rank = ( other.GlueCEStateWaitingJobs == 0 ? other.GlueCEStateFreeCPUs * 100 / (other.GlueCEInfoTotalCPUs + 1): (-other.GlueCEStateWaitingJobs * 4 / ( other.GlueCEStateRunningJobs + 1 )) - 1 );
CPUNumber = 6;
SMPGranularity = 6;
ShallowRetryCount = 1;
RetryCount = 1;
Executable = "gmx45md.sh";
PerusalFileEnable = true;
PerusalTimeInterval = 3600;
Arguments = "-f gmx-xxxx.gro -time 1.0 -ff gromos45a3 -elec RF -salt 0.1539976 -T 300.0 -P 1.0 -D 2.25 -at 0.05 -np 6 -analyze -archive gmx-xxxx.tgz";
StdOutput = "gmx-xxxx.stdout";
StdError = "gmx-xxxx.stderr";
InputSandbox = {"gmx45md.sh","gmx-xxxx.gro","mdanalysis.tgz"};
OutputSandbox = {"gmx-xxxx.tgz","gmx-xxxx.stdout","gmx-xxxx.stderr"};
More details on the use of the perusal mode are provided in the WeNMR wiki.