From 914c4dc9598b046f8f58e91dee2b673c40c01d44 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sat, 17 Jun 2017 21:37:52 +0200 Subject: Add scale-bench file. * benchmarks/scale-bench: New file. --- benchmarks/scale-bench | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 benchmarks/scale-bench diff --git a/benchmarks/scale-bench b/benchmarks/scale-bench new file mode 100644 index 0000000..6c67ed6 --- /dev/null +++ b/benchmarks/scale-bench @@ -0,0 +1,36 @@ +#!/usr/bin/env guile +!# +;; -*- scheme -*- + +(use-modules (ice-9 match) + (ice-9 threads) + ((ice-9 rdelim) #:select (read-line)) + ((srfi srfi-1) #:select (filter-map append-map))) + +(define iteration-count 20) + +(define-syntax-rule (time exp) + (let ((start (get-internal-real-time))) + exp + (let ((end (get-internal-real-time))) + (/ (- end start) 1.0 internal-time-units-per-second)))) + +(define (run-test ncores args) + (time (apply system* "taskset" "-c" (format #f "0-~a" (1- ncores)) + args))) + +(define (main args) + (format #t "Core count,~a\n" (string-join args " ")) + (let lp ((ncores 1)) + (when (<= ncores (total-processor-count)) + (let lp ((iteration 0)) + (when (< iteration iteration-count) + (let ((result (run-test ncores args))) + (format #t "~a,~a\n" ncores result)) + (lp (1+ iteration)))) + (lp (1+ ncores))))) + +(when (batch-mode?) + (match (program-arguments) + ((_ script . args) + (main (cons script args))))) -- cgit v1.2.3