GithubHelp home page GithubHelp logo

tkphd / ppcproject Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 6.0 981 KB

RPI CSCI-6360 Parallel Programming & Computing group project

License: GNU General Public License v3.0

TeX 23.57% Gnuplot 4.24% Shell 2.70% C++ 66.60% C 2.88%
mmsp materials-science phase-field monte-carlo grain-growth

ppcproject's Introduction

PPCproject

RPI CSCI-6360 Parallel Programming & Computing 2014: Group Project

If you wish to contribute to this code, please fork this repository (http://github.com/fifthblackbird/PPCproject) into your GitHub account before cloning.

This is a group project intended to implement POSIX threads and to improve MPI-IO performance in MMSP (http://github.com/mesoscale/mmsp).

The code depends on the Mesoscale Microstructure Simulation Project (MMSP) libraries [1].

The source directory contains code for grain growth simulations using a sparse phase-field model [2] and a Potts Monte Carlo model [3].

Before building this code, download the MMSP source code and create symbolic links to MMSP/include and MMSP/algorithms.

E.g., if you store MMSP in ~/Downloads/mmsp, run

ln -s ~/Downloads/mmsp/include source/include
ln -s ~/Downloads/mmsp/algorithms source/algorithms

In source/, the Make commands default to the phase-field model: e.g., make or make parallel will build graingrowth.out or parallel_GG.out, respectively, both of which depend on graingrowth.cpp.

To compile the Monte Carlo version, append "mc" to the commands: e.g., make mc or make parallelmc will build graingrowth.out or parallel_MC.out, respectively, both of which depend on graingrowth_MC.cpp.

To build this code on an IBM Blue Gene/Q supercomputer, make sure the IBM xl_r compiler and zlib library are available. On the Rensselaer Polytechnic Institute BG/Q, AMOS, module load xl_r experimental/zlib. Then, make bgq or make bgqmc.

The recommended mode for this program is using --nonstop, which will intialize and coarsen a simulation domain. e.g., use

mpirun -np 6 ./parallel_GG.out --nonstop 3 voronoi.000.dat 200 200 4

to initialize and save a startup file (voronoi.000.dat) and a checkpoint file after 200 steps (voronoi.200.dat), using six MPI ranks with 4 pthreads each. Make sure you have hardware support for 24 threads before running this command!

Note that AMOS is big-endian. Most consumer PCs are little-endian. If you have downloaded a binary data file generated using MMSP on AMOS, make wrongendian and run it on the file. Afterwards, you can use standard MMSP utilities (e.g., mmsp2vti) to export a file for visualization.

References:

  1. J. Gruber and T. Keller. The Mesoscale Microstructure Simulation Project. http://github.com/mesoscale/mmsp

  2. I. Steinbach and F. Pezzolla. "A Generalized Field Method for Multiphase Transformations Using Interface Fields." Physica D 134 (1999) 385-393. DOI: 10.1016/S0167-2789(99)00129-3

  3. S.A. Wright, S.J. Plimpton, T.P. Swiler, R.M. Fye, M.F. Young, and E.A. Holm. "Potts-model grain growth simulations: Parallel algorithms and applications." SAND Report (1997) 1925.

ppcproject's People

Contributors

congruili avatar tkphd avatar yixuantan avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.