Memory
Builds on Common Methodology
Measures sustained main-memory bandwidth with the STREAM Triad benchmark across three 610.4 MiB arrays using one OpenMP thread per requested vCPU.
Data-science workloads, in-memory analytics, and large language or compiler toolchains frequently bottleneck on how fast the system can stream data between main memory (DRAM) and the CPU rather than on raw clock speed. Two providers that sell the same 2 vCPU / 4 GiB can differ in memory bandwidth, for example by the CPU model a sandbox lands on.
The Memory tab measures sustainable memory bandwidth using John McCalpin's STREAM Triad benchmark across arrays sized to bypass CPU caches.
View the Procedure View STREAM Triad Results Download Raw Data
Metrics
STREAM Triad is the sustained main-memory bandwidth of the STREAM Triad kernel (a[i] = b[i] + scalar * c[i]) across 2 OpenMP threads, reported in GB/s of 10^9 bytes/s.
| Timed Part | Starts | Ends |
| STREAM Triad | STREAM begins its benchmark. | STREAM exits after 20 passes; its rate is the best Triad pass by its own clock, in 10^9 bytes/s. |
B_{\mathrm{Triad},\,i} = \dfrac{B_{\mathrm{Triad,MB/s},\,i}}{1000} = \dfrac{3 \times 8 \times N_{\mathrm{elem}}}{\min_{p \in \{2,\,\dots,\,20\}} t_{i,p} \times 10^{9}}
-
B_{\mathrm{Triad},\,i} Best Triad rate of trial i in decimal gigabytes per second (10^9 bytes/s), rounded to three decimal places. -
B_{\mathrm{Triad,MB/s},\,i} Best Triad rate of trial i as STREAM prints it, in 10^6 bytes/s. -
N_{\mathrm{elem}} Number of 8-byte double elements per array, 80,000,000. -
t_{i,p} Elapsed time in seconds of pass p in trial i on STREAM's internal clock, for passes 2 to 20.
Each Triad pass streams two double arrays of 625,000 KiB each (b and c, eighty million elements each) and writes one double array of 625,000 KiB (a), transferring 3 * 640,000,000 = 1,920,000,000 bytes (1.92 GB decimal / 1.83 GiB binary) per pass.
Across 20 passes, STREAM discards pass 0, takes the minimum time across the remaining passes, reports Best Rate MB/s (10^6 bytes/s), and we divide by 1,000 to publish GB/s (10^9 bytes/s).
Measurement
Each trial uses a sandbox created from BoxRouter's pinned standard image, running a static Linux x86_64 build of John D. McCalpin's STREAM 5.10 (stream, verified by SHA-256).
- Create sandbox and run readiness check.
- Record CPU model, L3 cache size, and memory facts, then upload and verify the static
stream binary. - Bandwidth Run
OMP_NUM_THREADS=2 ./stream for 20 passes as a polled background script in shuffled order alongside the 7-Zip tests and verify "Solution Validates". Timed - Destroy sandbox.
The stream binary is compiled with 80,000,000 double elements per array (625,000 KiB / 610.4 MiB each, 1.83 GiB total across a, b, and c) and NTIMES = 20.
The hardware probe records visible CPU count (nproc), processor model name, instruction flags (SHA-NI, AVX2, AVX-512), L3 cache capacity, cgroup CPU quota (cpu.max), and available memory.
Scope Limits and Caveats
- Measures sequential vector streaming from DRAM rather than random pointer-chasing access time or CPU compute speed; always uses 2 OpenMP threads for the 2 requested vCPUs.
- Where the sandbox reports more than 160 MB of L3 cache, one array is under four times the cache, which breaks STREAM's run rule, and the array-size check records a note on those trials.
Failures and Exclusions
Outcome classifications, top-up rounds, and outlier rules follow Common Methodology; the first failed step ends the trial without in-trial retries.
A trial succeeds only when the stream binary SHA-256 matches the pinned SHA-256, stream exits 0, stdout includes Solution Validates and a positive Triad: rate, the guest clock passes the twenty-millisecond /proc/uptime gate, and the shared sandbox is confirmed destroyed.
| Step | Time Limit |
| Create | 5 min |
| CPU facts | 30 s |
| STREAM Triad | 2 min |
| Destroy | 5 min |
Statistics
- Based On
-
Common Methodology
Per-unit percentiles, bootstrap confidence intervals, and tail rules follow Common Methodology.
A provider is ranked once it has at least 5 successful trials.
Sandbox and Trials
- Image Digest
-
sha256
- Image Version
-
0.3.11
- Image Registry Page
-
View on the Registry
- Pull the Image
-
docker pull ghcr.io/boxrouter/standard-image@sha256:89d4c97048dbdfb8b6d85ad91833962ff38d1c334a5f47e6de80a9762310191b Copy
- Lifetime
-
20.0 min
- Idle Connection Time
-
5.0 min
From Common Methodology
- Idle Connection Exceptions
-
| Provider | Rule | File Transfer Idle Time |
| Daytona | The SDK has no idle-timeout setting. Its command channel keeps its connection open, and its file-transfer channel reconnects after 5 s of idle time. | 5.0 s |
From Common Methodology
- Network Path Attempts
-
10
From Common Methodology
- Mode
-
Single
- Sandboxes per Trial
-
1
- Parallel Trials
-
10
- Concurrent Sandboxes
-
1
At a Glance
- Quantity
-
Bandwidth
- Per
-
Trial
- Unit
-
Gigabytes per Second (GB/s)
- Direction
-
Higher Is Better
- Statistic
-
Median
- Clock
-
Sandbox clock
From Common Methodology
- Machine Size
-
2 vCPU / 4 GiB
- Trials
-
40