Skip to content

Rust Bindings, IO Adapters, CMake #382

Closed
nrj5k wants to merge 38 commits into
iowarp:mainfrom
nrj5k:tweaks/aneris
Closed

Rust Bindings, IO Adapters, CMake #382
nrj5k wants to merge 38 commits into
iowarp:mainfrom
nrj5k:tweaks/aneris

Conversation

@nrj5k
Copy link
Copy Markdown

@nrj5k nrj5k commented Apr 10, 2026

  • Rust Bindings + telemetry collection improvements.
  • Release build works 3x speed improvements
  • Bdev coroutines are async
  • Adios Adapter works; moved from Coeus namespace
  • setup for ebpf intercepter using Aya in Rust
    • for POSIX and STDIO alternatives to libfuse
    • lower overhead but ebpf complexities and cgroup cap needs
  • improvements to POSIX and STDIO
    • still doesn't work; exclusion lists need tweaking
  • CMake modifications for above integrations
  • CMake tweaks to make libfuse and other lib detection more robust

Neeraj Rajesh and others added 30 commits April 2, 2026 03:47
…with async/sync APIs, telemetry support, and improved CMake integration
…sync/sync APIs, telemetry support, and improved CMake integration
…arks and configure Rust bindings after C++ targets
Adds a new CMake module to automatically configure Rust toolchain paths when `WRP_CORE_ENABLE_RUST` is enabled. The module detects rustup, extracts active toolchain info, and sets `Rust_COMPILER`, `Rust_CARGO`, and `Rust_RUSTUP` accordingly. Also updates Corrosion to v0.5.1 and ensures cmake module path is set before including AutoConfigureRust.

BREAKING CHANGE: Removes implicit Rust detection; now requires explicit inclusion of AutoConfigureRust.cmake when using WRP_CORE_ENABLE_RUST=ON
…and add tier movement tracking

This commit enables MPI, ELF, and several CTE adapters by default in the CMake configuration. It also introduces a new tier movement tracker in Rust for monitoring data placement changes, along with related telemetry enhancements. The Rust bindings are extended with blob info querying capabilities and improved build configurations.
…to retrieve blob metadata with block placement details
…prove C++17 compatibility for ADIOS2 adapter
…ng with new ADIOS2 wrapper

- Introduce timeout parameter to client_poll_telemetry_raw in C++ FFI
- Update Rust async/sync clients to accept timeout_sec in poll_telemetry
- Add Aneris_telemetry_adios.in wrapper script for ADIOS2 applications
- Configure IPC directory to /dev/shm to avoid CAE path filtering issues
- Extend aneris-profiler with --realtime and --no-telemetry flags
- Improve cereal include path detection in build.rs
- Add telemetry_available helper for O(1) telemetry status checks
- Refactor Tag implementation to remove Mutex and use spawn_blocking exclusively
- Add Tag::duplicate for concurrent operations safety
- Update examples and tests to use new timeout-enabled API
…te visibility and update transport factory implementations
…zation with SIMD-optimized hot set and lock-free batching
…ception with ring buffer communication and capability detection
Syncing main to get libfuse
…n FUSE adapter with marker tags and readdir deduplication
…Rust-based kernel and userspace components
Neeraj Rajesh added 8 commits April 10, 2026 01:51
…ntegration and page-based I/O for CTE tags
… data_offset in Phase 1

The data_offset variable is now updated during the I/O submission loop (Phase 1) rather than after completion (Phase 2). This change removes redundant calculations of block sizes during I/O completion and ensures consistent offset handling across both write and read paths. The comment clarifies that data_offset is no longer managed in Phase 2.
…optional with graceful fallbacks

- Change blosc2 from REQUIRED to optional dependency with status messages
- Make snappy optional and disable FUSE adapter features when not found
- Convert ADIOS2 to optional dependency with automatic feature disabling
- Update Gray-Scott analysis tool to conditionally compile based on ADIOS2 availability
- Add detailed FUSE performance documentation and benchmarks
- Implement configurable page size for FUSE adapter with environment variable support
- Improve FUSE integration tests with custom page size scenarios
- Optimize FUSE kernel cache settings and document 4KB page performance issues
- Reorder CteIsExplicitDir declaration for better code organization
…::vector in core tasks and update Tag API to use shared memory strings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants