Repository navigation
Executive Summary & Highlights
• High-level comparison statistics and repository metrics.
• Comprehensive inventory of newly added built-ins:
• 18 Applications (e.g., maxtext, openfold3, py-nemo-2, intel-mlc, fio, iozone, su2)
• 12 Modifiers (e.g., perf, intel-vtune, amd-uprof, nvidia-smi, darshan, turbostat)
• 5 Workflow Managers (google-batch, gke-mpi, slurm-pyxis, slurm-intel-mpi, user-managed)
• 2 Package Managers (spack-pip, user-managed)
• New CLI commands (ramble create, ramble data, and ramble filter-groups).
• Core architectural enhancements (in-memory setup optimization, formatted executables, validators, regex & FOM extraction performance, unvendoring of libraries).
Full Categorized Pull Request Catalog
• All 890 pull requests indexed by category (Core Framework, CLI, Workflow Managers, Package Managers, Applications, Modifiers, Documentation, Testing/CI) with PR numbers, commit hashes, titles, and authors.
Major Features / Changes:
──────
1. New Core Object Types: Systems, Platforms, and Utilities
• System & Platform Definitions (#1541 #1541):
• Introduced systems and platforms (and their base classes syskit, platkit) as first-class Ramble object types.
• Allows declarative modeling of cluster hardware, topologies, and machine-level configurations decoupled from specific applications.
• Bootstrapped Utilities (#1590 #1590, #1705 #1705):
• Added utilities to manage and bootstrap reusable helper tools and dependencies required by other objects (e.g. spack).
──────
2. New CLI Commands & Developer Scaffolding
• ramble create (#1601 #1601):
• A new scaffolding command to generate starter boilerplate code and directory structures for new object definitions.
• ramble filter-groups & Configurable Filter Sets (#1586 #1586):
• Introduced a persistent filter_groups: configuration section in ramble.yaml and a dedicated ramble filter-groups CLI to create, manage, and apply reusable filter definitions.
• ramble data & BigQuery Schema Management (#1365 #1365):
• Added the ramble data command for managing structured experiment data and automatically generating upstream database schemas (such as Google BigQuery).
──────
3. Execution Engine & Workspace Generation Overhaul
• Formatted Executables (formatted_executable) (#860 #860, #925 https://github.
com//pull/925):
• Directives allowing executables to declaratively define structured prefixes, suffixes, custom arguments, and join separators.
• Shared Validators (register_validator) (#908 #908, #910 https://github.
com//pull/910):
• Directives to attach validation rules directly to object definitions, automatically surfaced in ramble info.
• Object Versioning (#1369 #1369, #1411 #1411):
• Added explicit object versioning support with scoped version variables.
──────
4. Cloud, Container, and HPC Workflow Managers
• Cloud Orchestration:
• google-batch (#860 #860): Native workflow manager for submitting, monitoring, and capturing experiments
running on Google Cloud Batch.
• gke-mpi (#1152 #1152): Integration for orchestrating MPI jobs across Kubernetes clusters via the Kubeflow MPI Operator.
• Containerized Slurm Execution:
• slurm-pyxis (#1014 #1014): First-class support for containerized HPC execution under Slurm via Pyxis and Enroot.
• user-managed Workflow & Package Managers (#882 #882):
• Allows running experiments in environments where software and execution pipelines are externally pre-configured without forcing Spack or a batch scheduler.
──────
5. Analysis Engine Redesign & FOM Extraction
• Strategy Pattern for Analysis (#1727 #1727):
• Decoupled FOM extraction into forward and backward analysis strategies (lib/ramble/ramble/analysis/).
• Result Serialization & Fast Tables (#1331 #1331):
• Added result caching to bypass redundant regex evaluation during repeated ramble analyze runs, backed by a faster results_table engine.
• FOM Out-File Targeting & Workflow FOMs (#888 #888, #917 https://github.
com//pull/917):
• Enabled figures of merit to target specific arbitrary output logs, and allowed workflow managers themselves to emit system-level FOMs (e.g. queue duration, node allocation info).
──────
6. Architectural Modernization & Code Cleanup
• Unvendoring Core Dependencies (#1788 #1788, #1789 #1789,
#1792 #1792):
• Removed vendored copies of jsonschema, jinja2, markupsafe, and archspec, moving to standard pip/wheel requirements.
• Pruned Unused Spack Internals (#1259 #1259, #1450 #1450):
• Purged tens of thousands of lines of unused Spack utility code and test files, making the Ramble library significantly lighter and faster to load.
• Python 3.6 to 3.13+ Compatibility:
• Broadened test matrices and cleaned up deprecated AST/standard library invocations across modern Python versions.