Parallel Language Tests
Parallel programming languages and libraries have the potential of significantly increasing both the productivity of programmers and the performance of applications. To encourage the use of these programming languages, it is important that there be a broad selection of correctness and performance tests as well as exemplars of applications that can be used by application developers to learn best practices in the use of these languages. To date, there is no comprehensive collection of such codes. Example codes have been collected and developed and we are making them available as an open source resource.
In addition to providing these open source tests and links to parallel codes at other web sites, we are interested in collecting and enhancing any examples of parallel tests or applications.
MPI
Argonne National Laboratory test collection - http://www-unix.mcs.anl.gov/mpi/mpi-test/tsuite.html
Graph 500 benchmark - http:/www.graph500.org/specifications
We developed an IO test that performs that reads/writes the same file using different MPI I/O routines - (io_test.c)
A tool that uses formal methods to analyze MPI programs http://www.cs.utah.edu/formal_verification/ISP-release/
OpenMP
EPCC OpenMP Microbenchmarks - Tests overheads due to synchronization, loop scheduling and array operations. Both Fortran 90 and C versions of the microbenchmarks are available. - http://www.epcc.ed.ac.uk/research/openmpbench/
NAS Parallel Benchmarks - http://www.nas.nasa.gov/Software/NPB/
Omni OpenMP benchmarks - http://phase.hpcc.jp/Omni/benchmarks/NPB/
SPEC OpenMP Benchmark Suite - http://www.spec.org/omp/
Sphinx Microbenchmark Suite - https://computation.llnl.gov/casc/RTS_Report/sphinx.html
OpenMP Validation Suite - http://www2.cs.uh.edu/~openuh/download/register.shtml
UPC
Guts from GWU - http://threads.hpcl.gwu.edu/sites/guts
Iowa State Runtime Error Detection Testsuite - http://rted.public.iastate.edu/UPC/tests.html
Simultaneous Non overlapping update semantic test - (simupdate.tar.gz)
Other tests - Measures performance of the basic data transfer operations using explicit put/get operations as well as through shared pointer access - (bm.upc)
CAF
(http://www.nag.co.uk/sc22wg5/)
Rice CAF compiler - Includes Blur kernel, FFT, Stream, HPCC RandomAccess, HPL as part of their code distribution http://caf.rice.edu/download.html
Hybrid Programming
MPI+UPC
Basic Interoperabiltiy tests - The tests involve passing data from local part of UPC shared array to MPI routines and vice versa from MPI local data to UPC ( mpi-upc-lib.c , upc-mpi-lib.c )
MPI+CAF
Basic Interoperability tests - The tests involve passing local data from Coarrays to MPI and vice versa from MPI local data to Coarrays. ( caf-mpi-lib.f90 , mpi-caf-lib.f90 )
MPI+OpenMP
Basic Interoperability tests - ( mpi-openmp.cpp , mpi-openmp.f90 )