Repository navigation
v0.7.0 #1861
douglasjacobsen
announced in
Announcements
v0.7.0
#1861
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
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.
This discussion was created from the release v0.7.0.
All reactions