Welcome to Multipath's website. Here you will find all the information necessary to download and use our software products. Detailed information on how to use each of the products is contained in our Manual.

This page is intended to provide an overview of the following related software products:

1. FMSlib, a matrix algebra package designed for optimum performance on large problems;
2. Dashboard, a performance analysis tool which generates a website on your computer showing hardware and performance information;
3. MatrixWarrior, an application which demonstrates FMSlib, tests your hardware and uses Dashboard to display the results.

# 1. FMSlib

FMStm (Fast Matrix Solver) is the industry standard for performing matrix algebra operations on large, dense matrices and groups of vectors. Packaged as a FORTRAN or C callable library, FMS may be incorporated into new or existing scientific and engineering application programs to improve performance and provide large problem-solving capability.

The primary function of FMS is to solve the system of simultaneous equations:
``` [A]{X} = {B} ``` where:

• [A] is an N-by-N coefficient matrix,
• {B} is one or more right-hand side vectors, and
• {X} represents the solution vectors to be determined.
FMS handles both real and complex data, as well as symmetric, nonsymmetric and Hermitian matrices.

FMS is actually 3 out-of-core solvers in 1:

PROFILE SOLVER: Accounts for the sparsity of matrix [A] on an equation by equation basis. Typical applications include finite element and finite difference programs.

BLOCK SOLVER: Divides the matrix [A] into square blocks, accounting for sparsity on a block by block basis. This solver uses industry standard BLAS3 kernels and provides excellent I/O performance on extremely large problems. Typical applications include boundary integral and moment method programs.

SLAB SOLVER: Extends the functionality of the Block Solver by providing full column partial pivoting for full nonsymmetric matrices.

Because all 3 FMS solvers share the same application program interface, you may switch between solvers by simply changing an environment variable, without recompiling or relinking your program.

FMS includes only those routines that have proven commercial value.

FMS is based on an in-depth understanding of mathematics and computer architecture, incorporating no shortcuts. Performance is obtained by fully exploiting all hardware, including the following:
• CPUs
Multiple processors, and the cores within those processors, are run in parallel.
• GPUs
Graphical Processing Units (GPUs) operate in parallel with CPUs. When available, multiple GPUs are operated in parallel. Work is automatically divided between the GPUs and CPUs, based on their measured performance at runtime.
• Disks
Data transfers are performed with large blocks directly from memory to disk in parallel with processing. Multiple disks are operated in parallel to maximize data transfer rates (file striping).
• NUMA
On large systems supporting NonUniform Memory Access (NUMA), threads are bound to processing cores and data is allocated locally to minimize network traffic.
FMS automatically detects what hardware and software are available at startup. The solution is then configured to achieve maximum performance.

# 2. DASHBOARD

## A Performance tool for your application

 YourApplication YourApplication MatrixWarrior FMSlib Dashboard Hardware
Dashboard is a performance-monitoring system that generates a website on your computer while your application is running. The generated site includes separate pages which provide detailed information on the CPUs, GPUs, Memory, Disks, File system, Software, a Call-tree and FMS Parameter values. Dashboard is easily installed in any application, even those that do not use FMS for matrix algebra.

You may use Dashboard in one of three ways:

1. Call Dashboard directly from your application;
2. Call FMSlib from your application, which is already instrumented with Dashboard;
3. Run MatrixWarrior, which includes FMSlib and therefore also includes Dashboard.

For applications which use FMSlib, Dashboard includes a Performance page specifically designed for matrix algebra. This page shows the current state of the computation and the performance of critical hardware components. These reports may be linked to form a "movie" of the calculation. As an example, a list of movies is available Here.

Multipath offers consulting services to customize Dashboard for your application.

# 3. MatrixWarrior

## An application which demonstrates FMSlib and tests your computer

 Your Application[A], {B} MatrixWarrior[A], {B} FMSlib [A]{X}={B} Hardware
As a library, FMS receives data from your application and drives the computer hardware. In order to demonstrate the performance of FMS and the underlying hardware, a test application MatrixWarrior is included. This application generates matrix [A] and vector {B} according to your specifications. FMS then solves the system for the solution {X}. Because MatrixWarrior is layered on FMS, all the features available in FMS can be demonstrated by MatrixWarrior.

Initially developed for FMS, MatrixWarrior has taken on a life of its own, finding use in the following areas:

• Benchmark machines
Knowing the actual performance of a machine is of interest. Solving matrix equations is the industry standard metric for this comparison. MatrixWarrior extends the testing provided with Linpack by including the file system, additional data types and matrix formats. All hardware used in the benchmark can easily be reconfigured at runtime, providing an ideal application for parametric studies. These extensions allow MatrixWarrior to more closely simulate the actual performance of typical machines used for gaming and scientific analysis.