Skip to main content
The Scala NS3 network simulator produces CSV output files during each simulation run. These files capture detailed metrics about MPI communication, network device behavior, switch buffer utilization, application performance, and more. Each file type is identified by a naming pattern embedded in its filename. All output files are stored in S3 and can be accessed through the results API after a simulation completes.

How to Access Output Files

Use the simulation results endpoints to list and download output files: List result files:
Download a specific file via presigned URL:
Retrieve computed summary statistics (nd-stats, perf, pfc only):
See the Simulations API Reference for full endpoint documentation.

File Naming Convention

Output files follow the pattern:
For example, a simulation named my-sim-2026-03-17 produces files like:
  • my-sim-2026-03-17-mpi-stats-0.csv
  • my-sim-2026-03-17-nd-stats-0.csv
  • my-sim-2026-03-17-nd-stats-1.csv
The shard index (-0, -1, …) allows the simulator to split large output across multiple files.

File Types Overview

Detailed File Schemas

MPI Statistics (mpi-stats)

MPI Statistics files record per-time-step counters for MPI packet and transaction activity across the simulated cluster. Use this file to analyze MPI communication volume over time. Filename pattern: {simulation}-mpi-stats-{shard}.csv

Columns

Example Row


MPI Profiling (mpi-profiling)

MPI Profiling files capture per-core performance counters and timing breakdowns for the MPI simulation engine. Each row represents one core’s profiling snapshot at a given simulation time step. Use this file to identify bottlenecks in the parallel simulation engine. Filename pattern: {simulation}-mpi-profiling-{shard}.csv

Columns

Example Row


Remote Trace Log (scala-remote-trace-log)

Remote Trace Log files record individual remote MPI operations at trace level, capturing the source and destination ranks, buffer contents, and channel timing for each remote call. This file is useful for debugging specific MPI communication patterns and diagnosing latency in remote operations. Filename pattern: {simulation}-scala-remote-trace-log-{shard}.csv

Columns

Note: This file may be empty if no remote MPI trace events occurred during the simulation.

Example Header


Network Device Statistics (nd-stats)

Network Device Statistics files contain per-interface, per-time-step counters for every network device in the simulated topology. Each row captures packet counts, byte volumes, throughput rates, link utilization percentages, and drop counters. This is one of the three metric types that supports server-side summary aggregation via the results data endpoint. Filename pattern: {simulation}-nd-stats-{shard}.csv

Columns

Network Tiers

Example Row


Performance Metrics (perf)

Performance Metrics files capture application-level latency and transfer size measurements for each completed transaction. Each row represents one transaction observed by a traffic generator. This is one of the three metric types that supports server-side summary aggregation. Filename pattern: {simulation}-perf-{shard}.csv

Columns

Example Row


ECN/PFC Statistics (ecn-pfc-stats)

ECN/PFC Statistics files record Priority Flow Control (PFC) frame counters and Explicit Congestion Notification (ECN) marking counts per interface, per priority level. Use this data to analyze congestion events and flow control behavior. This is one of the three metric types that supports server-side summary aggregation. Filename pattern: {simulation}-ecn-pfc-stats-{shard}.csv

Columns

Note: The microsecond-duration columns are fractional (Float64); the simulator derives them from nanosecond timers divided by 1000. Server-side PFC summary values (e.g. totalTimePausedUsec) may therefore be non-integer.

Example Header


Application Report (application-report)

Application Report files describe the socket bindings established at simulation startup. Each row maps a host component and node to its application type, socket role, DSCP/ECT settings, and peer node. Filename pattern: {simulation}-application-report-{shard}.csv

Columns

Example Row


Beacon (beacon)

Beacon files record periodic heartbeat counters tracking client and server packet activity and data goodput over each reporting interval. Filename pattern: {simulation}-beacon-{shard}.csv

Columns

Example Row


CPU/Memory Statistics (cpu-mem-stats)

CPU/Memory Statistics files capture host-level resource utilization of the simulator process itself, including virtual memory, RSS, system memory, swap, and CPU time breakdowns. Filename pattern: {simulation}-cpu-mem-stats-{shard}.csv

Columns

Example Header


RoCE Transport Statistics (roce-transport-stats)

RoCE Transport Statistics files record detailed RDMA over Converged Ethernet (RoCEv2) transport-layer counters per network device. This includes packet counts by verb type, acknowledgment/NACK tracking, reordering buffer statistics, work queue entries, retransmissions, and round-trip time measurements. Filename pattern: {simulation}-roce-transport-stats-{shard}.csv

Columns

Example Header


Tier Hop (tier-hop)

Tier Hop files record the cumulative and interval packet counts traversing each network tier (spine, fabric, rack). Use this to understand traffic distribution across the network hierarchy. Filename pattern: {simulation}-tier-hop-{shard}.csv

Columns

Example Row


Topology Report (topology-report)

Topology Report files describe the static physical topology of the simulated network. Each row represents one link between two devices, including tier placement, device type, link speed, and propagation delay. This file is emitted once per simulation and does not change over time. Filename pattern: {simulation}-topology-report-{shard}.csv

Columns

Example Row


Switch Buffer Statistics (scala-switch-agg-buff-stats)

Switch Buffer Statistics files capture aggregated buffer occupancy metrics for each switch in the network. Each row reports buffer utilization for a specific buffer type (egress queue, ingress usage, or shared buffer), direction, and pool on a given switch at a given time step. Filename pattern: {simulation}-scala-switch-agg-buff-stats-{shard}.csv

Columns

Example Row


Per-Port Switch Buffer Statistics (scala-switch-buff-stats)

Per-Port Switch Buffer Statistics files carry the same measurements as the aggregate file above, but broken out per interface rather than summed across the switch. This is the only view of an individual queue’s occupancy against that queue’s own limit. Emitted only when the switch’s ReportPerPortBufferStats attribute is enabled; it is off by default, so most runs will not produce this file. Filename pattern: {simulation}-scala-switch-buff-stats-{shard}.csv

Columns

Note: Both percentage columns are clamped at 100, so an occupancy that exceeds its configured limit is not visible in them. Compute the ratio from ivl_max_bytes and buff_limit if you need the true figure.

Example Row