From fd3d22592e82e3c2565b424e0de6029675d94719 Mon Sep 17 00:00:00 2001 From: "Kurt A. O'Hearn" <ohearnku@msu.edu> Date: Mon, 22 Oct 2018 12:35:44 -0400 Subject: [PATCH] Tools: update run_sim.py to work with absolute paths (by refereing supplied executable path). Begin updating testing scripts. --- test_harness/control_bilayer_340800_serial | 68 -------- test_harness/control_bilayer_56800_serial | 68 -------- test_harness/control_silica_300000_serial | 68 -------- test_harness/control_silica_6000_serial | 68 -------- test_harness/control_silica_72000_serial | 68 -------- test_harness/control_water_327000_serial | 68 -------- test_harness/control_water_6540_serial | 68 -------- test_harness/control_water_78480_serial | 68 -------- test_harness/submit_short_jobs.bash | 173 +++++++++++--------- tools/run_sim.py | 177 +++++++++++++++------ 10 files changed, 225 insertions(+), 669 deletions(-) delete mode 100644 test_harness/control_bilayer_340800_serial delete mode 100644 test_harness/control_bilayer_56800_serial delete mode 100644 test_harness/control_silica_300000_serial delete mode 100644 test_harness/control_silica_6000_serial delete mode 100644 test_harness/control_silica_72000_serial delete mode 100644 test_harness/control_water_327000_serial delete mode 100644 test_harness/control_water_6540_serial delete mode 100644 test_harness/control_water_78480_serial diff --git a/test_harness/control_bilayer_340800_serial b/test_harness/control_bilayer_340800_serial deleted file mode 100644 index 7087989c..00000000 --- a/test_harness/control_bilayer_340800_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name bilayer_340800_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 0 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_bilayer_56800_serial b/test_harness/control_bilayer_56800_serial deleted file mode 100644 index a3cc7de0..00000000 --- a/test_harness/control_bilayer_56800_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name bilayer_56800_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 1 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_silica_300000_serial b/test_harness/control_silica_300000_serial deleted file mode 100644 index 6fc327fe..00000000 --- a/test_harness/control_silica_300000_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name silica_300000_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 0 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_silica_6000_serial b/test_harness/control_silica_6000_serial deleted file mode 100644 index 5b4cee39..00000000 --- a/test_harness/control_silica_6000_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name silica_6000_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 1 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_silica_72000_serial b/test_harness/control_silica_72000_serial deleted file mode 100644 index 1990d37a..00000000 --- a/test_harness/control_silica_72000_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name silica_72000_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 0 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_water_327000_serial b/test_harness/control_water_327000_serial deleted file mode 100644 index e895ac17..00000000 --- a/test_harness/control_water_327000_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name water_327000_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 0 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_water_6540_serial b/test_harness/control_water_6540_serial deleted file mode 100644 index edeb3b50..00000000 --- a/test_harness/control_water_6540_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name water_6540_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 1 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/control_water_78480_serial b/test_harness/control_water_78480_serial deleted file mode 100644 index dbc5080f..00000000 --- a/test_harness/control_water_78480_serial +++ /dev/null @@ -1,68 +0,0 @@ -simulation_name water_78480_notab_nve_qeq_serial ! output files will carry this name + their specific extension -ensemble_type 0 ! 0: NVE, 1: Berendsen NVT, 2: nose-Hoover NVT, 3: semi-isotropic NPT, 4: isotropic NPT, 5: anisotropic NPT -nsteps 100 ! number of simulation steps -dt 0.10 ! time step in fs -periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries - -reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin -restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps - -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) -thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) - -charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 -cm_q_net 0.0 ! net system charge -cm_solver_type 0 ! iterative linear solver for charge method: 0 = GMRES(k), 1 = GMRES_H(k), 2 = CG, 3 = SDM -cm_solver_max_iters 20 ! max solver iterations -cm_solver_restart 100 ! inner iterations of before restarting (GMRES(k)/GMRES_H(k)) -cm_solver_q_err 1e-6 ! relative residual norm threshold used in solver -cm_domain_sparsity 1.0 ! scalar for scaling cut-off distance, used to sparsify charge matrix (between 0.0 and 1.0) -cm_init_guess_extrap1 3 ! order of spline extrapolation for initial guess (s) -cm_init_guess_extrap2 2 ! order of spline extrapolation for initial guess (t) -cm_solver_pre_comp_type 1 ! method used to compute preconditioner, if applicable -cm_solver_pre_comp_refactor 1000 ! number of steps before recomputing preconditioner -cm_solver_pre_comp_droptol 0.0 ! threshold tolerance for dropping values in preconditioner computation (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_comp_sweeps 3 ! number of sweeps used to compute preconditioner (FG-ILUT) -cm_solver_pre_comp_sai_thres 0.1 ! ratio of charge matrix NNZ's used to compute preconditioner (SAI) -cm_solver_pre_app_type 1 ! method used to apply preconditioner (ICHOLT/ILUT/FG-ILUT) -cm_solver_pre_app_jacobi_iters 50 ! num. Jacobi iterations used for applying precondition (ICHOLT/ILUT/FG-ILUT) - -temp_init 0.0 ! desired initial temperature of the simulated system -temp_final 300.0 ! desired final temperature of the simulated system -t_mass 0.16666 ! 0.16666 for Nose-Hoover nvt ! 100.0 for npt! in fs, thermal inertia parameter -t_mode 0 ! 0: T-coupling only, 1: step-wise, 2: constant slope -t_rate -100.0 ! in K -t_freq 4.0 ! in ps - -pressure 0.000101325 ! desired pressure of the simulated system in GPa, 1atm = 0.000101325 GPa -p_mass 5000.00 ! in fs, pressure inertia parameter -compress 0.008134 ! in ps^2 * A / amu ( 4.5X10^(-5) bar^(-1) ) -press_mode 0 ! 0: internal + external pressure, 1: ext only, 2: int only - -geo_format 0 ! 0: custom, 1: pdb, 2: bgf -write_freq 0 ! write trajectory after so many steps -traj_compress 0 ! 0: no compression 1: uses zlib to compress trajectory output -traj_format 0 ! 0: our own format (below options apply to this only), 1: xyz, 2: bgf, 3: pdb -traj_title WATER_NVE ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 0 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file -test_forces 0 ! 0: normal run, 1: at every timestep print each force type into a different file - -molec_anal 0 ! 1: outputs newly formed molecules as the simulation progresses -freq_molec_anal 0 ! perform molecular analysis at every 'this many' timesteps -dipole_anal 0 ! 1: calculate a electric dipole moment of the system -freq_dipole_anal 1 ! calculate electric dipole moment at every 'this many' steps -diffusion_coef 0 ! 1: calculate diffusion coefficient of the system -freq_diffusion_coef 1 ! calculate diffusion coefficient at every 'this many' steps -restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms - -restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps diff --git a/test_harness/submit_short_jobs.bash b/test_harness/submit_short_jobs.bash index 4c44a8b7..bbfa259a 100755 --- a/test_harness/submit_short_jobs.bash +++ b/test_harness/submit_short_jobs.bash @@ -1,17 +1,31 @@ #!/bin/bash +# submit job scripts of specified type +# +# inputs: 1) job_type, 2) data set function submit_job_serial { - SIM_NAME="spuremd-${4}" - qsub -l "walltime=${JOB_TIME},nodes=${JOB_NODES}:ppn=${JOB_PPN},feature=${JOB_FEATURE},mem=${JOB_MEM}" \ - -o "${SIM_NAME}" -j oe << EOF -#!/bin/bash -module purge -module load GNU/6.2 MKL/11.2 -cd "\${PBS_O_WORKDIR}" -../sPuReMD/bin/spuremd "${1}" "${2}" "${3}" -EOF + python3 ../../tools/run_sim.py submit_jobs \ + -b "../../sPuReMD/bin/spuremd" \ + -p ensemble_type "0" \ + -p nsteps "100" \ + -p tabulate_long_range "0" \ + -p charge_method "0" \ + -p cm_solver_type "0" \ + -p cm_solver_max_iters "50" \ + -p cm_solver_restart "200" \ + -p cm_solver_q_err "1e-6" \ + -p cm_domain_sparsity "1.0" \ + -p cm_solver_pre_comp_type "1" \ + -p cm_solver_pre_comp_refactor "10000" \ + -p cm_solver_pre_comp_droptol "0.0" \ + -p cm_solver_pre_comp_sweeps "3" \ + -p cm_solver_pre_comp_sai_thres "0.1" \ + -p cm_solver_pre_app_type "0" \ + -p cm_solver_pre_app_jacobi_iters "30" \ + -p threads "1" \ + "${1}" "${2}" } @@ -43,74 +57,83 @@ EOF } -############ -# Serial Runs # -############ +# serial jobs (spuremd) JOB_TIME="03:59:00" JOB_NODES="1" JOB_PPN="1" JOB_FEATURE="lac" JOB_MEM="120gb" - -sub_job_serial "../data/benchmarks/metal/zno_6912.pdb" \ - "../data/benchmarks/metal/ffield.zno" \ - "control_zno_6912_serial" \ - "zno_6912_serial" - -sub_job_serial "../data/benchmarks/silica/silica_6000.pdb" \ - "../data/benchmarks/silica/ffield-bio" \ - "control_silica_6000_serial" \ - "silica_6000_serial" - -sub_job_serial "../data/benchmarks/water/water_6540.pdb" \ - "../data/benchmarks/water/ffield.water" \ - "control_water_6540_serial" \ - "water_6540_serial" - -############ -# MPI Runs # -############ -JOB_TIME="03:59:00" -JOB_NODES="1" -JOB_PPN="2" -JOB_FEATURE="lac" -JOB_MEM="120gb" - -sub_job_mpi "../data/benchmarks/metal/zno_6912.pdb" - "../data/benchmarks/metal/ffield.zno" \ - "control_zno_6912_mpi" \ - "zno_6912_mpi" - -sub_job_mpi "../data/benchmarks/silica/silica_6000.pdb" \ - "../data/benchmarks/silica/ffield-bio" \ - "control_silica_6000_mpi" \ - "silica_6000_mpi" - -sub_job_mpi "../data/benchmarks/water/water_6540.pdb" \ - "../data/benchmarks/water/ffield.water" \ - "control_water_6540_mpi" \ - "water_6540_mpi" - -################ -# MPI-GPU Runs # -################ -JOB_TIME="03:59:00" -JOB_NODES="2" -JOB_PPN="1" -JOB_FEATURE="lac" -JOB_MEM="120gb" - -sub_job_mpi_gpu "../data/benchmarks/metal/zno_6912.pdb" \ - "../data/benchmarks/metal/ffield.zno" - "control_zno_6912_mpi_gpu" \ - "zno_6912_mpi_gpu" - -sub_job_mpi_gpu "../data/benchmarks/silica/silica_6000.pdb" \ - "../data/benchmarks/silica/ffield-bio" \ - "control_silica_6000_mpi_gpu" \ - "silica_6000_mpi_gpu" - -sub_job_mpi_gpu "../data/benchmarks/water/water_6540.pdb" \ - "../data/benchmarks/water/ffield.water" \ - "control_water_6540_mpi_gpu" \ - "water_6540_mpi_gpu" +DATA_DIR="serial" + +if [ ! -d "${DATA_DIR}" ]; then + mkdir "${DATA_DIR}" +fi +pushd "${DATA_DIR}" &> /dev/null + +submit_job_serial "slurm" "zno_6912" + +submit_job_serial "slurm" "silica_6000" + +submit_job_serial "slurm" "water_6540" + +popd &> /dev/null + +## mpi jobs (puremd) +#JOB_TIME="03:59:00" +#JOB_NODES="1" +#JOB_PPN="2" +#JOB_FEATURE="lac" +#JOB_MEM="120gb" +#DATA_DIR="mpi" +# +#if [ ! -d "${DATA_DIR}" ]; then +# mkdir "${DATA_DIR}" +#fi +#pushd "${DATA_DIR}" &> /dev/null +# +#submit_job_mpi "../data/benchmarks/metal/zno_6912.pdb" +# "../data/benchmarks/metal/ffield.zno" \ +# "control_zno_6912_mpi" \ +# "zno_6912_mpi" +# +#submit_job_mpi "../data/benchmarks/silica/silica_6000.pdb" \ +# "../data/benchmarks/silica/ffield-bio" \ +# "control_silica_6000_mpi" \ +# "silica_6000_mpi" +# +#submit_job_mpi "../data/benchmarks/water/water_6540.pdb" \ +# "../data/benchmarks/water/ffield.water" \ +# "control_water_6540_mpi" \ +# "water_6540_mpi" +# +#popd &> /dev/null +# +## mpi+gpu jobs (pg-puremd) +#JOB_TIME="03:59:00" +#JOB_NODES="2" +#JOB_PPN="1" +#JOB_FEATURE="lac" +#JOB_MEM="120gb" +#DATA_DIR="mpi_gpu" +# +#if [ ! -d "${DATA_DIR}" ]; then +# mkdir "${DATA_DIR}" +#fi +#pushd "${DATA_DIR}" &> /dev/null +# +#submit_job_mpi_gpu "../data/benchmarks/metal/zno_6912.pdb" \ +# "../data/benchmarks/metal/ffield.zno" +# "control_zno_6912_mpi_gpu" \ +# "zno_6912_mpi_gpu" +# +#submit_job_mpi_gpu "../data/benchmarks/silica/silica_6000.pdb" \ +# "../data/benchmarks/silica/ffield-bio" \ +# "control_silica_6000_mpi_gpu" \ +# "silica_6000_mpi_gpu" +# +#submit_job_mpi_gpu "../data/benchmarks/water/water_6540.pdb" \ +# "../data/benchmarks/water/ffield.water" \ +# "control_water_6540_mpi_gpu" \ +# "water_6540_mpi_gpu" +# +#popd &> /dev/null diff --git a/tools/run_sim.py b/tools/run_sim.py index e9150086..cc4480c6 100644 --- a/tools/run_sim.py +++ b/tools/run_sim.py @@ -19,47 +19,91 @@ class TestCase(): self.__result_file = result_file self.__control_regexes = { \ 'name': lambda l, x: sub( - r'(?P<key>simulation_name\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>simulation_name\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'ensemble_type': lambda l, x: sub( - r'(?P<key>ensemble_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>ensemble_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'nsteps': lambda l, x: sub( - r'(?P<key>nsteps\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>nsteps\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'dt': lambda l, x: sub( + r'^(?P<key>dt\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'periodic_boundaries': lambda l, x: sub( + r'^(?P<key>periodic_boundaries\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'reposition_atoms': lambda l, x: sub( + r'^(?P<key>reposition_atoms\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'remove_CoM_vel': lambda l, x: sub( + r'^(?P<key>remove_CoM_vel\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'reneighbor': lambda l, x: sub( + r'^(?P<key>reneighbor\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'update_energy_freq': lambda l, x: sub( + r'^(?P<key>update_energy_freq\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'tabulate_long_range': lambda l, x: sub( - r'(?P<key>tabulate_long_range\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>tabulate_long_range\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'vlist_buffer': lambda l, x: sub( + r'^(?P<key>vlist_buffer\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'nbrhood_cutoff': lambda l, x: sub( + r'^(?P<key>nbrhood_cutoff\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'hbond_cutoff': lambda l, x: sub( + r'^(?P<key>hbond_cutoff\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'thb_cutoff': lambda l, x: sub( + r'^(?P<key>thb_cutoff\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'bond_graph_cutoff': lambda l, x: sub( + r'^(?P<key>bond_graph_cutoff\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'charge_method': lambda l, x: sub( - r'(?P<key>charge_method\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>charge_method\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_q_net': lambda l, x: sub( - r'(?P<key>cm_q_net\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_q_net\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_type': lambda l, x: sub( - r'(?P<key>cm_solver_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_max_iters': lambda l, x: sub( - r'(?P<key>cm_solver_max_iters\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_max_iters\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_restart': lambda l, x: sub( - r'(?P<key>cm_solver_restart\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_restart\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_q_err': lambda l, x: sub( - r'(?P<key>cm_solver_q_err\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_q_err\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_domain_sparsity': lambda l, x: sub( - r'(?P<key>cm_domain_sparsity\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_domain_sparsity\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_init_guess_extrap1': lambda l, x: sub( - r'(?P<key>cm_init_guess_extrap1\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_init_guess_extrap1\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_init_guess_extrap2': lambda l, x: sub( - r'(?P<key>cm_init_guess_extrap2\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_init_guess_extrap2\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_comp_type': lambda l, x: sub( - r'(?P<key>cm_solver_pre_comp_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_comp_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_comp_droptol': lambda l, x: sub( - r'(?P<key>cm_solver_pre_comp_droptol\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_comp_droptol\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_comp_refactor': lambda l, x: sub( - r'(?P<key>cm_solver_pre_comp_refactor\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_comp_refactor\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_comp_sweeps': lambda l, x: sub( - r'(?P<key>cm_solver_pre_comp_sweeps\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_comp_sweeps\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_comp_sai_thres': lambda l, x: sub( - r'(?P<key>cm_solver_pre_comp_sai_thres\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_comp_sai_thres\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_app_type': lambda l, x: sub( - r'(?P<key>cm_solver_pre_app_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_app_type\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'cm_solver_pre_app_jacobi_iters': lambda l, x: sub( - r'(?P<key>cm_solver_pre_app_jacobi_iters\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>cm_solver_pre_app_jacobi_iters\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ 'geo_format': lambda l, x: sub( - r'(?P<key>geo_format\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + r'^(?P<key>geo_format\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'temp_init': lambda l, x: sub( + r'^(?P<key>temp_init\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'temp_final': lambda l, x: sub( + r'^(?P<key>temp_final\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 't_mass': lambda l, x: sub( + r'^(?P<key>t_mass\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 't_mode': lambda l, x: sub( + r'^(?P<key>t_mode\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 't_rate': lambda l, x: sub( + r'^(?P<key>t_rate\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 't_freq': lambda l, x: sub( + r'^(?P<key>t_freq\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'pressure': lambda l, x: sub( + r'^(?P<key>pressure\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'p_mass': lambda l, x: sub( + r'^(?P<key>p_mass\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'pt_mass': lambda l, x: sub( + r'^(?P<key>pt_mass\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'compress': lambda l, x: sub( + r'^(?P<key>compress\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ + 'press_mode': lambda l, x: sub( + r'^(?P<key>press_mode\s+)\S+(?P<comment>.*)', r'\g<key>%s\g<comment>' % x, l), \ } self.__params['geo_format'] = geo_format self.__min_step = min_step @@ -83,15 +127,17 @@ dt 0.25 ! time step in fs periodic_boundaries 1 ! 0: no periodic boundaries, 1: periodic boundaries reposition_atoms 0 ! 0: just fit to periodic boundaries, 1: CoM to the center of box, 3: CoM to the origin +remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps +reneighbor 1 ! frequency to recompute Verlet lists restrict_bonds 0 ! enforce the bonds given in CONECT lines of pdb file for this many steps -tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation energy_update_freq 1 -remove_CoM_vel 500 ! remove the translational and rotational vel around the center of mass at every 'this many' steps +tabulate_long_range 0 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 5.0 ! near neighbors cutoff for bond calculations (Angstroms) -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) +vlist_buffer 0.0 ! skim distance on top of non-bonded interaction cutoff (Angstroms) +nbrhood_cutoff 5.0 ! cutoff distance for bond interaction (Angstroms) +hbond_cutoff 7.5 ! cutoff distance for hydrogen bond interactions (Angstroms) thb_cutoff 0.001 ! cutoff value for three body interactions (Angstroms) -hbond_cutoff 7.50 ! cutoff distance for hydrogen bond interactions (Angstroms) +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs (Angstroms) charge_method 0 ! charge method: 0 = QEq, 1 = EEM, 2 = ACKS2 cm_q_net 0.0 ! net system charge @@ -143,7 +189,7 @@ freq_diffusion_coef 1 ! calculate diffusion coefficien restrict_type 2 ! -1: all types of atoms, 0 and up: only this type of atoms restart_format 1 ! 0: restarts in ASCII 1: restarts in binary -restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps +restart_freq 0 ! 0: do not output any restart files. >0: output a restart file at every 'this many' steps\ """ # substitute key-value pairs in the text of the control file @@ -207,10 +253,8 @@ restart_freq 0 ! 0: do not output any restart f if proc_handle.returncode < 0: print("WARNING: process terminated with code {0}".format(proc_handle.returncode)) - print('stdout:') - print(stdout) - print('stderr:') - print(stderr) + print('stdout:\n{0}'.format(stdout), end='') + print('stderr:\n{0}'.format(stderr), end='') if path.exists(temp_file): remove(temp_file) @@ -315,8 +359,8 @@ restart_freq 0 ! 0: do not output any restart f def _build_slurm_script(self, binary, param_values): from os import path - # back up two directory levels - base_dir = path.dirname(path.dirname(path.dirname(binary))) + # remove executable and back up two directory levels + base_dir = path.dirname(path.dirname(path.dirname(path.abspath(binary)))) job_script = """\ #!/bin/bash -login @@ -346,8 +390,8 @@ python3 {0}/tools/run_sim.py run_md \\ def _build_pbs_script(self, binary, param_values): from os import path - # back up two directory levels - base_dir = path.dirname(path.dirname(path.dirname(binary))) + # remove executable and back up two directory levels + base_dir = path.dirname(path.dirname(path.dirname(path.abspath(binary)))) job_script = """\ #!/bin/bash -login @@ -390,12 +434,10 @@ python3 {0}/tools/run_sim.py run_md \\ if proc_handle.returncode < 0: print("WARNING: process terminated with code {0}".format(proc_handle.returncode)) - print('stdout:') - print(stdout) - print('stderr:') - print(stderr) + print('stdout:\n{0}'.format(stdout), end='') + print('stderr:\n{0}'.format(stderr), end='') else: - print(stdout) + print(stdout, end='') if __name__ == '__main__': @@ -404,12 +446,13 @@ if __name__ == '__main__': from sys import exit def setup_parser(): - DATA = [ \ + DATA_SETS = [ \ 'bilayer_56800', 'bilayer_340800', \ 'dna_19733', \ 'petn_48256', \ 'silica_6000', 'silica_72000', 'silica_300000', \ 'water_6540', 'water_78480', 'water_327000', \ + 'zno_6912', \ ] JOB_TYPES = ['pbs', 'slurm'] @@ -424,7 +467,7 @@ if __name__ == '__main__': run_md_parser.add_argument('-p', '--params', metavar='params', action='append', default=None, nargs=2, help='Paramater name and value pairs for the simulation, with multiple values comma delimited.') run_md_parser.add_argument('data_sets', nargs='+', - choices=DATA, help='Data sets for which to run simulations.') + choices=DATA_SETS, help='Data sets for which to run simulations.') run_md_parser.set_defaults(func=run_md) parse_results_parser.add_argument('-f', '--out_file', metavar='out_file', default=None, nargs=1, @@ -436,7 +479,7 @@ if __name__ == '__main__': parse_results_parser.add_argument('-x', '--max_step', metavar='max_step', default=None, nargs=1, help='Maxiumum simulation step for aggregating results.') parse_results_parser.add_argument('data_sets', nargs='+', - choices=DATA, help='Data sets for which to parse results.') + choices=DATA_SETS, help='Data sets for which to parse results.') parse_results_parser.set_defaults(func=parse_results) submit_jobs_parser.add_argument('-b', '--binary', metavar='binary', default=None, nargs=1, @@ -446,7 +489,7 @@ if __name__ == '__main__': submit_jobs_parser.add_argument('job_script_type', nargs=1, choices=JOB_TYPES, help='Type of job script.') submit_jobs_parser.add_argument('data_sets', nargs='+', - choices=DATA, help='Data sets for which to run simulations.') + choices=DATA_SETS, help='Data sets for which to run simulations.') submit_jobs_parser.set_defaults(func=submit_jobs) return parser @@ -457,7 +500,18 @@ if __name__ == '__main__': control_params_dict = { 'ensemble_type': ['0'], 'nsteps': ['20'], + 'dt': ['0.25'], + 'periodic_boundaries': ['1'], + 'reposition_atoms': ['0'], + 'remove_CoM_vel': ['500'], + 'reneighbor': ['1'], + 'update_energy_freq': ['1'], 'tabulate_long_range': ['0'], + 'vlist_buffer': ['0.0'], + 'nbrhood_cutoff': ['5.0'], + 'hbond_cutoff': ['0.0'], + 'thb_cutoff': ['0.001'], + 'bond_graph_cutoff': ['0.3'], 'charge_method': ['0'], 'cm_q_net': ['0.0'], 'cm_solver_type': ['0'], @@ -476,6 +530,17 @@ if __name__ == '__main__': 'cm_solver_pre_app_jacobi_iters': ['30'], 'threads': ['1'], 'geo_format': [], + 'temp_init': ['0.0'], + 'temp_final': ['300.0'], + 't_mass': ['0.166666'], + 't_mode': ['0'], + 't_rate': ['-100.0'], + 't_freq': ['4.0'], + 'pressure': ['0.000101325'], + 'p_mass': ['5000.0'], + 'pt_mass': ['5000.0'], + 'compress': ['0.008134'], + 'press_mode': ['0'], } return control_dir, data_dir, control_params_dict @@ -582,16 +647,27 @@ if __name__ == '__main__': result_header = header_str, result_body_fmt=body_fmt_str, geo_format=['1'], result_file=result_file, min_step=min_step, max_step=max_step)) + if 'zno_6912' in data_sets: + test_cases.append( + TestCase('zno_6912', + path.join(data_dir, 'metal/zno_6912.pdb'), + path.join(data_dir, 'metal/ffield.zno'), + path.join(control_dir, 'param.gpu.water'), + params=control_params, result_header_fmt=header_fmt_str, + result_header = header_str, result_body_fmt=body_fmt_str, + geo_format=['1'], result_file=result_file, + min_step=min_step, max_step=max_step)) return test_cases def run_md(args): - base_dir = getcwd() - control_dir, data_dir, control_params_dict = setup_defaults(base_dir) - if args.binary: binary = args.binary[0] + # remove executable and back up two directory levels + base_dir = path.dirname(path.dirname(path.dirname(path.abspath(binary)))) + control_dir, data_dir, control_params_dict = setup_defaults(base_dir) else: + base_dir = getcwd() binary = path.join(base_dir, 'sPuReMD/bin/spuremd') # overwrite default control file parameter values if supplied via command line args @@ -640,12 +716,13 @@ if __name__ == '__main__': test.parse_results() def submit_jobs(args): - base_dir = getcwd() - control_dir, data_dir, control_params_dict = setup_defaults(base_dir) - if args.binary: binary = args.binary[0] + # remove executable and back up two directory levels + base_dir = path.dirname(path.dirname(path.dirname(path.abspath(binary)))) + control_dir, data_dir, control_params_dict = setup_defaults(base_dir) else: + base_dir = getcwd() binary = path.join(base_dir, 'sPuReMD/bin/spuremd') # overwrite default control file parameter values if supplied via command line args -- GitLab