In computational materials science, many problems require the execution of numerous parallel simulation tasks on High Performance Computing (HPC) resources. Often a single published data point is the result of several parallel tasks executed in a specific sequence. Despite the continual improvement of computational capability, parallel simulation tasks are generally prepared, executed, and analyzed in a non-automated way via the command line and a job scheduler. If the cost savings and time reduction goals of the MGI are to be realized, automation is critical.
In response to the MGI, we are investigating methods to automate the assembly and distribution of parallel simulation tasks, which we refer to as a scientific workflow. One obvious solution is the use of a traditional workflow management system. However, many traditional workflow management systems require wholesale changes in administrative and user activities. Therefore, we extend our investigation into non-traditional tools that can allow for incremental adoption and integration with existing HPC infrastructure.
We are currently focused on the use of Python-based tools, with application and examples in the following projects:
- Interatomic Potentials Repository—In this project, comprehensive python scripts automate the calculation (requiring many parallel tasks) of material properties and simple IPython Notebooks are used to elucidate the methodology.
- Investigating the Diameter-Dependence of Elastic Moduli of Zinc Oxide Nanowires using Molecular Dynamics Simulations—In this activity, a series of IPython Notebooks were used to prepare calculation input parameters, automate parallel atomistic simulation tasks, post process simulation results, and create figures. The simulation task notebook capitalized on system heterogeneity by simulating small nanowires on batch jobs with few processors and large nanowires on batch jobs with many processors.
- Validation of Classical Atomistic Simulations of Nanoscale Material Phenomena—A classical atomistic simulation of a nanoscale material phenomena is the amalgamation of no fewer than three independent models: (1) the interatomic potential, (2) the nanostructure atomistic configuration, and (3) the procedure by which the property is computed. For each, we will provide examples of python tools and/or IPython Notebooks, in support of improved reproducibility and reduced startup cost of research involving atomistic simulations.