Skip to content

Latest commit

 

History

History
88 lines (64 loc) · 4.03 KB

File metadata and controls

88 lines (64 loc) · 4.03 KB

Project banner

NERDSS Development

Release License C++ Make Platforms

Structure-Resolved Reaction-Diffusion Simulation Software by Johnson Lab, JHU

Installation

To build serial NERDSS, you need:

  1. A C++ compiler:
    • For macOS, install XCode
    • For Ubuntu, install a compiler through apt
  2. GNU Scientific Library (GSL) version 1.0 or higher:
    • For macOS, install via Homebrew
    • For Ubuntu, install via apt
  3. To compile using make:
    • Navigate to the main directory
    • Run make serial
    • The executable will be placed in the ./bin directory

To build parallel NERDSS, you need to checkout to the mpi branch:

  1. MPI:
    • For macOS, install OpenMPI with Homebrew: brew install open-mpi
    • For Ubuntu, install OpenMPI through apt: sudo apt install openmpi-bin libopenmpi-dev
  2. To compile using make:
    • Navigate to the main directory
    • Run make mpi (with profiling support: make mpi ENABLE_PROFILING=1)
    • The executable will be placed in the ./bin directory

Run Simulations

Run a quick trial with Google Colab

Click the following link to make a copy of the iPython notebook in your Google Colab and following the instructions on the Notebook (Note currently the link is under NERDSS development repo. The link will need to be updated once synced to released repo)

Open in Colab

Run a quick trial with our server

Go to the NERDSS server.

Compile and run NERDSS on your local machine

  1. Example input files are located in the subdirectories within the sample_inputs folder. They can also be generated using the python GUI program, which is also included in the ioNERDSS tool.

  2. To start the serial simulation, use the command ./nerdss -f parms.inp.

  3. To start the parallel simulation, use the command mpirun -np $nprocs ./nerdss_mpi -f parms.inp.

  4. To debug the parallel code, use the command mpirun -np 2 xterm -e gdb --ex 'b error' --ex r --args ./nerdss_mpi -f parms.inp -s 123.

Analyzing Results

  1. Use the ioNERDSS PyPi library for visualizing simulation results.
  2. Install ioNERDSS with pip install ioNERDSS.
  3. Refer to the ionerdss repository for more details.

Best Practices for Developers

  1. Choose meaningful names for variables, functions, and classes. Comment on complex logic, and maintain consistent indentation and formatting. Use CamelCase for variables, snake_case for functions, and PascalCase for classes. Avoid global variables.
  2. Follow the Google C++ Style Guide and the C++ Core Guidelines. Prefer using the C++ Standard Library and modern C++ features. Provide comments and documentation to explain complex or non-obvious code sections. Write unit tests to ensure code quality.