logmap - a microbenchmark with controllable arithmetic intensity
A logistic map is a simple mathematical model that exhibits chaotic behavior. This repository contains a microbenchmark that is based on the logistic map that can be controlled to have a desired arbitrary workload and desired arbitrary arithmetic intensity.
The microbenchmark works by iterating each element of an array of floating-point
numbers x
of size N
using the logistic map formula for a
specified number of iterations niter
. The logistic map formula is given by:
where
r
is a constant that determines the behavior of the
logistic map. The value of r
is selected to be within the range [3.5, 4.0] to
ensure that the logistic map exhibits chaotic behavior. The chaotic nature of
the logistic map ensures that the benchmark hardware is not susceptible to
effects of input-dependent power
consumption.
The arithmetic intensity of the benchmark is directly proportional to the number
of iterations niter
and independent of the size of the array N
and can be
written as
where k_i
is the arithmetic intensity for a single iteration of the logistic
map for a single input. The workload of the benchmark is directly proportional
to the size of the array N
and directly proportional to the number of
iterations niter
and can be written as
where k_w
is the floating-point operations per element of the array x
for a
single iteration of the logistic map.