Skip to content

Sys-KU/gups

Repository files navigation

GUPS — Giga Updates Per Second Benchmark

Configurable memory access benchmark that generates known access patterns for DAMON evaluation.

Build

make -C pcg-c/src   # build PCG RNG library (first time only)
make

Requires: gcc, libnuma-dev, libpthread

Usage

Zipfian distribution (mode 0)

./gups 0 <nr_threads> <wss_MB> <elem_size> <theta> \
         <logging> <randomize> <duration> <migrate> [pattern_interval]

Hotspot distribution (mode 1)

./gups 1 <nr_threads> <wss_MB> <elem_size> <hss_MB> \
         <hot_pct> <logging> <randomize> <duration> <migrate> [pattern_interval]

Parameters

Parameter Description
nr_threads Number of worker threads (max 32)
wss_MB Working set size in MB
elem_size Element size in bytes
theta Zipfian skew parameter (0 < theta < 1)
hss_MB Hot set size in MB (hotspot mode)
hot_pct Percentage of accesses to hot set (0-100)
logging Log interval (every N-th accepted access writes a timestamp); 0 = disabled
randomize 1 = apply LFSR permutation to indices
duration Benchmark duration in seconds
migrate 1 = migrate pages from NUMA node 0 to node 1 before benchmark
pattern_interval Seconds between hot-set pattern shifts; 0 or omitted = disabled

Output

  • GUPS_timeline(sec) value — per-second throughput (10^9 updates/s)
  • bench.address — file containing <start_addr> <end_addr> of the mmap'd working set
  • log_<tid>.txt — per-thread timestamp logs for evaluation replay

Source files

File Description
gups.c Main benchmark: argument parsing, thread management, worker loop
gups.h Thread argument struct
dist.h Distribution interface (dist_ctx, dist_ops) and inline helpers
dist_zipf.c Zipfian distribution implementation
dist_hotspot.c Hotspot distribution implementation
timer.c / timer.h elapsed() utility

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors