What is MatrixWarrior?
MatrixWarrior is an application that requires no programming. It can be used to:- Measure the actual performance and tune your machine(s);
- Evaluate machines and options prior to purchase;
- Tune and burn-in your machines after purchase;
- Validate new machine designs before production;
- Check possible hardware issues in production using a known application; and
- Learn about the FMS and Dashboard libraries, which can be incorporated into your application to provide performance benefits and useful displays of information.
Your Application |
Your Application |
MatrixWarrior |
FMSlib [A]{X}={B} |
FMSlib [A]{X}={B} |
|
Dashboard | Dashboard | Dashboard |
Hardware |
MatrixWarrior is layered on FMSlib, the World's leading software library for solving large matrix algebra problems in production applications. FMSlib is highly optimized for each hardware configuration, keeping all components operating at maximum capacity throughout the entire computation. This provides an ideal test environment for measuring machine performance.
FMSlib uses Dashboard to display information on the hardware and application performance. Because Dashboard is incorporated into FMSlib, it is also part of the MatrixWarrior application. The chapter on Dashboard describes the reports that are generated and how you can select the information displayed.
FMSlib and Dashboard are libraries, which have been fully integrated into MatrixWarrior. All the features discussed in this manual for these libraries are available when running MatrixWarrior.
Where to get MatrixWarrior:
MatrixWarrior is available as a download from Multipath's website at www.fmslib.com.MatrixWarrior is an application distributed as a single file, with all appropriate components of FMSlib and Dashboard included (statically linked in). Where optional libraries are required, they are dynamically loaded at runtime. If a library is missing, MatrixWarrior will run without using the features provided by the optional library. The same version of MatrixWarrior will run on systems with and without GPUs. If all required GPU hardware and software is detected at startup, GPUs will automatically be used (plug-and-play).
Which version of MatrixWarrior do I want:
Versions are available for Windows and Linux. Where appropriate, separate versions are provided for different CPU processor capabilities or NVIDIA software toolkit releases. As new hardware and software technology becomes available, it is incorporated into FMSlib. However, this technology may not be compatible with earlier hardware and software. Generally speaking, older versions of MatrixWarrior will run on newer machines but newer versions may not run on older machines.How to run MatrixWarrior
Quick Start Option - Run MatrixWarrior
When you start MatrixWarrior, a help page is displayed on your WEB browser which contains brief instructions on running the program. You can preview it here. This is an excellent introduction to MatrixWarrior, FMSlib and Dashboard.Detailed instructions:
When MatrixWarrior starts, it performs the following tasks:- FMSlib determines what hardware and software is available. A summary of this information is printed on the console window you used to start the application.
- Dashboard writes a
unique cascading stylesheet file named
dbyyyymmddhhmm.css
. The unique date in the name assures that the correct stylesheet gets loaded for the WEB pages Dashboard will generate. - The first time MatrixWarrior is run, a
license file
mwlic.txt
is generated. This file allows you to change the machine configuration on subsequent runs by adding FMS Parameters between the following lines:
FMSSET
(added FMS Parameter)
RETURN
- The directory where Dashboard
will generate the WEB pages is listed as follows:
WEB pages will be created in the directory Your directory
By default, Your directory will be your current working directory. You can change where the pages will be created by defining the environment variable FMSHTML. This may be a directory on the machine you are using or on a network drive accessible by other machines. If the directory is on a machine with a WEB server, any WEB viewing device, including laptops, tablets or phones can be used to view the Dashboard output.
Each question ends with a default value enclosed in square brackets [default value]. To select the default value, type the Return or Enter key. If you do not want to accept the default value, you may enter a value of your choice. If MatrixWarrior determines that the value entered is invalid, the question is repeated.
When running MatrixWarrior as a batch job with an input data file that has a fixed sequence of answers, reasking a question will cause an input data file to become out-of-sync with the program. MatrixWarrior provides an option to stop the program with an error message if an invalid input value is encountered.
Following is the list of questions MatrixWarrior will ask and your choices for response.
1. MatrixWarrior Question (Batch or interactive job):
Is this a batch job(y or n)[N]?>
Your Response:
If you are running MatrixWarrior as a batch job enter Y. This will skip Input 2 and prevent reasking questions if an incorrect answer found to a question. The default value of N will provide the option to open your WEB browser and view the results as they are generated.2. MatrixWarrior Question (WEB page creation):
Do you want to open your browser to view them(y or n)[Y]?>
Your Response:
If you want to view the WEB pages on your local machine, select the default value [Y]. A new window will appear on your monitor. This is your WEB browser that will display the output of Dashboard. If you are running MatrixWarrior for a second time and your browser is already opened to a MatrixWarrior page, you can answer [N] and then enter Control-r to refresh your display.3. MatrixWarrior Question (Matrix type):
Enter the type of matrix you want to solve (1 to 5)
0 = Exit
1 = Real Symmetric
2 = Real Nonsymmetric
3 = Complex Hermitian
4 = Complex Symmetric
5 = Complex Nonsymmetric
(0:5)[5]>
Your Response:
You select the matrix symmetry and data type by entering the module number, 1 to 5. The default value of 5 will solve a nonsymmetric matrix with complex data.If you just want to test the initialization phase, you may enter 0 to exit.
Module | Data Type | Matrix Symmetry | Storage Space |
Compute Time |
---|---|---|---|---|
1 | Real | Symmetric | X=1 | X=1 |
2 | Real | Nonsymmetric | 2X | 2X |
3 | Complex | Hermitian | 2X | 4X |
4 | Complex | Symmetric | 2X | 4X |
5 | Complex | Nonsymmetric | 4X | 8X |
The amount of storage and computing required depend on the symmetry of the matrix and the data type. The table lists the storage and compute requirements, relative to a real symmetric matrix. Nonsymmetric matrices require twice the storage and processing time as Symmetric and Hermitian matrices. Problems with complex data type require twice the storage for the (real, imaginary) data pairs and four times the processing time than problems with real data.
FMS performs all computation with double-precision (64-bit) arithmetic. For complex data, a pair of (64-bit) values are used for the real and imaginary parts.
4. MatrixWarrior Question (Storage location):
Do you want to use disks(y or n)[N]?>
Your Response:
If you answer [N], by default, MatrixWarrior stores the data in memory. If you answer [Y], the data will be stored on disk.A major benefit of FMSlib is the ability to store the data on disk. This allows the solution of significantly larger problems. For MatrixWarrior, this provides an opportunity to test your file system.
To use this feature you should create a directory on your file system where you want to store the data. You then set the environment variable FMSDISK to that directory name. During the solution, FMSlib will create files in the FMSDISK directory for storing the matrix data. At the end of MatrixWarrior, these files will be deleted.
FMSlib also contains a file striping system which allows multiple disks to be operated in parallel. This can provide a higher transfer rate and more capacity. A description of this feature is contained in the section on File Striping.
If you answer [Y] and have not created a directory and defined FMSDISK,
MatrixWarrior will create directory
C:/FMS/FMSDISK
for you and store the
data there.
5. MatrixWarrior Question (Problem size):
Enter the size of the matrix[value]>
Your Response:
Based on the problem type you selected in (2), MatrixWarrior computes the maximum problem size that that will fit in the storage you selected in (3). This computed maximum problem size becomes the default [value]. You may select this or enter a smaller value.CAUTION: On a slow machine with a large disk, the maximum problem size can take a long time. When using disks, a value lower than the maximum problem size is usually specified.
6. MatrixWarrior Question (Solve for {X}):
Enter the number of solution vectors (0:value)[0]>
Your Response:
The solution proceeds in two steps:- Matrix Factoring, which involves only the matrix data in [A], and
- Vector Solution, which uses the matrix factors and the known vectors {B} to solve for the vectors {X}.
If you do not select the default of [0], MatrixWarrior computes the maximum number of solution vectors which will fit in the remaining storage and lists this in the [value] part of the question. You may select this value or enter a smaller value. When using disks, the same caution applies: selecting the maximum value may result in a long solution time.
If you plan to perform this solution phase, you should select a matrix size in step (4) that is less than the maximum so storage will be available for the solution vectors.
At the end of the test, MatrixWarrior computes the solution error by comparing the computed values in {X} with the known solution for this test problem data.
7. MatrixWarrior Question (FMS Parameters):
You may now alter any FMS Parameter.
When you are finished, type the letters RETURN
FMSSET>
Your Response:
Here you can make additional selections on what problem is solved and what hardware is used. FMS contains an extensive list of Parameters which provide special matrix algebra features or alter the hardware that is used. The Using FMS Parameters section provides an introduction and the appendix FMS Parameters provides a complete list.
Parameter | Default | Description |
---|---|---|
MAXCPU | All | Number of CPU cores |
MAXGPU | All | Number of GPUs |
MEMPCT | 50 | Percent of memory |
MAXCPU=16
After you have entered all the Parameters, you enter
RETURN
to proceed with running the problem.
8. MatrixWarrior runs the problem.
9. MatrixWarrior Question (End the test?):
Do you want another solution(y or n)[N]?>
Your Response:
If you want to run another problem, enter[Y]
. You will
then return to question (2) where you may specify another problem to
solve. If your testing is complete,
select the default value of [N].
Notes on Dashboard
MatrixWarrior includes Dashboard, which displays the performance as WEB pages. You can control what reports Dashboard generates and how they are displayed with the Parameters listed in the table.
Parameter | Default | Description |
---|---|---|
IWATCH | 99 | Which reports are generated A value of 115 will generate a movie. |
NSUPD | 5 sec. | How frequently Dashboard updates the pages |
NSREF | 3 sec. | How frequently the browser reloads the pages |
The Performance page summarizes the results of the test,
displaying a variety of information on the status of the run and how
the hardware is performing.
As new data becomes available, this page is updated.
As an alternative, you can set IWATCH=115
to generate
a movie of the Performance pages during the solution.
While MatrixWarrior is normally run with
Dashboard providing WEB displays, this is not
a requirement. Setting IWATCH=0
in the license file will
skip all calls to Dashboard.
The chapter on Dashboard contains information on installing Dashboard in your application, how to select what reports are generated and how they are displayed.