./fmssr "Download and Install FMSlib"

Installing FMS

This page contains instructions on how to download and install FMSlib and supporting software.

1. Download FMSlib

The product that is right for you depends on the following items:
  1. Operating system (64-bit Linux, 64-bit Windows),
  2. For Linux, the version of the C library, GLIBC.

    GLIBC is upward compatible. The product you sellect should be based on a version of GLIBC that is equal to or lower than the GLIBC used to build your application.

    To determine the version of GLIBC used in your application, you can use

    objdump -t your application | grep GLIBC
    

  3. The Nvidia CUDA version.
  4. Starting with version 12.1, the driver and runtime are interchangable. Any 12. driver will work with any 12. version of the CUDA librry.

    Linux with CUDA 12
    Product Size/Updated OS GLIBC CUDA CPU Processor
    FMS_Linux_GLIBC-239_CUDA-128.tar.gz Size= 221M bytes
    Updated Tuesday, 06-May-2025 12:45:48 MDT
    64-bit Linux 2.39 12.8 64-bit Intel or AMD
    FMS_Linux_GLIBC-234_CUDA-129.tar.gz Size= 223M bytes
    Updated Tuesday, 13-May-2025 08:40:55 MDT
    64-bit Linux 2.34 12.9 64-bit Intel or AMD

    Legasy Nvidia Drivers

    If you are runnuing a Nvidia driver version 12.1 or erlier, the FMS version you download must be less than or equal to the version of your installed driver.

    You can determine your GPU configuration and the installed driver version with

    nvidia-smi
    

    It is recommended that you update your driver to the latest version and run the latest version of this software.

    Linux with earlier CUDA drivers
    Product Size/Updated OS CUDA CPU Processor
    FMS_Linux_CUDA116.tar.gz Size= 194M bytes
    Updated Thursday, 26-Jan-2023 12:45:37 MST
    64-bit Linux 11.6 64-bit Intel or AMD
    FMS_Linux_CUDA112.tar.gz Size= 146M bytes
    Updated Thursday, 14-Apr-2022 17:58:26 MDT
    64-bit Linux 11.2 64-bit Intel or AMD
    FMS_Linux_CUDA101.tar.gz Size= 112M bytes
    Updated Monday, 11-Mar-2019 10:41:43 MDT
    64-bit Linux 10.1 64-bit X86 with SSE42 or newer instructions
    FMS_Linux_CUDA10.tar.gz Size= 81M bytes
    Updated Monday, 11-Mar-2019 10:52:02 MDT
    64-bit Linux 10.0 64-bit X86 with SSE42 or newer instructions
    FMS_Linux_CUDA91.tar.gz Size= 71M bytes
    Updated Saturday, 28-Apr-2018 18:00:18 MDT
    64-bit Linux 9.1 64-bit X86 with SSE42 or newer instructions
    FMS7_Linux_CUDA80.tar.gz Size= 32M bytes
    Updated Monday, 15-May-2017 14:26:39 MDT
    64-bit Linux 8.0 64-bit X86 with SSE42 or newer instructions
    Windows
    Product Size/Updated OS CUDA CPU Processor
    FMS_W64_CUDA129.exe Size= 9.4M bytes, Updated Saturday, 10-May-2025 19:57:03 MDT 64-bit Windows 12.9 64-bit Intel or AMD
    FMS_W64_CUDA116.exe Size= 314M bytes, Updated Friday, 15-Apr-2022 10:17:32 MDT 64-bit Windows 11.6 64-bit Intel or AMD
    FMS_W64_CUDA112.exe Size= 195M bytes, Updated Friday, 15-Apr-2022 10:14:52 MDT 64-bit Windows 11.2 64-bit Intel or AMD
    FMS_W64_CUDA101.exe Size= 79M bytes, Updated Wednesday, 03-Jul-2019 23:50:50 MDT 64-bit Windows 10.1 64-bit X86 with SSE42 or newer instructions
    FMS_W64_CUDA10.exe Size= 77M bytes, Updated Thursday, 04-Jul-2019 07:33:11 MDT 64-bit Windows 10.0 64-bit X86 with SSE42 or newer instructions
    FMS_W64_CUDA91.exe Size= 71M bytes, Updated Wednesday, 25-Apr-2018 15:02:29 MDT 64-bit Windows 9.1 64-bit X86 with SSE42 or newer instructions
    FMS7_W64_CUDA80.exe Size= 38M bytes, Updated Monday, 15-May-2017 11:11:22 MDT 64-bit Windows 8.0 64-bit X86 with SSE42 or newer instructions
    FMS7_W64_CUDA65_SSE2.exe Size= 29M bytes, Updated Monday, 15-May-2017 11:18:59 MDT 64-bit Windows 6.5 64-bit X86 with SSE2 instructions
    (For older machines)
    FMS7_W32.exe Size= 21M bytes, Updated Monday, 15-May-2017 11:28:26 MDT 32-bit Windows 6.5 32 or 64-bit X86

    NOTE: If you are using Windows to download and encounter any security messages, you may need to do one of the following:

    • Add http://www.fmslib.com as a trusted site.
      Navigate to Internet Options/Security/Trusted sites/Sites
      Uncheck the box "Require server verification (https:) for all sites in this zone"
      Enter http://www.fmslib.com in the upper box and then click Add
    • Enable downloads
      Navigate to Internet Options/Security/Internet/Custom level
      Scroll down to "Downloads" and click Enable

    2. Install FMSlib

    Linux

    gunzip FMS71_Linux_CUDA91.tar.gz
    tar -xvf FMS71_Linux_CUDA91.tar

    Windows

    If you saved the files during the download, double-click on the product.
    It will self-extract to C:\FMS. You will be given the option of changing this directory during the installation.

    Build Date

    Each release of the FMSlib software is time-stamped with the build date. If you have multiple releases of FMSlib on your system, you can use this tool to uniquely identify the software. To obtain the date, run the follwing command:

    ./FMSBuildDate

    The output is in the form mmddyyyy.

    3. Install GPU software

    If you are not using GPUs, skip to Step 4.

    Obtaining NVIDIA Software

    You may obtain the latest NVIDIA drivers from their website at:

    http://www.nvidia.com/Download/index.aspx

    This link also includes instructions for installing the NVIDIA software.

    The NVIDIA software consists of two components:

    1. A Device Driver

    This provides the low-level interface to the hardware. Its function is similar to other device drivers (printers, etc.) You may determine which driver is installed on your system by running the command
    nvidia-smi -a .

    If the program nvidia-smi is not in your PATH, you may need to include the PATH in the above command:

    (Linux) /usr/bin/nvidia-smi -a
    (Windows) "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe -a"

    The driver number listed must be equal to or greater than the version of FMSlib you are installing. FMSlib uses the following shared-object libraries provided by this driver installation:

    NVIDIA Device Driver Software used by FMSlib
    Operating System Default Install Directory Files Used
    64-bit Linux /usr/lib64 libnvidia-ml.so
    64-bit Windows C:\Program Files\NVIDIA Corporation\NVSMI NVML.DLL

    2. Compute Unified Device Arcitecture (CUDA) libraries (CUDA Toolkit)

    The CUDA Toolkit provides utilities for software development. All components from this toolkit required by FMSlib are included with this distribution.

    On Linux systems, the necessary components are already linked into FMSlib, which is distributed as a single file.

    On Windows systems, the CUBLAS library is provided as a separate file with the distribution. If GPUs are detected, this file is automatically loaded dynamically at runtime.

    4. Define the FMS file system

    FMS needs to know where you want to store the data on disk. FMS contains options for a file striping system which allows you complete control over where FMS stores the data. Section 6.5 of the FMS manual describes this file striping system in detail.

    In the simplest case where only one disk is used, define FMSDISK to point to a directory on that disk. There is a slightly different procedure for performing this under Linux and Windows.

    • Linux
      1. Enter the command
        df -T
        to list the available mount points and the type of file system they use.
      2. Optionally create a new directory on one of these mount points or its subdirectory. For example
        mkdir /usr/tmp/FMS
      3. Point to the directory using one of the following two methods:
        1. Set an environment variable
          export FMSDISK=/usr/tmp/FMS (ksh)
          or
          setenv FMSDISK /usr/tmp/FMS (csh)
        2. Create a soft link
          • Change to the directory where you installed FMS and will be running your application
            cd (directory containing FMS software)
          • Create a soft link pointing to the directory you established under 2 above
            ln -s /usr/tmp/FMS FMSDISK
    • Windows
      1. Using Windows Explorer (right-click on the Windows icon in the lower left corner) find a location where you want to store the FMS data.
      2. Optionally create a new folder. For example you could create a folder named FMS in C:\Temp
        C:\Temp\FMS
      3. Create an environment variable named FMSDISK to point to that directory.
        1. Open the control panel
        2. Select System
        3. Select Advanced system settings
        4. Select Environment Variables
        5. Under System variables select New
        6. Enter FMSDISK under Variable name
        7. Enter the directory you created under Variable value. For the case above, enter C:\Temp\FMS
        8. select OK
        9. select OK again
        10. select OK again

    5. Define additional Environment variables.

    The following environment variables define directories where files are located or generated.
    • FMS_LICENSE
      Directory containing fmslic.txt
      Default value: Current working directory.
    • FMSMAN
      Directory containing FMS_Manual.html
      Default value: http://www.fmslib.com/fmsman
    • FMSHTML
      Directory where html files from the performance report are written.
      Default value: Current working directory.

    6. Run MatrixWarrior

    The FMS and optional NVIDIA software are now installed. You can now test the installation by running the MatrixWarrior application provided with the distribution. MatrixWarrior will build and solve a system of simultaneous equations. Instructions for running MatrixWarrior can be found in the Quick Start Guide, which is automatically displayed when MatrixWarrior starts, or in the MatrixWarrior section of the FMS manual.

    7. Download and install the Intel compilers and Run Time Libraries

    FMS is compatible with the following list of compiler options. For convenience, you may want to define the environment variables in the following table.

    FMS Environment Variables
    64-bit Linux 64-bit Windows
    FMS_FORTRAN_COMPILER
    ifort ifort
    FMS_FORTRAN_FLAGS
    (required)
    -real_size 64
    -integer_size 64
    -align:dcommons,rec16byte,sequence
    -auto
    -reentrancy threaded
    -fpic

    (optional)
    -fma
    -fomit-frame-pointer
    -axCOMMON-AVX512
    -O3
    -c
    -nologo
    -march=core-avx2(1)

    (linking)
    -threads
    -static
    -nofor-main(2)
    (required)
    /real_size:64
    /integer_size:64
    /align:dcommons,rec16byte,sequence
    /auto
    /reentrancy:threaded
    /iface:cref,nomixed_str_len_arg

    (optional)
    /Qfma
    /Oy
    /Qax:COMMON-AVX512
    /O3
    /c
    /nologo

    (linking)
    /threads
    /static

    FMS_C_COMPILER
    icc icl
    FMS_C_FLAGS
    (required)
    -align
    -fpic

    (optional)
    -axCOMMON-AVX512
    -O3
    -fma
    -fomit-frame-pointer
    -c
    -nologo
    -march=core-avx2(1)

    (linking)
    -threads
    -static
    -nofor-main(2)
    (required)




    (optional)
    /Qax:COMMON-AVX512
    /O3
    /Qfma
    /Oy
    /c
    /nologo

    (linking)
    /threads
    /static
    /MT
    FMS_ARCHIVE
    ar lib
    FMS_ARCHIVE_FLAGS
    -r /nologo
    NOTES:
    (1) Setting this flag may provide performance improvements in your code but it will prevent your code from running on systems that do not support this feature.
    (2) Use this option if the main program was not written in FORTRAN

    8. Link Example Problems and Program DEMO

    FMS includes a large number of example problems. One of these is probably close to your application. A description and source code is contained in Chapter 5 of the manual. FMS also contains program DEMO, which is described in Appendix F of the manual. To link the examples and program DEMO using the software installed above, execute the following script provided with the distribution:

    • Linux
      ./link_exm.ksh

    NOTE: Starting with the Intel compiler 2013_SP1 the architecture flag changed from

    __intel_new_proc_init

    to

    __intel_new_feature_proc_init

    This symbol is defined in the file libirc.a. If you get an unsatisfied external __intel_new_feature_proc_init when linking and your compiler libraries are before SP1, download the new libirc.a and include it in the link.
    File Size/Updated OS Processor
    libirc.a Size= 605K bytes, Updated Tuesday, 04-Feb-2014 08:21:59 MST 64-bit Linux 64-bit X86 with SSE42 or newer instructions

    9. Link Your Application

    The following table shows the libraries and options required to link your application with FMSlib:
    Linker Options and Libraries
    Variable 64-bit Linux 64-bit Windows
    FMS_LINKER ifort link
    FMS_LINKER_FLAGS -auto
    -threads
    -reentrancy threaded
    -fpic
    -ftz
    /ENTRY:mainCRTStartup
    /LARGEADDRESSAWARE
    /MACHINE:X64
    /NODEFAULTLIB:MSVCRT
    FMS_LIBRARY fmsnoshr.a
    fmsshr.so
    fmsnoshr.lib
    fmsshr.lib
    FMS Shared Object fmsshr.so fmsshr.dll

    10. License Files

    FMSlib uses a .txt license file for authorizaton and to set Parameter values at startup. The following license files are automatically generated when the corresponding applications are run for the first time:
    • mwlic.txt from MatrixWarrior,
    • exlic.txt from DEMO or the EXAMPLE problems.

    If a license file by that name does not exist, it will automatically be generated. If one exists, the existing file will be used.

    To use FMS in your application requires a commercial license file fmslic.txt.

    FMS is licensed on an annual basis. The license fee includes the following:

    • Right to use the software,
    • Support in English by Email,
    • Maintenance and updates,
    • Documentation in html format (which you have already downloaded in Step 1)
    • Distribution over the Internet (which you have already downloaded in Step 2)

11. FMS Manual

The manual for FMS is available in HTML and PDF formats. Either version may be viewed online or downloaded. To obtain information on viewing or downloading the manual, click on the FMS Manual link at the top of this page.

12. Getting Help

For additional information, or to obtain a quotation,
mailbox
E-mail: rcy@fmslib.com