Releases: Psivant/stormm
STORMM Alpha v0.2.0
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
-
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 -
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:RELEASEorDEBUG-DSTORMM_ENABLE_CUDA:ONorOFF-DSTORMM_ENABLE_RDKIT:ONorOFF-DCUSTOM_GPU_ARCH: Specify target GPU architectures-DCMAKE_SHOW_PTXAS:ONorOFFfor 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