Skip to content

Releases: Psivant/stormm

STORMM Alpha v0.2.0

23 May 23:00
2afe77c

Choose a tag to compare

Overview

STORMM (Structure and TOpology Replica Molecular Mechanics) is a unique molecular mechanics package that offers dynamics and other types of analysis in a codebase built to accelerate GPU computing. Unlike other packages that focus on one molecular system at a time, STORMM combines any number of systems into one calculation for superior scaling and programming advantages.

What's New in v0.2.0

Discovery Project Integration

  • MM-GBSA Implementation: New balanced accuracy/speed scoring function for protein-ligand interactions
  • Conformational Database: Small molecule conformational database generation for initial 3D representations

Engineering Improvements

  • Integration Testing: Comprehensive testing pipeline for improved reliability, quicker bugfixes, as well as cloud-native hosting.
  • Containerization: Dockerfiles to set up CPU-only, CPU + GPU versions of STORMM, alongside pipelines to deploy your own Singularity images (alongside an entrypoint script).
  • Documentation: Enhanced documentation for running STORMM. Each program comes with a command-line navigable manual of all input commands. Developer tools make extensions with new keywords and control blocks easy to incorporate.
  • External Package Management: Improved handling of trusted third-party tooling, as well as a pipeline for adding newer C/C++ based external packages of your own. Current testing include PocketFFT and NetCDF.

Build Process Improvements

  • Memory and Resource Optimization: Reduced RAM requirements, CPU effort, and build times via an extensive rewrite of system-level processes, build systems, and memory allocation.
  • Dynamic Allocation and Hardware Detection: STORMM conducts various checks to ensure it has enough resources to run, preventing memory overflow errors. Caching and metadata handling improvements require less RAM usage for various processes. Dynamic detection of GPU and CPU architectures to ensure proper executables are built.
  • Cross Platform Support: Extended support for all UNIX and UNIX-like Operating Systems, standardizing the entire codebase with C++17 standards. Tested on Fedora, Debian, Ubuntu, macOS (CPU only), and Alpine Linux.

Testing and Validation

  • Over 2000 unique unit tests to verify over 80% of the code base
  • Most GPU computations are bitwise reproducible across all chips of a given hardware line
  • Thousands of hours of GPU simulation time, with successful comparisons against established MD codes

Key Features

Core Functionality

  • Multi-System Batching: Unmatched batching capabilities for small molecule simulations, staging tens of thousands of energy calculations in free space or hundreds in the context of a biomolecular target
  • Hybrid CPU/GPU Architecture: Seamless integration between CPU and GPU computations
  • Modern C++17 Implementation: Leveraging modern C++ features while maintaining C-like performance
  • Comprehensive MD Capabilities:
    • Coordinate and topology management
    • Force field implementations
    • Trajectory analysis
    • Molecular mechanics calculations
    • Restraint handling
    • Sampling methods
    • MM-GBSA scoring
    • Conformer generation

Technical Highlights

  • Radical New Approach: Unique algorithms and groundbreaking data structures for exceptional speed and versatility
  • Modular Dynamics Engine: Accelerates innovation through flexible architecture
  • CUDA Support: Optimized GPU kernels for accelerated computations
  • Flexible Build System: CMake-based build with extensive configuration options
  • Cross-Platform Compatibility: Support for various GPU architectures (Maxwell, Pascal, Turing, Ampere, Lovelace)
  • Docker Support: Containerized deployment options
  • Extensive Testing: Comprehensive test suite for validation
  • CI/CD Integration: Automated deployment pipeline

Integration Capabilities

  • File Format Support: Multiple molecular file format support
  • External Package Integration: Support for various external scientific computing packages
  • API Services: Deployable methods for remote execution

Development Philosophy

STORMM is developed with a focus on:

  • Harnessing practical C++ improvements while maintaining accessibility for C programmers
  • Building a clean and accessible toolkit
  • Creating a class and API structure that makes it easy to locate and understand the core mathematical implementations
  • Supporting both academic and industrial applications through open-source collaboration
  • Enabling efficient and accurate calculations for physics-based simulations
  • Competitive chemical space exploration at reduced computational cost

System Requirements

Software Requirements

  • CMake 3.18 or greater
  • C++17 compatible compiler
  • CUDA toolkit (for GPU support)
  • Optional: RDKit (for enhanced chemical informatics)
  • Python 3.x (for new Python bindings)

Hardware Support

  • CPU: Any modern x86_64 processor
  • GPU: NVIDIA GPUs with compute capability 7.5 or higher
    • Turing (7.5)
    • Ampere (8.0, 8.6)
    • Lovelace (8.9)
    • Hopper (9.0) - experimental support

Installation

Basic Installation

  1. Set environment variables:

    STORMM_SOURCE=/path/to/source
    STORMM_HOME=/path/to/source
    STORMM_BUILD=/path/to/build
    STORMM_VERBOSE=COMPACT  # or FULL for detailed output
    
  2. Build commands:

    mkdir -p ${STORMM_BUILD}
    cd ${STORMM_BUILD}
    cmake ${STORMM_SOURCE} -DCMAKE_BUILD_TYPE=RELEASE
    make -j
    make test

Build Options

  • -DCMAKE_BUILD_TYPE: RELEASE or DEBUG
  • -DSTORMM_ENABLE_CUDA: ON or OFF
  • -DSTORMM_ENABLE_RDKIT: ON or OFF
  • -DCUSTOM_GPU_ARCH: Specify target GPU architectures
  • -DCMAKE_SHOW_PTXAS: ON or OFF for kernel performance analysis
  • -DSTORMM_ENABLE_TEST_COVERAGE: Enable test coverage reporting

Other Install Methods

Executables

We have attached the executables for STORMM apps that have been compiled for the CPU, as well as for the GPU (taking architectures 7.5 through 8.9). The STORMM executables need to be given the +x permissions, and can be used in a standalone manner.

Executables without any flags give a "user manual" into flags and options that can be passed. To know more about an option, pass it in as a flag after the executable.

Docker

The Dockerfiles attached herein can help you set up a containerized version of STORMM on your local system.

Documentation

  • Comprehensive documentation available at https://stormm.psivant.com
  • Tutorials for both users and developers
  • In-code documentation using Doxygen
  • Example applications and tutorials
  • API reference documentation
  • MM-GBSA validation results and benchmarks

Contributing

STORMM is released as free and open-source software to bring together a community and advance molecular science. We welcome collaborations with academics and other experts based on mutual goals. Please refer to the coding standards and conventions in the README.md file for contribution guidelines.

License

MIT Licensed | Copyright 2023-2025 | Psivant Therapeutics