BALROG benchmark inputs — reproduce the CPU baseline yourself
=============================================================

These are the exact inputs behind the figures published at
https://balrog.run/notes/benchmark.html : one transmitter over 0.6 degrees
of Ile-de-France terrain, 800 MHz. The engine walks 5,930 azimuthal
profiles of 1,335 points each; 5,950,136 receiver points fall inside the
0.6 x 0.6 degree output grid — that is the point count every published
figure refers to.

You do not need anything from us to time the baseline: the reference
implementation is public code from the U.S. NTIA/ITS, and this archive
contains the terrain and every parameter. What you measure is yours.

Contents
--------
LR_param            The eleven Longley-Rice physics parameters, in NTIA
                    order: surface refractivity N0 = 320.0, ground
                    epsilon = 15.0, conductivity sigma = 0.005 S/m,
                    fraction of situations = 0.5, climate = 5
                    (continental temperate), polarisation = 1 (vertical),
                    fraction of time = 0.5, siting criteria tx/rx =
                    1.001 / 6.001, receiver height 2.0 m, transmitter
                    height 23.0 m.
LR_frequences       800 (MHz).
LR_transmit_pos     Transmitter longitude latitude (degrees, WGS84):
                    2.49998610 48.4998610.
LR_transmit_size    Transmitter height above ground: 23.0 m.
LR_local_terrains   Computation domain, SW then NE corner:
                    lon 2.2 to 2.8, lat 48.2 to 48.8 (0.6 x 0.6 deg).
N48E002.hgt.gz      The SRTM1 tile (1 arc-second, 3601 x 3601 samples)
                    covering the domain. SRTM is produced by NASA/USGS
                    and is in the public domain; this is an unmodified
                    copy, gunzip it before use.

Reproducing the baseline
------------------------
1. Get the reference implementation: https://github.com/NTIA/itm
   (the published C++ of the Irregular Terrain Model, public source).
2. Build it with full optimisation, e.g. -O3 -march=native.
3. For each of the 5,930 azimuthal profiles, extract the terrain profile
   from the tile (1,335 points per profile) and call the model with the
   parameters above.
   Prepare the profiles in advance, outside the timed section: the
   published 55.0 s covers the model arithmetic only, which is the most
   favourable measurement the baseline can honestly be given.
4. Compare: one core of a desktop CPU (i5-8600K measured) takes on the
   order of 55 s for the 5.95 M points. Sharding over all six physical
   cores measured 11.4 s.

The full methodology, including the baseline correction we made against
our own interest (38.9 s -> 55.0 s) and the GPU clock trap, is written up
at https://balrog.run/notes/benchmark.html .

The GPU side
------------
The same computation runs in the live console at https://balrog.run/live.html
on real hardware, or on your own GPU with the 90-day evaluation
(https://balrog.run/#contact). Figures published for the GPU side: 92 ms
for this exact grid on a mid-range gaming card, 51 ms for every further
scenario on the same terrain.

Questions: contact@balrog.run
