Parallel Molecular Dynamics Simulation

In Spring 2012 I implemented a 2D parallel molecular dynamics simulation for Georgia Tech’s CSE 6730 Modeling & Simulation with a team listed on the GitHub repo. The simulation contains a serial implementation and two distributed memory decompositions in Fortran 90 and OpenMPI. My contributions to the project also include a rudimentary visualizer in Processing and dataset generator in C99.

By default the project simulates micelle formation by simple hydrophilic and hydrophobic molecules based on the LAMMPS micelle example. Details of the simulation and an analysis of strong- and weak-scaling properties of the serial version and two MPI decompositions are available in the original project report.

Visualization of early stage of micelle formation. Note that the video is recorded at a lower framerate than the visualization, causing smooth particle movement to be aliased.

The yellow particles represent water-based solution, the green particles hydrophilic lipid heads, and the blue and purple particles hydrophobic lipid tails.

To try it yourself with an MPI-enabled gfortran:

git clone git@github.com:aschampion/gt-cse6730-pmds.git
cd gt-cse6730-pmds
make all
./pmds in.micelle # Note that this will take some time and produce a ~200MB dump file

With the simulation results in out.dump, you can now open the Processing visualization in pmds_visualizer/pmds_visualizer.pde (tested with 2.0b8). Note that the visualizer requires the controlP5 Processing library (tested with 2.0.4), and the paths in pmds_visualizer/visualizer.properties should resolve to the data.micelle file in the repository and out.dump and out.dump.fmt files you generated above.

Back to Portfolio Project Website