@CLAUDE.md We want to build a distributed unit test for the iowarp runtime. 
Most of the code should be placed under a new directory: test/unit/distributed.

## The Unit Test

The test should focus on the bdev module. It will allocate, write, read, and
free data using different PoolQuery types.
We will test the following query types: DirectHash, Range, and Broadcast. 

### Parameters
The test should take the following inputs:
1. Number of nodes
2. Test Case: Direct, Range, or Broadcast

### DirectHash

In a for loop, use the loop iterator as the PoolQuery hash. Use this for the
Allocate, Write, Read, and Free operations.

### Range

Instead of a for loop, we will do a range query 

### Broadcast

Similar to range, except it will be a PoolQuery::Broadcast instead.

### Jarvis Package
Create a jarvis package for this unit test called wrp_distributed.
Base the unit test package on test/jarvis_wrp_runtime/jarvis_wrp_runtime/wrp_runtime/pkg.py
and test/jarvis_wrp_runtime/jarvis_wrp_runtime/wrp_benchmark/pkg.py.

We can just use LocalExec for the execution.

Build a jarvis pipeline script that launches the iowarp runtime. One
pipeline script for a local machine and another for a container, which
points to a specific hostfile path.

## Docker Compose

Let's use docker compose to emulate a distributed system. Place the distributed
Docker stuff under test/distributed. It should use iowawrp/iowarp-deps-spack:ai
as the container. It should mount the volume ~/.ppi-jarvis. It should install
the unit test into the containers. The docker compose should spawn 4 nodes.
It should also have defined a hostfile that the pipeline script should point to.
The hostfile should be autogenerated since we are creating the emulated cluster.

Let's give each container 16GB of shared and real memory.

We need to build a static configuration for the runtime in yaml format.
The main parameter to change in the configuration is the hostfile.
An example configuration is in @config/chimaera_default.yaml.

The compose should have the following sequence of commands:
Container 1-4: CHI_SERVER_CONF=/path/to/config.yaml  chi_start_runtime &
Container 1: sleep for a few seconds
Container 1: Start distributed unit test

## Bash Script

Build a bash script for executing the unit test.

