Git Product home page Git Product logo

gromax's Introduction

Build Status codecov

Gromax

Gromax is a tool to help optimize GROMACS performance on any hardware, particuarly useful for working with GPUs.


Today's molecular simulation engines are complicated. To get the most performance out of Gromacs and other packages, there are a large number of simulation parameters that need to be considered and tweaked. With the incorporation of GPUs this problem becomes even more complicated, and differing flags and options between yearly releases of Gromacs adds yet another layer of complexity. Gromax is here to help.

Installation

Via pip

To install the most recent release:

pip install git+https://github.com/scal444/[email protected]

To install the current master version:

pip install git+https://github.com/scal444/gromax

Requirements

  • python 3.7 or greater

Capabilities

  • Given a Gromacs TPR file and a description of the hardware (CPU count and GPU IDs), generate a series of Gromacs run commands to explore which parameters provide the best performance for the hardware.
  • Supports Gromacs major versions 2016, 2018, 2019, 2020, and 2021.
  • Break down the available hardware into subcomponents to assess maximum throughput on a single node.
  • Generates a simple bash script to execute
  • Analyzes results and reports best paramater combinations.

See the future work doc for planned features.

Usage

You can find some details via the help text(gromax --help). See the various possible usages in the examples doc!

Notes

  • Gromax is designed for single node optimization and works best with non-MPI gromacs (think gmx binary rather than gmx_mpi). It may work with an MPI-compiled Gromacs, but no guarantees. Non-MPI Gromacs does have a limit of 64 threads, which should be sufficient for most purposes.
  • Some simulation features (free energy, thermostats) affect which runtime optimizations can be used. Gromax currently does not take these into account, so a few simulation combinations may fail with valid errors. Send me an email or open up a bug report if you're unsure if this is the case with your failures.

Contributing

  • Feel free to file an issue bug/feature request, or create a PR. There is a known issues doc for problems that are known but can't yet be addressed.

Release notes

Other awesome resources

  • Want to see how well your system scales to various clusters? Check out MDBenchmark!

gromax's People

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.