JSON Output

The output of the configuration, settings, timings and results in machine-readable json-format can be enabled as described in Execution of a Benchmark

When enabled, this creates a json file which will have some information for all benchmarks. In the following example the different informations are left out, so these are the same for all benchmarks.

{
  "config_time": "Mon Dec 05 15:09:08 UTC 2022",
  "device": "Intel(R) FPGA Emulation Device",
  "environment": {
    "LD_LIBRARY_PATH": "/opt/software/pc2/EB-SW/software/Python/3.9.5-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libffi/3.3-GCCcore-10.3.0/lib64:/opt/software/pc2/EB-SW/software/GMP/6.2.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/SQLite/3.35.4-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/Tcl/8.6.11-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libreadline/8.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libarchive/3.5.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/cURL/7.76.0-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/bzip2/1.0.8-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/ncurses/6.2-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/ScaLAPACK/2.1.0-gompi-2021a-fb/lib:/opt/software/pc2/EB-SW/software/FFTW/3.3.9-gompi-2021a/lib:/opt/software/pc2/EB-SW/software/FlexiBLAS/3.0.4-GCC-10.3.0/lib:/opt/software/pc2/EB-SW/software/OpenBLAS/0.3.15-GCC-10.3.0/lib:/opt/software/pc2/EB-SW/software/OpenMPI/4.1.1-GCC-10.3.0/lib:/opt/software/pc2/EB-SW/software/PMIx/3.2.3-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libfabric/1.12.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/UCX/1.10.0-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libevent/2.1.12-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/OpenSSL/1.1/lib:/opt/software/pc2/EB-SW/software/hwloc/2.4.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libpciaccess/0.16-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/libxml2/2.9.10-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/XZ/5.2.5-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/numactl/2.0.14-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/binutils/2.36.1-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/zlib/1.2.11-GCCcore-10.3.0/lib:/opt/software/pc2/EB-SW/software/GCCcore/10.3.0/lib64:/opt/software/slurm/21.08.6/lib:/opt/software/FPGA/IntelFPGA/opencl_sdk/21.2.0/hld/host/linux64/lib:/opt/software/FPGA/IntelFPGA/opencl_sdk/20.4.0/hld/board/bittware_pcie/s10/linux64/lib"
  },
  "git_commit": "c7f3890-dirty",
  "mpi": {
    "subversion": 1,
    "version": 3
  },
  "name": "effective bandwidth",
  "results": {
  },
  "settings": {
    "Communication Type": "IEC",
    "Kernel File": "./communication_bw520n_IEC_emulate.aocx",
    "Kernel Replications": 2,
    "MPI Ranks": 1,
    "Repetitions": 10,
    "Test Mode": "No"
  },
  "timings": {
  },
  "version": "1.3"
}

If a benchmark has more settings, they will be added to the settings-key. Every benchmark can track different categories of timings, different results and errors. To see a full example and which keys are available have a look at the README.md of the single benchmarks in the [git repositoy](https://git.uni-paderborn.de/pc2/HPCC_FPGA).

The results and timings are in a special format, which consists of the value and the unit.

{
  "results": {
    "b_eff": {
      "unit": "B/s",
      "value": 14806691.755972749
    }
  }
}

The timings are a vector of all the timings which were measured, expect for b_eff, where a special format is used. For every message size used in the benchmark the interim results are saved in the following way.

{
"6": {
  "maxCalcBW": 9225059.007945802,
  "maxMinCalculationTime": 5.5501e-05,
  "timings": [
    {
      "looplength": 4,
      "messageSize": 6,
      "timings": [
        {
          "unit": "s",
          "value": 0.008889638
        },
        {
          "unit": "s",
          "value": 0.000115271
        },
        {
          "unit": "s",
          "value": 0.000149272
        },
        {
          "unit": "s",
          "value": 0.000163372
        },
        {
          "unit": "s",
          "value": 7.5731e-05
        },
        {
          "unit": "s",
          "value": 5.5501e-05
        },
        {
          "unit": "s",
          "value": 0.000162132
        },
        {
          "unit": "s",
          "value": 8.2091e-05
        },
        {
          "unit": "s",
          "value": 6.7621e-05
        },
        {
          "unit": "s",
          "value": 0.000126891
        }
      ]
    }
  ]
},
"7": {
  "maxCalcBW": 12222341.581026724,
  "maxMinCalculationTime": 8.3781e-05,
  "timings": [
    {
      "looplength": 4,
      "messageSize": 7,
      "timings": [
        {
          "unit": "s",
          "value": 0.000296573
        },
        {
          "unit": "s",
          "value": 0.000136292
        },
        {
          "unit": "s",
          "value": 0.000320834
        },
        {
          "unit": "s",
          "value": 0.000130881
        },
        {
          "unit": "s",
          "value": 8.3781e-05
        },
        {
          "unit": "s",
          "value": 0.000247252
        },
        {
          "unit": "s",
          "value": 0.000430356
        },
        {
          "unit": "s",
          "value": 0.000281403
        },
        {
          "unit": "s",
          "value": 0.000421565
        },
        {
          "unit": "s",
          "value": 0.000266754
        }
      ]
    }
  ]
},
"8": {
  "maxCalcBW": 38030862.93662141,
  "maxMinCalculationTime": 5.3851e-05,
  "timings": [
    {
      "looplength": 4,
      "messageSize": 8,
      "timings": [
        {
          "unit": "s",
          "value": 0.000157722
        },
        {
          "unit": "s",
          "value": 0.000121611
        },
        {
          "unit": "s",
          "value": 0.000217192
        },
        {
          "unit": "s",
          "value": 9.7101e-05
        },
        {
          "unit": "s",
          "value": 6.6931e-05
        },
        {
          "unit": "s",
          "value": 8.6791e-05
        },
        {
          "unit": "s",
          "value": 0.000145572
        },
        {
          "unit": "s",
          "value": 0.000143042
        },
        {
          "unit": "s",
          "value": 8.5281e-05
        },
        {
          "unit": "s",
          "value": 5.3851e-05
        }
      ]
    }
  ]
}
}