matmul, a Fortran90 code which compares various methods for computing the matrix multiplication product
A * B = C.where A and B are dense matrices.
matmul() can do this for a variety of matrix sizes, and for different arithmetics (real, complex, double precision, integer, even logical!) There are many algorithms built in, including the simple triple DO loop (actually not so simple; there are 6 ways to set it up), some unrolling techniques, and the level 1 and 2 BLAS routines.
matmul() can be used interactively, so the user can easily pursue any line of inquiry that seems promising. New algorithms or locally available methods are not to hard to add.
The information on this web page is distributed under the MIT license.
matmul is available in a C version and a Fortran90 version.
linpack_bench, a Fortran90 code which measures the time needed to factor and solve a linear system.
mdbnch, a Fortran77 code which is a benchmark code for a molecular dynamics calculation.
memory_test, a Fortran90 code which declares and uses a sequence of larger and larger vectors, to see how big a vector can be used on a given machine and compiler.
mxm, a Fortran90 code which sets up a matrix multiplication problem A=B*C of arbitrary size, and compares the time required for IJK, IKJ, JIK, JKI, KIJ and KJI orderings of the loops.
nas, a Fortran90 code which runs the NASA kernel benchmark.
timer_test, a Fortran90 code which demonstrates how to compute CPU time or elapsed time.