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:
- FMSlib, a matrix algebra package designed for optimum performance on large problems;
- Dashboard, a performance analysis tool which generates a website on your computer showing hardware and performance information;
- 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 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.
2. DASHBOARD
A Performance tool for your application
Your Application |
Your Application |
MatrixWarrior |
FMSlib | ||
Dashboard | ||
Hardware |
You may use Dashboard in one of three ways:
- Call Dashboard directly from your application;
- Call FMSlib from your application, which is already instrumented with Dashboard;
- 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 |
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. - Tune your machine
MatrixWarrior displays detailed information on each hardware component. If a particular component is degrading performance, it can easily be identified and corrected. - Validate new hardware designs
MatrixWarrior has proven value in hardware development to validate designs and detect problems before a machine or its components enter production. - Demonstrate performance
Multipath uses MatrixWarrior to demonstrate the features and performance of FMS. The performance results are then used by hardware companies to promote their products. - Configure a machine prior to purchase
The hardware tested can easily be configured at runtime from input values. This allows multiple configurations with different amount of memory, CPUs, GPUs and disks to be easily tested. - Serve as a hardware acceptance test
Purchase of a large machine usually involves an acceptance test. MatrixWarrior is an excellent application for this purpose, especially if the production applications are unavailable due to proprietary or classified restrictions. MatrixWarrior verifies that the latest advances in computer hardware will be ready for your applications. - Burn-in a new machine
Most hardware failures on new machines occur within a short time after startup. Because MatrixWarrior exercises all hardware components at their maximum capacity, it is an ideal application for preparing a machine for production, especially if it is going to be deployed in an environment where access to service may be difficult.