Recent Releases of mumps

mumps - CMake >= 3.20: Scalapack find/build more robust

Changes to MUMPS and Scalapack to work in more situations correctly.

Require CMake >= 3.20 (and test 3.20 in CI) to help packaging robustness across platforms.

- CMake
Published by scivision almost 2 years ago

mumps - MUMPS 5.7.3 upstream. MUMPS_parallel option

option parallel (default on) is now option MUMPS_parallel

MUMPS upstream 5.7.3

Full Changelog: https://github.com/scivision/mumps/compare/v5.7.2.0...v5.7.3.0

- CMake
Published by scivision almost 2 years ago

mumps - Upstream MUMPS 5.7.2. MKL detection improvements, C++ bugfix

correct Scalapack Git commit hash for scalapack build

BUGFIX for macOS with Clang, and other case-insensitive systems with C++ main programs using MUMPS via FetchContent or as Git submodule with add_subdirectory(): include ${mumps_SOURCE_DIR}/src, NOT ${mumps_SOURCE_DIR} to avoid MUMPS top-level file VERSION breaking build.

This was triggered when macOS Xcode headers became C++20 default.

- CMake
Published by scivision almost 2 years ago

mumps - MUMPS 5.7.1. General build system fixes

  • also works with Visual Studio generator now. We separated C and Fortran targets to do this. Thanks for idea @dariomangoni
  • corrected CMake logic for various cases and added CI case thanks @dariomangoni for pointing problems out and suggestions

- CMake
Published by scivision about 2 years ago

mumps - Upstream MUMPS 5.7.0. Correct intsize64 for non-oneAPI. Arbitrary upstream version

  • Default MUMPS upstream 5.7.0. See MUMPS User guide for various improvements.
  • MUMPS 5.7.0 allows build without Scalapack cmake -Dscalapack=no
  • Correct intsize64=on for non-oneAPI. Requires ALL libraries including MPI be compiled for 64-bit.
  • Arbitrary MUMPSUPSTREAMVERSION download from mumps-solver.org

- CMake
Published by scivision about 2 years ago

mumps - bugfixes, store MUMPS source outside of build dir

store upstream source outside of build directory -- allows flipping between MUMPS versions without redownloading source each time, which can be quite slow due to server / internet bandwidth

remove MUMPS source code download timeout

remove GNU Octave to save maintenance burden

test: use TEST_LAUNCHER (better practice in CMake)

tests default on if top level project

bugfix: GEMMT: was broken several months ago, now fixed

- CMake
Published by scivision about 2 years ago

mumps - FindSCALAPACK: Correct Lapack alias with MKL

- CMake
Published by scivision over 2 years ago

mumps - user-set CMAKE_TLS_VERIFY (default on)

  • allow user-set CMAKETLSVERIFY (default on)
  • scalapack v2.2.1.6 (autobuild lapack if needed)

- CMake
Published by scivision over 2 years ago

mumps - MUMPS 5.6.2. Autobuild scalapack if missing.

Ease building for users by auto-building Scalapack if missing.

- CMake
Published by scivision over 2 years ago

mumps - CMake >= 3.19 required. Improve Find[SCA]LAPACK with MKL

For those using MKL match library to provide LAPACK and SCALAPACK, we now use Intel's MKLConfig.cmake as recommended. For those using MKL, MKL 2021.3 or newer is required.

CMake >= 3.19 required to avoid vendoring so much much code and to remove workaround logic.

- CMake
Published by scivision over 2 years ago

mumps - Cmake default run path

use Cmake defaults for run path, thanks @gkaf89

This can be relevant for shared builds, where the user should set run path in the executable if defaults aren't sufficient.

- CMake
Published by scivision almost 3 years ago

mumps - MUMPS 5.6.1 upstream, add OpenBLAS, parMETIS

MUMPS Upstream 5.6.1 is now default, along with several build system enhancements:

  • download unmodified MUMPS sources from mumps-solver.org, which is much faster and more reliable than the historical France-based MUMPS server that used to go down for hours or days. I didn't use Zenodo for this release, assuming mumps-solver.org stays reliable and fast.
  • Support OpenBLAS with cmake -DLAPACK_VENDOR=OpenBLAS as well as several other vendors in Readme_LAPACK
  • add parMETIS support, and document Scotch and METIS, any of which can be used independently as in Readme_ordering
  • GCC uses "-fno-strict-aliasing" to avoid MUMPS memory leaks @TarcisioLOliveira

CI: added OpenBLAS test

Contributors include:

@gkaf89 @adam-sim-dev @TarcisioLOliveira

- CMake
Published by scivision almost 3 years ago

mumps - MUMPS 5.6.0 upstream

- CMake
Published by scivision about 3 years ago

mumps - correct install meta and cleanup internals

  • correctly publish installed precisions
  • put internal-use MUMPS Fortran modules files and include them
  • GEMMT: handle flags more precisely

- CMake
Published by scivision over 3 years ago

mumps - CMake: if-foreach instead of configure_file and generator

For clarity, in CMake, use if-foreach instead of configurefile and generator for clarity. For build specification, use include(*.cmake) instead of configurefile(COPYONLY) for clarity. Add scripts/testmumps_versions.cmake for simple build testing across MUMPS Upstream versions. Add multiple Readmes with additional info, particularly for oneAPI on Windows Require CMake >= 3.14 for install robustness

- CMake
Published by scivision over 3 years ago

mumps - Scotch or METIS options and example

Make Scotch and METIS work independently and add 64-bit option for each to build script that must match MUMPS.

- CMake
Published by scivision over 3 years ago

mumps - lapack-like precision spec, use original lapack if desired

  • instead of arith=, use BUILDSINGLE, BUILDDOUBLE etc like Lapack
  • FindMUMPS: check for scalapack with threads for mpi

- CMake
Published by scivision over 3 years ago

mumps - fix Scotch link, add Scotch build script, add [sca]lapack static find option, Zenodo source host

FindMUMPS: add Scotch, OpenMP components instead of always searching for them

add find_static option to force finding static lapack/scalapack (default off)

remove defunct MUMPS source code server, latest version add Zenodo url for more reliable source code download.

example: add complex64 C example

add script to build Metis, Scotch if desired

bugfix:packaging: use MUMPSScotchFOUND and MUMPSOpenMPFOUND

ci: add scotch build test case

- CMake
Published by scivision over 3 years ago

mumps - GEMMT default, bugfix with MKL

  • Use GEMMT by default for symmetrix matrix-matrix multiplication, if available (e.g. Intel MKL)
  • For 64-bit with MKL (MKL64), link "mpi_ilp64" as well in FindScalapack
  • MKL with OpenMP: correct bug that stopped it from building.
  • Cray: don't set compiler tune options, regardless of compiler

- CMake
Published by scivision over 3 years ago

mumps - cpack: correct params

- CMake
Published by scivision almost 4 years ago

mumps - add -Dlocal= offline install option

- CMake
Published by scivision almost 4 years ago

mumps - improve packaging, correct parallel=no case

  • improve CMake packaging for cmake --install
  • simplify example/
  • add intsize64 testing to Intel oneAPI
  • correct bug introduced in v5.5.1.1 for parallel=no

fixes #36

- CMake
Published by scivision almost 4 years ago

mumps - work with CMake 3.13+

- CMake
Published by scivision almost 4 years ago

mumps - work with MPICH, Visual Studio. Add Windows oneAPI CI

- CMake
Published by scivision almost 4 years ago

mumps - MUMPS 5.5.1

  • default new MUMPS v5.5.1
  • functionalize test CMake
  • package publishes MUMPSHAVEScotch, MUMPSHAVEOPENMP
  • remove unused preset
  • consolidate CI intsize64 test
  • download with HTTPS where possible

- CMake
Published by scivision almost 4 years ago

mumps - correct packaging, enhance find

Thanks to @Rickbude for correcting CMake package install filenames. This allows MUMPS to be more easily found as built and CMake installed by this repo.

Corrected/enhanced tests for Lapack and Scalapack to help ensure they are working with the compilers used.

- CMake
Published by scivision almost 4 years ago

mumps - intsize64 with IntelMPI works, cross-compile no native

Thanks to @vchunchu-amd in #10 , MUMPS now works with intsize64=true with these setups

  • GCC + OpenMPI/MPICH (worked previously)
  • GCC + IntelMPI
  • Intel oneAPI + IntelMPI

Only apply -mtune=native or -xHost if cross-compiling is NOT detected


General cleanup of CMake build scripts

- CMake
Published by scivision almost 4 years ago

mumps - Find[SCA]LAPACK: MKL on MacOS works

- CMake
Published by scivision almost 4 years ago

mumps - MUMPS 5.5.0, remove autobuild

- CMake
Published by scivision about 4 years ago

mumps - build/patch enhanced

  • Default MUMPSUPSTREAMVERSION again 5.4.1.11
  • Improved patching thanks to @Baljak
  • improved find*
  • improved shared build Rpath
  • improved test/example link
  • consolidated CI jobs

- CMake
Published by scivision about 4 years ago

mumps - improve packaging, shared, static link

- CMake
Published by scivision over 4 years ago

mumps - MUMPS 5.3.5 default, CMake >= 3.19

Due to waiting for updated MUMPS upstream and corner cases with patching existing 5.4 on Windows, fallback to default MUMPS 5.3.5.

Works with CMake >= 3.19. Going to CMake older that that would require substantial effort.

Fixes #20

- CMake
Published by scivision over 4 years ago

mumps - Patch MUMPS 5.4.1 more effectively

Use addcustomcommand() to patch MUMPS 5.4.1 more effectively. For Windows users, the patch tries MSYS2 and then WSL. Use older MUMPS if GNU Patch isn't available on your system like: sh cmake -B build "-DMUMPS_UPSTREAM_VERSION=5.3.5"

- CMake
Published by scivision over 4 years ago

mumps - MUMPS_UPSTREAM_VERSION option, shared builds

  • shared build option, selected as usual via cmake -DBUILD_SHARED_LIBS=on may work better. Static is as usual the default
  • MUMPSUPSTREAMVERSION is selectable from those listed in cmake/libraries.json. Since the download sites are non-HTTPS, we require a SHA256 hash. We have versions from MUMPS 4.8 to 5.4 known to work, at least via casual check.

- CMake
Published by scivision over 4 years ago

mumps - Improving intsize64

cmake -Dintsize64=yes works better now--crashes at runtime are reduced. Only setup I know to work is plain GCC. GCC + MKL does not work (runtime segfault). Intel compiler also segfaults with intsize64=yes

General build and test improvements

- CMake
Published by scivision over 4 years ago

mumps - enhance patch, fix Intel options

  • correct Intel compiler option (no spaces)
  • enhance "patch" to not error if for some reason header was already patched.

- CMake
Published by scivision over 4 years ago

mumps - Default build type Release

also increased MUMPS patch timeout, as under heavy parallel build and slow disk, it could timeout during patch

Release build runs faster than debug, so make release default for non multi-config

- CMake
Published by scivision over 4 years ago

mumps - MUMPS 5.4 default again, patches mumps_io.h

Per MUMPS devs, patch mumps_io.h for MUMPS 5.4.0 and 5.4.1 Fixes #9

CI: add Intel oneAPI

FindScalapack: also look for optional libblacs--many systems have BLACS inside libscalapack, but some have BLACS as separate file.

- CMake
Published by scivision over 4 years ago

mumps - upstream revert to MUMPS 5.3 due to 5.4 bug for win32

Mumps 5.4 series doesn't work with Windows and Intel/MSVC compiler. As a result, emailed upstream devs and revert this "main" Git CMake branch to 5.3.5 MUMPS for now.

  • added ability to switch MUMPS version to known versions in cmake/libraries.json via MUMPSUPSTREAMVERSION variable
  • added examples to tests and simplified their scripting
  • CMake: use modern practices with per-language addcompileoptions generator expressions

- CMake
Published by scivision over 4 years ago

mumps - Find* improvements

work better with MKL

- CMake
Published by scivision almost 5 years ago

mumps - MUMPS 5.4.1

upstream 5.4.1 release http://mumps.enseeiht.fr/index.php?page=dwnld#cl

- CMake
Published by scivision almost 5 years ago

mumps - further enhance FindMPI robustness across platforms

- CMake
Published by scivision almost 5 years ago

mumps - FindMPI improvements

Improve reliability of FindMPI and default to real32,real64 build to save time.

- CMake
Published by scivision almost 5 years ago

mumps - scalapack 2.1.0.23, lapack 3.10.0.0

also improved find*.cmake

- CMake
Published by scivision almost 5 years ago

mumps - FetchContent bugfix: don't override top project install prefix

For those using Mumps via FetchContent from their top project, Mumps no longer overrides the top level project install prefix.

Thanks to @PuneetMatharu for letting us know of this issue

- CMake
Published by scivision almost 5 years ago

mumps - Improved FindMPI, bugfix scalapack

  • improved FindMPI, particularly for MPICH
  • for those building scalapack, corrected bug in its build that make link failures

- CMake
Published by scivision almost 5 years ago

mumps - corrected scalapack

corrected missing scalapack source file--relevant for autobuild error with complex32

- CMake
Published by scivision almost 5 years ago

mumps - lapack 3.9.1, suppress scalapack warning

use lapack 3.9.1 if auto-building lapack

Scalapack issues a lot of warnings on modern compilers. Per #5, we suppress some of those warnings when autobuilding scalapack, which previously could have caused an issue when consumed by external projects with stricter flags

- CMake
Published by scivision almost 5 years ago

mumps - New, cleaner approach to CMake build

Previously, we extracted the MUMPS tarball and put CMake in. This was time-consuming and human error-prone. Our new approach is to at build-time on the user's computer, auto-download the MUMPS source tarball and inject CMake into the extracted source. This is much less time consuming and provides higher confidence to the user that authentic MUMPS source is being used.

- CMake
Published by scivision about 5 years ago