Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

umt #1465

Open
Sezoir opened this issue Feb 10, 2022 · 1 comment
Open

umt #1465

Sezoir opened this issue Feb 10, 2022 · 1 comment
Labels
apps Building Fortran applications with Flang - status + instructions

Comments

@Sezoir
Copy link
Collaborator

Sezoir commented Feb 10, 2022

Enable building and execution of the umt application with the LLVM Flang compiler.

@Sezoir
Copy link
Collaborator Author

Sezoir commented Feb 10, 2022

Next steps: I am not planning to take on this project. This is just an initial report found. Please feel free to work on this.

umt:

https://github.com/LLNL/UMT

Looking at the GitHub repository, there seems to be a few different implementations of umt. For this report, I focused on the implementation on the GitHub "Releases" page called v2.0 UMT2015 Benchmark for APEX Procurement. This is due to the main repository relying on CMake which we do not currently support, whereas the release version uses just Makefile.

umt also require an MPI compiler. Therefore, for this project I used the ompi wrapper compiler around my gfortran/gcc compilers.

Initial report for umt:

  • Minimum version of Fortran required using gfortran: F2008

    • Required arguments to compile with version: "-fdec"
  • How to compile with gfortran:
    umt does not support the GNU toolchain out of the box. Instead, a custom makefile.def file must be created specifically for GNU configuration. This makefile was based of the existing Intel_x86_64 configuration file and modified to the point where we can compile with GNU. This means that there may be redundant parts to it. The following instructions go over doing this as well as compiling.

    1. First you can download the project by running in bash:
    wget -N https://github.com/LLNL/UMT/archive/refs/tags/v2.0.tar.gz
    tar zxf v2.0.tar.gz
    cd UMT-2.0
    
    1. Now download this file make.defs.txt and add to the root directory of umt. Then rename it to remove the .txt file extension. This should be the required makefile.def needed to compile with GNU.
    2. After that you can compile the first part of the project by running:
    make CC_PREFIX=/path/to/folder FC_PREFIX=/path/to/folder
    

    Where the paths to the folder of the OMPI wrapper compilers are correctly substituted in. If they are in your PATH environment variable, then these arguments are not required.
    Note that I found that using the -j argument of Makefile leads to a compile error for some unknown reason. I have not investigated the reason for this any further.

    1. Finally we need to cd into Teton and build the executable. This can be done with:
    cd Teton
    make SuOlsonTest
    

    The final binary should be called SuOlsonTest.

  • Does it compile with flang-new: No
    Requires an MPI compiler, which flang-new does not currently support. You may be able to hack ompi to add support for flang-new since it is just a wrapper compiler, but not sure how much effort this would be.
    A quick test in substituting the MPI Fortran compiler with flang-new results in us requiring MPI library before any other potential compiler errors.

Versions:

  • gcc version used: 9.3.0
  • gfortran version used: 9.3.0
  • openmpi version used: 4.1.1
  • Architecture for compilation: aarch64

@banach-space banach-space added the apps Building Fortran applications with Flang - status + instructions label Feb 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
apps Building Fortran applications with Flang - status + instructions
Projects
None yet
Development

No branches or pull requests

2 participants