=====================
Test-Suite Extentions
=====================

.. contents::
   :depth: 1
   :local:

Abstract
========

These are ideas for additional programs, benchmarks, applications and
algorithms that could be added to the LLVM Test-Suite.
The test-suite could be much larger than it is now, which would help us
detecting compiler errors (crashes, miscompiles) during development.

Most probably, the reason why the programs below have not been added to
the test-suite yet is that nobody has found time to do it. But there
might be other issues as well, such as

 * Licensing (Support can still be added as external module,
              like for the SPEC benchmarks)

 * Language (in particular, there is no official LLVM frontend
             for FORTRAN yet)

 * Parallelism (currently, all programs in test-suite use
                one thread only)

Benchmarks
==========

SPEC CPU 2017
-------------
https://www.spec.org/cpu2017/

The following have not been included yet because they contain Fortran
code.

In case of cactuBSSN only a small portion is Fortran. The hosts's
Fortran compiler could be used for these parts.

Note that CMake's Ninja generator has difficulties with Fortran. See the
`CMake documentation <https://cmake.org/cmake/help/v3.13/generator/Ninja.html#fortran-support>`_
for details.

 * 503.bwaves_r/603.bwaves_s
 * 507.cactuBSSN_r
 * 521.wrf_r/621.wrf_s
 * 527.cam4_r/627.cam4_s
 * 628.pop2_s
 * 548.exchange2_r/648.exchange2_s
 * 549.fotonik3d_r/649.fotonik3d_s
 * 554.roms_r/654.roms_s

SPEC OMP2012
------------
https://www.spec.org/omp2012/

 * 350.md
 * 351.bwaves
 * 352.nab
 * 357.bt331
 * 358.botsalgn
 * 359.botsspar
 * 360.ilbdc
 * 362.fma3d
 * 363.swim
 * 367.imagick
 * 370.mgrid331
 * 371.applu331
 * 372.smithwa
 * 376.kdtree

OpenCV
------
https://opencv.org/

OpenMP 4.x SIMD Benchmarks
--------------------------
https://github.com/flwende/simd_benchmarks

PWM-benchmarking
----------------
https://github.com/tbepler/PWM-benchmarking

SLAMBench
---------
https://github.com/pamela-project/slambench

FireHose
--------
http://firehose.sandia.gov/

A Benchmark for the C/C++ Standard Library
------------------------------------------
https://github.com/hiraditya/std-benchmark

OpenBenchmarking.org CPU / Processor Suite
------------------------------------------
https://openbenchmarking.org/suite/pts/cpu

This is a subset of the
`Phoronix Test Suite <https://github.com/phoronix-test-suite/phoronix-test-suite/>`_
and is itself a collection of benchmark suites

Parboil Benchmarks
------------------
http://impact.crhc.illinois.edu/parboil/parboil.aspx

MachSuite
---------
https://breagen.github.io/MachSuite/

Rodinia
-------
http://lava.cs.virginia.edu/Rodinia/download_links.htm

Rodinia has already been partially included in
MultiSource/Benchmarks/Rodinia. Benchmarks still missing are:

 * streamcluster
 * particlefilter
 * nw
 * nn
 * myocyte
 * mummergpu
 * lud
 * leukocyte
 * lavaMD
 * kmeans
 * hotspot3D
 * heartwall
 * cfd
 * bfs
 * b+tree

vecmathlib tests harness
------------------------
https://bitbucket.org/eschnett/vecmathlib/wiki/Home

PARSEC
------
http://parsec.cs.princeton.edu/

Graph500 reference implementations
----------------------------------
https://github.com/graph500/graph500/tree/v2-spec

NAS Parallel Benchmarks
-----------------------
https://www.nas.nasa.gov/publications/npb.html

The official benchmark is written in Fortran, but an unofficial
C-translation is available as well:
https://github.com/benchmark-subsetting/NPB3.0-omp-C

DARPA HPCS SSCA#2 C/OpenMP reference implementation
---------------------------------------------------
http://www.highproductivity.org/SSCABmks.htm

This web site does not exist any more, but there seems to be a copy of
some of the benchmarks
https://github.com/gtcasl/hpc-benchmarks/tree/master/SSCA2v2.2

Kokkos
------
https://github.com/kokkos/kokkos-kernels/tree/master/perf_test
https://github.com/kokkos/kokkos/tree/master/benchmarks

PolyMage
--------
https://github.com/bondhugula/polymage-benchmarks

PolyBench
---------
https://sourceforge.net/projects/polybench/

A modified version of Polybench 3.2 is already presented in
SingleSource/Benchmarks/Polybench. A newer version 4.2.1 is available.

High Performance Geometric Multigrid
------------------------------------
https://crd.lbl.gov/departments/computer-science/PAR/research/hpgmg/

RAJA Performance Suite
----------------------
https://github.com/LLNL/RAJAPerf

CORAL-2 Benchmarks
------------------
https://asc.llnl.gov/coral-2-benchmarks/

Many of its programs have already been integreated in
MultiSource/Benchmarks/DOE-ProxyApps-C and
MultiSource/Benchmarks/DOE-ProxyApps-C++.

 * Nekbone
 * QMCPack
 * LAMMPS
 * Kripke
 * Quicksilver
 * PENNANT
 * Big Data Analytic Suite
 * Deep Learning Suite
 * Stream
 * Stride
 * ML/DL micro-benchmark
 * Pynamic
 * ACME
 * VPIC
 * Laghos
 * Parallel Integer Sort
 * Havoq

NWChem
------
http://www.nwchem-sw.org/index.php/Benchmarks

TVM
----
https://github.com/dmlc/tvm/tree/master/apps/benchmark

HydroBench
----------
https://github.com/HydroBench/Hydro

ParRes
------
https://github.com/ParRes/Kernels/tree/master/Cxx11

Applications/Libraries
======================

GnuPG
-----
https://gnupg.org/

Blitz++
-------
https://sourceforge.net/projects/blitz/

FFmpeg
------
https://ffmpeg.org/

FreePOOMA
---------
http://www.nongnu.org/freepooma/

FTensors
--------
http://www.wlandry.net/Projects/FTensor

rawspeed
--------
https://github.com/darktable-org/rawspeed

Its test dataset is 756 MB in size, which is too large to be included
into the test-suite repository.

C++ Performance Benchmarks
--------------------------
https://gitlab.com/chriscox/CppPerformanceBenchmarks

Generic Algorithms
==================

Image processing
----------------

Resampling
``````````

 * Bilinear
 * Bicubic
 * Lanczos

Dither
``````

 * Threshold
 * Random
 * Halftone
 * Bayer
 * Floyd-Steinberg
 * Jarvis
 * Stucki
 * Burkes
 * Sierra
 * Atkinson
 * Gradient-based

Feature detection
`````````````````

 * Harris
 * Histogram of Oriented Gradients

Color conversion
````````````````

 * RGB to grayscale
 * HSL to RGB

Graph
-----

Search Algorithms
`````````````````

 * Breadth-First-Search
 * Depth-First-Search
 * Dijkstra's algorithm
 * A-Star

Spanning Tree
`````````````

 * Kruskal's algorithm
 * Prim's algorithm
