Getting Started
Get IOWarp running in 5 minutes.
Docker (Recommended)
The fastest way to get started with IOWarp is using Docker Compose. This method handles all dependencies and provides a consistent environment across different systems.
docker-compose.yml
services:
iowarp-runtime:
image: iowarp/iowarp:latest
container_name: iowarp-runtime
volumes:
- ./wrp_conf.yaml:/etc/iowarp/wrp_conf.yaml:ro
ports:
- "5555:5555"
shm_size: 8g
mem_limit: 8g
ipc: shareable
stdin_open: true
tty: true
restart: "no" Run Command
clio deploy --mode docker
The -d flag runs the container in detached mode. Use docker-compose logs -f to view runtime logs.
Important Configuration Notes
- • shm_size: 8g — Required for Hermes shared memory IPC. Increase if you need larger shared memory allocations.
- • ipc: shareable — Enables inter-process communication between containers.
- • Port 5555 — Default ZeroMQ port for IOWarp runtime communication. Change in wrp_conf.yaml if needed.
Configuration
IOWarp uses a YAML configuration file (wrp_conf.yaml) to define runtime modules, storage tiers, and system parameters.
wrp_conf.yaml Example
compose:
- mod_name: wrp_cte_core
pool_name: wrp_cte
pool_query: local
pool_id: 512.0
storage:
- path: "ram::cte_ram_tier1"
bdev_type: "ram"
capacity_limit: "16GB"
score: 0.0 compose Section
- mod_name: Name of the runtime module to load (e.g.,
wrp_cte_core) - pool_name: Memory pool identifier for this module
- pool_query: Pool query type (
local,remote) - pool_id: Unique pool identifier (float)
storage Section
- path: Storage path identifier. Format:
tier_name::storage_name - bdev_type: Block device type:
ram,nvme,file,async - capacity_limit: Maximum storage capacity (e.g.,
16GB,1TB) - score: Placement score (0.0 = highest priority, higher = lower priority)
Storage Tier Explanation
IOWarp uses a hierarchical storage model with multiple tiers. The score parameter determines placement priority:
- • score: 0.0 — Critical tier (GPU HBM, fastest RAM)
- • score: 1.0-10.0 — Working tier (NVMe SSDs)
- • score: 10.0-100.0 — Reference tier (Parallel File System)
- • score: 100.0+ — Archive tier (Tape, Cloud)
Spack Installation
For HPC environments and native installations, IOWarp is available via Spack. This method provides optimized builds for your specific system architecture.
Installation Commands
spack install iowarp
spack load iowarp Spack Variants
Customize your IOWarp installation with Spack variants:
# With CUDA support for GPU operations
spack install iowarp +cuda
# With MPI support for multi-node deployments
spack install iowarp +mpi
# With specific compiler
spack install iowarp %gcc@12
After installation, start the runtime with: clio deploy
Running Benchmarks
IOWarp includes comprehensive benchmarks to test performance and verify your installation. The benchmark suite covers various I/O patterns and storage tiers.
Basic Benchmark Run
cd demos/benchmark
docker-compose up Custom Benchmark Parameters
TEST_CASE=Get IO_SIZE=4m IO_COUNT=1000 docker-compose up Benchmark Parameters
| Parameter | Description | Default |
|---|---|---|
TEST_CASE | Benchmark test case: Get, Put, PartialGet, PartialPut | Get |
NUM_PROCS | Number of parallel processes | 1 |
DEPTH | Queue depth for async operations | 1 |
IO_SIZE | Size of each I/O operation (e.g., 4m, 1g) | 1m |
IO_COUNT | Number of I/O operations to perform | 100 |
Example Benchmark Scenarios
TEST_CASE=Get IO_SIZE=1g IO_COUNT=10 docker-compose up TEST_CASE=Put IO_SIZE=64k IO_COUNT=10000 NUM_PROCS=4 docker-compose up TEST_CASE=PartialGet IO_SIZE=4m IO_COUNT=1000 DEPTH=8 docker-compose up