The
FMS software package includes the following:
Matrix algebra
- Matrix Assembly
Efficiently initializes matrix data. Options for finite-element assembly.
Full matrixes specified by rows, columns or blocks.
Callback option allows you to provide a subroutine which defines or modifies the matrix data.
- Triangular Factoring
[L][D][L]T for symmetric cases,
[L][U] for nonsymmetric.
Nonlinear restart and substructuring capability.
Pivot precision monitoring or full column partial pivoting.
Sign monitoring to check positive definiteness or generate Sturm sequences.
Factorization reusable for multiple solution vectors.
- Vector Solution
Forward reduction, diagonal scaling, and back-substitution.
Parallel processing for multiple solution vectors.
- Array Multiplication
Includes matrix-vector and vector-vector cases.
Useful for eigenvalue extraction and quadratic form evaluation.
Also includes weighted matrix triple-product for finite element integral evaluation.
Performance Utilities
- Parallel Processing Library
Includes task initiation, task synchronization and critical section locking for running your code in parallel.
- Memory Management Utilities
32 or 64-bit address space, choice of system service (mmap, malloc, shm), allocated on page boundaries, support for large pages,
local allocation on NUMA machines, pinned memory for GPU transfers.
- Disk and File System Uitlities
Direct I/O from memory to disk, multiple disks operated in parallel (file striping),
transfers concurrent with processing (asynchronous I/O).
- GPU Support
GPU hardware and software are detected at startup. If all required components are present, they
are automatically used (plug-and-play).
- Dynamically Loaded Optional Libraries
Shared-object libraries supporting optional hardware are detected and dynamically loaded at runtime.
This allows a single version of your application to run on systems with and without optional hardware.
- Performance Reporting
Optional reports include CPU and elapsed times, actual megaflops, disk transfer rates, call tree and profile of all
FMS subroutines called.
- Dashboard WEB Reports
Website generated dynamically during runtime including CPU, GPU, Memory, Disk, File, Software, Call tree,
FMS Parameters, Performance and Usage pages. Option to include your subroutines.
- MatrixWarrior Application
An application which demonstrates FMSlib and Dashboard, used
to benchmark and test computer hardware.
- Error Reporting
Fatal errors invoke an intelligent display of data including traceback.
Documentation
Complete set including a step-by-step guide for incorporating
FMSlib and
Dashboard into your application
with several examples. Available in HTML and PDF formats to view online or download. Quick Start Guide
for
MatrixWarrior displayed at program startup.