Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9cd0c04
Add other files required for simplep2p flow model
sanjaychari Jul 7, 2026
cc08951
Add initial switch and terminal flow model
sanjaychari Jul 7, 2026
b9f8395
Revert "Add other files required for simplep2p flow model"
sanjaychari Jul 7, 2026
3e354de
Improve fluid switch validation logs
sanjaychari Jul 8, 2026
5836a0b
Replace per switch queue buffer with shared buffer
sanjaychari Jul 8, 2026
fb49e94
Add reverse handler for switch-terminal fluid flow model
sanjaychari Jul 8, 2026
684a2bf
Optimizations for fluid flow simn efficiency
sanjaychari Jul 8, 2026
26d6ea1
Add ROSS commit handler and csv logging for fluid simn
sanjaychari Jul 8, 2026
31956fd
Clean up fluid switch logging
sanjaychari Jul 9, 2026
bf42b2a
Add topology generator script for fluid flow simn
sanjaychari Jul 9, 2026
b01e386
Replace max_min_fair with round robin for fluid flow simn
sanjaychari Jul 9, 2026
de231cf
Add fluid flow wan tests for CI
sanjaychari Jul 9, 2026
8cbc4b9
Merge branch 'master' into digital-twin-sbir-develop-switch-flow-control
sanjaychari Jul 9, 2026
a72907a
Fix clang format errors
sanjaychari Jul 9, 2026
de76ae3
Fix MPI EXEC handler for fluid flow wan simn tests
sanjaychari Jul 9, 2026
fb23b0c
Fix yaml loading issue in fluid flow simn test
sanjaychari Jul 9, 2026
13ca4c7
Make fluid flow wan simn tests use sync instead of synch
sanjaychari Jul 9, 2026
9297423
Fix Ubuntu 24.04 mpich tests
sanjaychari Jul 9, 2026
eb21844
Revert MPI launcher workflow override
sanjaychari Jul 9, 2026
6d4f8b4
Use matching MPI launcher for CTest
sanjaychari Jul 9, 2026
9b8b09d
Add diagnostics for MPI used in CI
sanjaychari Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ jobs:
# ROSS install prefix; find_package(ROSS) honors ROSS_ROOT, so the CODES
# presets need no hardcoded path. Matches the install prefix below.
ROSS_ROOT: ${{ github.workspace }}/ross-install
UCX_TLS: "self,tcp"
steps:
- name: Checkout CODES
uses: actions/checkout@v4
Expand Down Expand Up @@ -113,6 +114,17 @@ jobs:
sudo apt-get install -y clang
fi

echo "MPI diagnostics:"
which mpiexec || true
which mpiexec.mpich || true
which mpirun || true
which mpirun.mpich || true
which mpicc || true
mpiexec --version || true
mpiexec.mpich --version || true
mpicc -show || true
dpkg -l | grep -E 'mpich|ucx|openmpi' || true

- name: Install system dependencies (macOS)
if: runner.os == 'macOS'
run: |
Expand Down Expand Up @@ -282,6 +294,7 @@ jobs:
env:
# ROSS install prefix; find_package(ROSS) honors ROSS_ROOT (CODES presets).
ROSS_ROOT: ${{ github.workspace }}/ross-install
UCX_TLS: "self,tcp"
# detect_leaks=0: corruption detection first; leaks are the noisiest part
# (MPICH internals + CODES's known unfreed globals) and come later with a
# suppression file. abort_on_error=1: guarantee a nonzero exit so ctest
Expand Down Expand Up @@ -379,6 +392,7 @@ jobs:
env:
# ROSS install prefix; find_package(ROSS) honors ROSS_ROOT (CODES presets).
ROSS_ROOT: ${{ github.workspace }}/ross-install
UCX_TLS: "self,tcp"
steps:
- name: Checkout CODES
uses: actions/checkout@v4
Expand Down
3 changes: 3 additions & 0 deletions doc/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ configure_file(tutorial-ping-pong-surrogate.conf.in tutorial-ping-pong-surrogate
configure_file(kb.dfdally-72-zeromq-director.conf.in kb.dfdally-72-zeromq-director.template.conf.in @ONLY)
configure_file(kb.dfdally-72-event-time-director.conf.in kb.dfdally-72-event-time-director.template.conf.in @ONLY)
configure_file(kb.dfdally-72-milc-small.workload.conf.in kb.dfdally-72-milc-small.workload.template.conf.in @ONLY)
configure_file(fluid-flow-wan.conf.in fluid-flow-wan.template.conf.in @ONLY)
configure_file(kb.dfdally-72-zeromq-director.conf.in kb.dfdally-72-zeromq-director.template.conf.in @ONLY)

set(single_quote "'")
Expand Down Expand Up @@ -42,6 +43,8 @@ configure_file(tutorial-ping-pong-surrogate.conf.in tutorial-ping-pong-surrogate
configure_file(kb.dfdally-72-zeromq-director.conf.in kb.dfdally-72-zeromq-director.conf)
configure_file(kb.dfdally-72-event-time-director.conf.in kb.dfdally-72-event-time-director.conf)
configure_file(kb.dfdally-72-milc-small.workload.conf.in kb.dfdally-72-milc-small.workload.conf)
configure_file(fluid-flow-wan.conf.in fluid-flow-wan.conf)
configure_file(kb.dfdally-72-milc-small.json kb.dfdally-72-milc-small.json COPYONLY)
configure_file(kb.dfdally-72-milc-small.alloc.conf kb.dfdally-72-milc-small.alloc.conf COPYONLY)
configure_file(fluid-flow-wan-topology.yaml fluid-flow-wan-topology.yaml COPYONLY)
configure_file(kb.dfdally-72-zeromq-director.conf.in kb.dfdally-72-zeromq-director.conf)
24 changes: 24 additions & 0 deletions doc/example/fluid-flow-wan-topology.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
topology:
switches:
A:
terminals: 2
terminal_bandwidth: "20 Mbps"
switch_buffer: "1000 Mb"
connections:
B: "15 Mbps"

B:
terminals: 2
terminal_bandwidth: "25 Mbps"
switch_buffer: "1000 Mb"
connections:
A: "15 Mbps"
C: "10 Mbps"

C:
terminals: 2
terminal_bandwidth: "20 Mbps"
switch_buffer: "1000 Mb"
connections:
A: "10 Mbps"
B: "15 Mbps"
45 changes: 45 additions & 0 deletions doc/example/fluid-flow-wan.conf.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Interval-fluid switch/terminal pure-PDES example.
# Run from the build directory, for example:
# mpirun -np 1 ./src/model-net-fluid-flow-wan --synch=1 -- doc/example/fluid-flow-wan.conf

LPGROUPS
{
FLUID_FLOW_WAN_GRP
{
repetitions="1";
fluid-flow-wan-switch-lp="3";
fluid-flow-wan-terminal-lp="6";
}
}

PARAMS
{
message_size="32768";
pe_mem_factor="1024";
}

FLUID_FLOW_WAN
{
topology_yaml_file="fluid-flow-wan-topology.yaml";

interval_seconds="1";
num_send_intervals="20";
num_drain_intervals="20";
rng_seed="12345";

terminal_send_every_n_intervals="1";
terminal_send_probability="1.0";
terminal_min_send_mbit="0";
terminal_max_send_fraction_of_link_capacity="1.0";

debug_prints="0";
# This can be either round_robin or fifo.
switch_scheduler="round_robin";
round_robin_max_entries_per_egress="8";
round_robin_quantum_mbit="0";

terminal_log_path="../../zmqml_artifacts/fluid-flow-wan/terminal-events.csv";
switch_log_path="../../zmqml_artifacts/fluid-flow-wan/switch-events.csv";
flowlet_log_path="../../zmqml_artifacts/fluid-flow-wan/flowlet-events.csv";
switch_training_log_path="../../zmqml_artifacts/fluid-flow-wan/switch-training.csv";
}
2 changes: 2 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ add_executable(model-net-synthetic network-workloads/model-net-synthetic.c)
add_executable(model-net-synthetic-slimfly network-workloads/model-net-synthetic-slimfly.c)
add_executable(model-net-synthetic-fattree network-workloads/model-net-synthetic-fattree.c)
add_executable(model-net-synthetic-dragonfly-all network-workloads/model-net-synthetic-dragonfly-all.c)
add_executable(model-net-fluid-flow-wan network-workloads/model-net-fluid-flow-wan.cxx)

set(CODES_TARGETS
topology-test
Expand All @@ -214,6 +215,7 @@ set(CODES_TARGETS
model-net-synthetic-slimfly
model-net-synthetic-fattree
model-net-synthetic-dragonfly-all
model-net-fluid-flow-wan
)

if(USE_DUMPI)
Expand Down
Loading
Loading