Giter Club home page Giter Club logo

candi's Introduction

regression-tester/current regression-tester/previous performance-tester/current jenkins/dealii-serial jenkins/dealii-mpi jenkins/dealii-osx jenkins/dealii-ampere workflows/github-docker workflows/indent workflows/tidy workflows/github-linux workflows/github-OSX workflows/github-windows

What is deal.II?

deal.II is a C++ program library targeted at the computational solution of partial differential equations using adaptive finite elements. It uses state-of-the-art programming techniques to offer you a modern interface to the complex data structures and algorithms required.

For the impatient:

Let's say you've unpacked the .tar.gz file into a directory /path/to/dealii/sources. Then configure, compile, and install the deal.II library with:

$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/path/where/dealii/should/be/installed/to /path/to/dealii/sources
$ make install    (alternatively $ make -j<N> install)
$ make test

To build from the repository, execute the following commands first:

$ git clone https://github.com/dealii/dealii
$ cd dealii

Then continue as before.

A detailed ReadME can be found at ./doc/readme.html, ./doc/users/cmake_user.html, or at https://www.dealii.org/.

Getting started:

The tutorial steps are located under examples/ of the installation. Information about the tutorial steps can be found at ./doc/doxygen/tutorial/index.html or at https://www.dealii.org/.

deal.II includes support for pretty-printing deal.II objects inside GDB. See contrib/utilities/dotgdbinit.py or the new documentation page (under 'information for users') for instructions on how to set this up.

License:

Please see the file ./LICENSE.md for details

Further information:

For further information have a look at ./doc/index.html or at https://www.dealii.org.

Docker Images:

Docker images based on the Ubuntu operating system are available on Docker Hub. You can use any of the available version (list of available tags) by running, for example:

$ docker run --rm -t -i dealii/dealii:master-focal

The above command would drop you into an isolated environment, in which you will find the latest version of deal.II (master development branch) installed under /usr/local.

candi's People

Contributors

alarshi avatar bangerth avatar curtcorum avatar drwells avatar fvanmaele avatar gassmoeller avatar jppelteret avatar kinnewig avatar koecher avatar marcfehling avatar masterleinad avatar maxrudolph avatar mfraters avatar ohcfe avatar pengfej avatar rezarastak avatar rombur avatar rossisimone avatar sj2050cn avatar tamiko avatar tjhei avatar wendi-l avatar xywei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

candi's Issues

investigate symengine library not found

I have gotten reports of the form

~/aspect/aspect-release: error while loading shared libraries: libsymengine.so.0.7: cannot open shared object file: no such file or directory

We should investigate why that is the case.

configuration with Intel compilers is broken

Intel compilers do not configure correctly due to #159

We used to do

FC=mpiifort CXX=mpiicpc CC=mpiicc cmake -D DEAL_II_WITH_MPI:BOOL=ON ..

which works correctly. But, according to dealii/dealii#11478 (comment) I should do:

CXX=icpc CC=icc cmake -D DEAL_II_WITH_MPI=ON -D MPI_CXX_COMPILER=mpiicpc -D MPI_C_COMPILER=mpiicc ..

but this fails with:

Imported target "MPI::MPI_C" includes non-existent path

    "/home/heister/deal.ii-candi/tmp/unpack/deal.II-v9.3.0/'/software/external/intelmpi/oneapi/mpi/2021.1.1/include'"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

Not setting CXX also fails (it picks up the system g++ and bails).

How do I know when to set CXX to the mpi wrapper and automatically?

cmake 3.16.3, intel 19.1.3

versioning / tags of candi releases

I would like to propose that we tag versions of the form v<deal.II version>-r<Y> for example v9.0.0-r1. This allows us to precisely specify a version, which is helpful for the docker images dealii/docker-files#21
This means we can have more than one "blessed"/"released" version for a deal.II version, so we can update library versions, fix bugs, etc..

@koecher are you okay with this?

Test DEAL_II_HAVE_USABLE_FLAGS_DEBUG failed

I am setting up a compilation of deal.II on a machine that does not have MUMPS installed on it. It failed while configuring deal.II itself, and I have no idea what went wrong. I suppose the problem is somewhere in Trilinos because I tried to set up deal.II manually and link it with Trilinos compilation generated by the script, while without Trilinos the issue is gone.
I am using the newest CMake 3.22.1, which I have downloaded as a binary release.

Other packages that are missing:
splint tcl-dev environment-modules libsuitesparse-dev qt4-dev-tools

I do not have a root privilege there so I am not able to install those (that is also why I am trying to set up everything via Candi in the first place)

CMakeError.log
CMakeOutput.log
candi.cfg

Error compiling trilinos

I obtain the following error using gcc/11.1.0 and openmpi/4.0.1 :

/home/rcitron/candi_build/tmp/unpack/Trilinos-trilinos-release-12-18-1/packages/tpetra/core/src/Tpetra_Map_def.hpp:2113:26: warning: ‘Kokkos::Compat::KokkosDeviceWrapperNode<ExecutionSpace, MemorySpace>::KokkosDeviceWrapperNode() [with ExecutionSpace = Kokkos::Serial; MemorySpace = Kokkos::HostSpace]’ is deprecated [-Wdeprecated-declarations]
 2113 |     return Teuchos::rcp (new Node);
      |                          ^~~~~~~~
In file included from /home/rcitron/candi_build/tmp/unpack/Trilinos-trilinos-release-12-18-1/packages/tpetra/classic/NodeAPI/Kokkos_DefaultNode.hpp:47,
                 from /home/rcitron/candi_build/tmp/unpack/Trilinos-trilinos-release-12-18-1/packages/xpetra/src/CrsMatrix/Xpetra_CrsMatrix.hpp:51,
                 from /home/rcitron/candi_build/tmp/unpack/Trilinos-trilinos-release-12-18-1/packages/muelu/adapters/epetra/MueLu_CreateEpetraPreconditioner.cpp:5:
/home/rcitron/candi_build/tmp/unpack/Trilinos-trilinos-release-12-18-1/packages/teuchos/kokkoscompat/src/KokkosCompat_ClassicNodeAPI_Wrapper.hpp:55:22: note: declared here
   55 |   TEUCHOS_DEPRECATED KokkosDeviceWrapperNode () {}
      |                      ^~~~~~~~~~~~~~~~~~~~~~~
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
packages/muelu/adapters/CMakeFiles/muelu-adapters.dir/build.make:86: recipe for target 'packages/muelu/adapters/CMakeFiles/muelu-adapters.dir/epetra/MueLu_CreateEpetraPreconditioner.cpp.o' failed
make[2]: *** [packages/muelu/adapters/CMakeFiles/muelu-adapters.dir/epetra/MueLu_CreateEpetraPreconditioner.cpp.o] Error 1
CMakeFiles/Makefile2:10860: recipe for target 'packages/muelu/adapters/CMakeFiles/muelu-adapters.dir/all' failed
make[1]: *** [packages/muelu/adapters/CMakeFiles/muelu-adapters.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

My config file is as follows:

 Global configuration.

# Meta-project to build
PROJECT=deal.II-toolchain

# Option {ON|OFF}: Use fresh build directory by remove existing ones?
CLEAN_BUILD=OFF

#########################################################################

# Where do you want the downloaded source files to go?
#DOWNLOAD_PATH=${PREFIX_PATH}/tmp/src

# Where do you want to unpack source files to go?
#UNPACK_PATH=${PREFIX_PATH}/tmp/unpack

# Where do you want the build files to go?
#BUILD_PATH=${PREFIX_PATH}/tmp/build

# Where do you want the compiled software installed?
INSTALL_PATH=${PREFIX_PATH}

#########################################################################
# Set up mirror server url(s), to speed up downloads, e.g.
#   MIRROR="${MIRROR} http://server1.org/package_mirror_dir/"
#   MIRROR="${MIRROR} ftp://server2.org/package_mirror_dir/"
MIRROR="https://tjhei.info/candi-mirror/ https://cecas.clemson.edu/dealii/mirror/"

#########################################################################
# Choose additional configuration and components of deal.II
DEAL_II_CONFOPTS=""

# Option {ON|OFF}: Enable machine-specific optimizations (e.g. -march=native)?
NATIVE_OPTIMIZATIONS=OFF

# Option {ON|OFF}: Enable building of dealii examples?
BUILD_EXAMPLES=ON

# Option {ON|OFF}: Unset CXX and set the compiler as MPI_CXX_COMPILER when configuring deal.II
#
# This is recommended for very recent CMake versions but it currently is not reliable enough
# to enable by default.
USE_DEAL_II_CMAKE_MPI_COMPILER=OFF

# Option {ON|OFF}: Run tests after installation?
RUN_DEAL_II_TESTS=OFF

# Choose the python interpreter to use. We pick python2, python3,
# python in that order by default. If you want to override this
# choice, uncomment the following:
#PYTHON_INTERPRETER=python3
# Now we pick the packages to install:
PACKAGES="load:dealii-prepare"

# These are system dependencies that are often pre-installed:
#PACKAGES="${PACKAGES} once:zlib"
#PACKAGES="${PACKAGES} once:bzip2"
#PACKAGES="${PACKAGES} once:git"
#PACKAGES="${PACKAGES} once:cmake"
#PACKAGES="${PACKAGES} once:boost"
#PACKAGES="${PACKAGES} once:numdiff"
#PACKAGES="${PACKAGES} once:openblas"
#PACKAGES="${PACKAGES} once:scalapack"

# These packages are not dependencies but are tools used for deal.II development:
#PACKAGES="${PACKAGES} once:astyle"
#PACKAGES="${PACKAGES} once:numdiff"

# These packages determine the active components of deal.II:
#PACKAGES="${PACKAGES} once:adolc"
#PACKAGES="${PACKAGES} once:arpack-ng"
#PACKAGES="${PACKAGES} once:assimp"
#PACKAGES="${PACKAGES} once:ginkgo"
#PACKAGES="${PACKAGES} once:gmsh"
#PACKAGES="${PACKAGES} once:gsl"
#PACKAGES="${PACKAGES} once:mumps"
PACKAGES="${PACKAGES} once:opencascade"
PACKAGES="${PACKAGES} once:parmetis"
#PACKAGES="${PACKAGES} once:sundials"
#PACKAGES="${PACKAGES} once:superlu_dist"
PACKAGES="${PACKAGES} once:hdf5"
#PACKAGES="${PACKAGES} once:netcdf"
PACKAGES="${PACKAGES} once:p4est"
PACKAGES="${PACKAGES} once:trilinos"
PACKAGES="${PACKAGES} once:petsc"
PACKAGES="${PACKAGES} once:slepc"
PACKAGES="${PACKAGES} once:symengine"
PACKAGES="${PACKAGES} dealii"

#########################################################################

# Install the following deal.II version (choose master, v9.3.0, v9.2.0, ...)
DEAL_II_VERSION=v9.3.3

#########################################################################

# If you want to use Trilinos, decide if you want v12.x.x (AUTO) or v11.x.x
TRILINOS_MAJOR_VERSION=AUTO
#TRILINOS_MAJOR_VERSION=12
#TRILINOS_MAJOR_VERSION=11
# If enabled, Trilinos is configured with complex number support in
# Teuchos and Tpetra. This takes a long time to compile and requires a
# lot of RAM. It is also likely not something you will need.
TRILINOS_WITH_COMPLEX=OFF

#########################################################################

# Option {ON|OFF}: Do you want to use MKL?
MKL=OFF
# MKL_DIR=
# BLAS_DIR=
# LAPACK_DIR=

#########################################################################

# If you have commits from the deal.II master to cherry-pick in stable version

# bugfix for TrilinosWrapper::SparseMatrix ::add(factor, SparseMatrix)
#DEAL_CHERRYPICKCOMMITS="8bcaf55df6754238b2e4e41bf6a5dd276a97bdd2 ${DEAL_CHERRYPICKCOMMITS}"

#########################################################################

# Option {ON|OFF}: If you want to change the source code of one or multiple
# packages switch on the developer mode to avoid a package fetch and unpack.
# Note: a previous run of candi with the same settings must be done without
#       this mode!
DEVELOPER_MODE=OFF

################################################################################

# OPTION {ON|OFF}: Remove build directory after successful installation
INSTANT_CLEAN_BUILD_AFTER_INSTALL=OFF

# OPTION {ON|OFF}: Remove downloaded packed src after successful installation
INSTANT_CLEAN_SRC_AFTER_INSTALL=OFF

# OPTION {ON|OFF}: Remove unpack directory after successful installation
INSTANT_CLEAN_UNPACK_AFTER_INSTALL=OFF

Any ideas on where to start with fixing this?

strange build / linker error for petsc 3.7.6 on fedora 29 / gcc 8.3

just encountered a build / linker error for petsc 3.7.6 on fedora 29 / gcc 8.3

  • in the lib folder I have a couple of static libraries, which I don't understand - those should be dynamical ones
  • got serval gcc errors, that a *.dylib is not found for linux-2 platform

I will have a look into that soonly and patch if possible.

OSX support

current workflow:
compile gcc and openmpi using default compilers of homebrew, then set the wrapper to use gcc (I couldn't compile openmpi successfully with gcc):

git clone https://github.com/Homebrew/brew.git $BREWDIR
export PATH=$BREWDIR/bin:$PATH
export HOMEBREW_BUILD_FROM_SOURCE=1
brew tap homebrew/science
brew install --build-bottle ninja cmake gcc openmpi
export OMPI_CXX=g++-6
export OMPI_CC=gcc-6

git clone https://github.com/dealii/candi.git
cd candi
./candi.sh -j 2 --packages="p4est trilinos" -p $BREWDIR/

Current problems:

  • opencascade 0.17 and 0.18 don't work, only master
  • trilinos can not find parmetis (so disable)
  • ...

Testing of candi in apple m1 with arm64 for v9.3 version dealii source building

In my mac environment with big sur arm64 arch.

  • step1: cp catalina.platform bigsur.platform
  • step2: brew install openmpi boost openblas wget gnuplot bash modules
  • step3: run ./candi.sh --platform=deal.II-toolchain/platforms/supported/bigsur.platform -j 4

cmake version 3.20.4
gfortran --version
GNU Fortran (Homebrew GCC 11.1.0_1) 11.1.0

Fix some errors in the middle:

  • uncoment "-MIRROR=""#"https://tjhei.info/candi-mirror/ https://cecas.clemson.edu/dealii/mirror/" in candi.cfg
  • petsc & slepc --> update to 3.14.0
  • trilinos.package modifed: delete -g -O3 -O5 beacuse of bug
    -D CMAKE_CXX_FLAGS:STRING=-fPIC
    -D CMAKE_C_FLAGS:STRING=-fPIC
    -D CMAKE_FORTRAN_FLAGS:STRING=
    -D Trilinos_EXTRA_LINK_FLAGS:STRING=-lgfortran"
  • opencascade will show a small error, according to the bug, in the process, open a separate termnial, after the download is completed in time to cp over (before not compile can be)
    solution: OSD.cxx: 127 "! finite(theDividend)" ---->"! isfinite(theDividend)"
    OSD.cxx: 127 "if (! finite(theDivisor)) " ---->"if (! isfinite(theDivisor)) "
  • brew install openblas and boost, this may be an error using source installation
  • You need to copy some libs of gfortran (under gcc) to openblas, otherwise you can't find gfotran libs.
  • The current solution is not work, so I have to delete the step-66 file at runtime.
    Error: "symbol(s) not found for architecture arm64"

~ % ls deal.ii-candi
configuration oce-OCE-0.18.2 petsc-3.14.0 trilinos-release-12-18-1
deal.II-v9.3.0 p4est-2.2 slepc-3.14.0
hdf5-1.10.7 parmetis-4.0.3 tmp

Its success to build in apple m1 with candi.
Hope it works smoother~

Thanks

Candi's boost is deprecated

Hi there,
The current candi script is set to install deal.II version 9.3.3, which is fine. However, this version [and any newer] use boost version 1.70.0, which is problematic for some of us if not every single boost version is installed on our systems, since in deal.II-toolchain/packages/boost.package it is specified to install version 1.63.0 of boost.

For someone like me, who just likes to install software with the click of a feq buttons, it was quite the journey to figure out the problem, why deal.II wouldn't work.

I would be glad, if someone could fix that in the future, to spare others the time of figuring out what's wrong and why. I have done a fix for me now, however I do not know [and don't intend to find out] how the CHECKSUM variables are calculated.
Kind regards

Unable to find dynamic libraries on macOS

I am on macOS catalina. The candi installation script went well, and have installed deal.ii with the selected dependencies.

Setting up the project with cmake works fine, and so does the make invocation. But when trying to run the compiled executable of an example (step-52), I get an error:

dyld: Library not loaded: libTKBO.11.dylib
  Referenced from: /Users/krishna/deal.ii-candi/deal.II-master/examples/step-52/copy_step_52/./step-52
  Reason: image not found
Abort trap: 6

If I manually do export DYLD_LIBRARY_PATH="", then when trying to run the example, I get an error about superlu_dist dynamic library missing

dyld: Library not loaded: libsuperlu_dist.5.dylib
  Referenced from: /Users/krishna/deal.ii-candi/deal.II-master/examples/step-52/copy_step_52/./step-52
  Reason: image not found
Abort trap: 6

I have the following lines in my ~/.bash_profile

source /Users/krishna/deal.ii-candi/configuration/deal.II-master
source /Users/krishna/deal.ii-candi/configuration/enable.sh

What is the cause of these issues, and how can we fix them?

Unification of true|false and ON|OFF

Maybe it would be nice to have a uniform line for the true/false, ON/OFF option? Currently both versions are present, e.g., NATIVE_OPTIMIZATIONS=true|false and MKL=ON|OFF.

Candi development

@koecher @tjhei
For a better overview, here is a list of current PRs and future ideas, that might be suitable for the dealii-9.3 release. I have already successfully tested some of the open points locally and will submit them soon. What do you think? If it's OK for you, I could focus on some of those points next week so that they could be part of the 9.3 release.

  • Add symengine (@tjhei's #118, #198)
  • CC/CXX issue (@tjhei's #159)
  • Skip prompts option (#170)
  • Update arpack version to 3.8.0 (#172)
  • Option to build dealii examples (#173)
  • Update cmake version to 3.16.3 (#175)
  • Unification ON|OFF (#176)
  • Add GSL 2.6 (#178)
  • Add option to run make test after dealii install (#179)
  • Update readme (#180)
  • Clean build/src/unpack option (#182)
  • Rename DEAL_II_CONFOPTS (#183)
  • Update Trilinos package (#185, #192)
  • Update checksum verification (#187)
  • Remove STABLE_BUILD (#189)
  • Add ginkgo package (#194)
  • Update gmsh to 4.8.4 (#199)
  • Replace Option --PROCS by --jobs (#197)
  • Update AUTHORS (#200)
  • Update platform files (#218)
  • Option to build doc in developer mode or download/unpack stable doc
  • Extend linux CI (#184)
  • Indention and cleanup (#215)

Typo in candi.sh script for the dependencies

Typo in candi.sh script for the dependencies:

sudo apt-get install build-essential wget automake autoconf gfortran
openmpi-bin openmpi-common libopenmpi-dev cmake subversion
git libblas-dev liblapack-dev libblas3gf liblapack3gf
libsuitesparse-dev libtool libboost-all-dev
splint tcl tcl-dev environment-modulesqt4-dev-tools

Should be:
... environment-modules qt4-dev-tools

trilinos md5sum changed

I checked the log in https://github.com/koecher/candi/issues/83 and it looks like something is messed up:
download from https://tjhei.info/candi-mirror/trilinos-release-12-10-1.tar.gz 40f28628b63310f9bd17c26d9ebe32b1
download from https://github.com/trilinos/Trilinos/archive/trilinos-release-12-10-1.tar.gz 667333dbd7c0f031d47d7c5511fd0810
in our package: 40f28628b63310f9bd17c26d9ebe32b1

It looks like they changed their tarballs in some way.

@koecher do you have a suggestion on what to do? (we should bump to a more recent release, but that doesn't fix the older candi release for 9.1)

cluster: boost and zlib/bzip conflict

on my local cluster I am running into the following boost configuration error:

error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error:     -  <dll-path>/home/heister/shared-dealii/deal-8.5.0/zlib-1.2.8/lib <library-path>/home/heister/shared-dealii/deal-8.5.0/zlib-1.2.8/lib <xdll-path>/home/heister/shared-dealii/deal-8.5.0/zlib-1.2.8/lib
error:     -  <dll-path>/home/heister/shared-dealii/deal-8.5.0/bzip2-1.0.6/lib <library-path>/home/heister/shared-dealii/deal-8.5.0/bzip2-1.0.6/lib <xdll-path>/home/heister/shared-dealii/deal-8.5.0/bzip2-1.0.6/lib
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

Do we really need bzip2 and zlib installed?

Problems installing Trilinos on candi

Hi all,

I am on the process of installing ASPECT on my local cluster.

I am using candi software. Upon building-compiling, the process goes well and far for more than 20 minutes (using 8 cores), it installs p4est. Then during Trilinos installation starts having a bunch of warnings, but goes on. The problem comes with the BLAS library:

-- Searching for libs in BLAS_LIBRARY_DIRS=''
-- Searching for a lib in the set "blas blas_win32":
-- Searching for lib 'blas' ...
-- Searching for lib 'blas_win32' ...
-- ERROR: Did not find a lib in the lib set "blas blas_win32" for the TPL 'BLAS'!
-- ERROR: Could not find the libraries for the TPL 'BLAS'!

But, I do have BLAS and LAPACK on my account.

So, this problem is simple and classic, it is a linking problem.

I have tried two ways to fix this linking issue:

  1. I created a file (/etc/ld.so.conf.d/mylibs.conf ) with dir to a shared-library path for my BLAS: /home/Felipe/BIGSOFTWARE/lapack-release-lapack-3.8.0/BLAS/SRC

  2. I edited my .bashrc file adding export BLAS_LIBRARY_PATH=$BLAS_LIBRARY_PATH:/home/Felipe/BIGSOFTWARE/lapack-release-lapack-3.8.0/BLAS/SRC

I seized the opportunity and also added the path for Lapack..which is best friend of Blas.. :)

After a day learning how and doing both of these things., I started a new session and started over with candi (no traces of the previous trial. I downloaded-cloned a new candi), and executed candi..

The error was the same.. the candi compiling of Trilinos can not find my BLAS library.

Where and how should I specify the path for BLAS and LAPACK for candi to be able to properly do its job?

cheers,
Felipe

HowToContribute

As contributing to candi was maybe a bit confusing due to the different branches we want to add a HowToContribute to the README.md for example. What should it contain?

  • Development based on the master branch
  • PRs on the master branch
  • default branch is the latest stable version and will only change by takeover from master
  • Possible indention guideline?

@koecher @tjhei did I missed anything?

trilinos warning and memory consumption

@gassmoeller reported large memory consumption when compiling trilinos and he saw the following:

CMake Warning at packages/tpetra/CMakeLists.txt:919 (MESSAGE):
  Tpetra_INST_COMPLEX_DOUBLE=ON, but Trilinos_ENABLE_COMPLEX_DOUBLE=OFF.
  This will work, but it will make builds more expensive, because it turns
  off explicit instantiation for complex<double> in KokkosKernels.  If you
  want to use Scalar=complex<double> in Tpetra, just set
  Trilinos_ENABLE_COMPLEX_DOUBLE=ON.  You do not need to set
  Tpetra_INST_COMPLEX_DOUBLE explicitly any more.

I need to test this.

Trilinos 12.18.1 and make 4.3 combination fails

When doing an install on Pop!_OS 21.04 (which is basically the same as Ubuntu), I notices that I got strange errors when candi was compiling Trilinos, or more specifically Kokkos, cause it to fail. Doing some research it looks like make 4.3 is breaking the compilation of Trilinos 12.18.1 (see for example GEOS-DEV/thirdPartyLibs#136).

Proposed solutions are to downgrade make to 4.2 or upgrade Trilinos to 13.0.1. I tried upgrading Trilinos 13.0.1 with the following diff to deal.II-toolchain/packages/trilinos.package:

diff --git a/deal.II-toolchain/packages/trilinos.package b/deal.II-toolchain/packages/trilinos.package
index 1934e40..2823451 100644
--- a/deal.II-toolchain/packages/trilinos.package
+++ b/deal.II-toolchain/packages/trilinos.package
@@ -16,6 +16,15 @@ if [ ${TRILINOS_MAJOR_VERSION} = "DEV" ];then
     VERSION=dbf41f3b26b0326a1377f219e6e07eab861d181e
     EXTRACTSTO=trilinos-12.dbf41f
 
+    NAME=Trilinos.git
+    PACKING=git
+    SOURCE=https://github.com/trilinos/
+elif [ ${TRILINOS_MAJOR_VERSION} = "13" ];then
+    # download from github:
+    # this is the last "blessed" version we like:
+    VERSION=4796b92fb0644ba8c531dd9953e7a4878b05c62d
+    EXTRACTSTO=trilinos-13.0.1
+
     NAME=Trilinos.git
     PACKING=git
     SOURCE=https://github.com/trilinos/
@@ -184,7 +193,8 @@ CONFOPTS="\
   -D Trilinos_ENABLE_Ifpack2:BOOL=OFF \
   -D Trilinos_ENABLE_Tpetra:BOOL=ON \
   -D   Tpetra_INST_DOUBLE:BOOL=ON \
-  -D   Tpetra_INST_INT_LONG:BOOL=ON \
+  -D   Tpetra_INST_INT_LONG_LONG:BOOL=ON \
+  -D   Tpetra_INST_INT_LONG:BOOL=OFF \
   -D   Tpetra_INST_COMPLEX_DOUBLE:BOOL=ON \
   -D   Tpetra_INST_COMPLEX_FLOAT:BOOL=ON \
   -D   Tpetra_INST_FLOAT:BOOL=ON \

I needed the changes in INT_LONG's to pass the cmake checks. This compiles for me, but I haven't really tested it yet. Is using Trilinos 13 expected to be an issue for deal.ii? If so, I will downgrade my make next and just install Trilinos 12, but it might be good to add a warning/error when using using make 4.3.

macos: petsc make all install failed

Running ./candi.sh --prefix=~/lib/dealii-candi -j 12 on macOS 10.15.2 throws the error:

Verifying petsc-lite-3.11.3.tar.gz
petsc-lite-3.11.3.tar.gz: OK
Unpacking petsc-lite-3.11.3.tar.gz
Building petsc 3.11.3
===============================================================================
             Configuring PETSc to compile on your system                       
===============================================================================
===============================================================================                                                                                                                       ***** WARNING: Using default optimization C flags -g -O3                                                                                                                                        You might consider manually setting optimal optimization flags for your system with                                                                                                              COPTFLAGS="optimization flags" see config/examples/arch-*-opt.py for examples                                                                                                            ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       ***** WARNING: Using default C++ optimization flags -g -O3                                                                                                                                      You might consider manually setting optimal optimization flags for your system with                                                                                                              CXXOPTFLAGS="optimization flags" see config/examples/arch-*-opt.py for examples                                                                                                          ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       ***** WARNING: Using default FORTRAN optimization flags -g -O                                                                                                                                   You might consider manually setting optimal optimization flags for your system with                                                                                                              FOPTFLAGS="optimization flags" see config/examples/arch-*-opt.py for examples                                                                                                            ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Trying to download git://https://bitbucket.org/petsc/pkg-scalapack for SCALAPACK                                                                                                          ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Compiling and installing Scalapack; this may take several minutes                                                                                                                         ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Trying to download git://https://bitbucket.org/petsc/pkg-mumps.git for MUMPS                                                                                                              ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Compiling Mumps; this may take several minutes                                                                                                                                            ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Installing Mumps; this may take several minutes                                                                                                                                           ===============================================================================                                                                                                                 **************************************************************************************************                                                                                              Please register to use hypre at https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html                                                                                                 **************************************************************************************************                                                                                              ===============================================================================                                                                                                                       Trying to download git://https://github.com/LLNL/hypre for HYPRE                                                                                                                          ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Running configure on HYPRE; this may take several minutes                                                                                                                                 ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Running make on HYPRE; this may take several minutes                                                                                                                                      ===============================================================================                                                                                                                 ===============================================================================                                                                                                                       Running make install on HYPRE; this may take several minutes                                                                                                                              ===============================================================================                                                                                                                 Compilers:                                                                                                                                                                                      
  C Compiler:         mpicc  -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Qunused-arguments -fvisibility=hidden -g -O3 
  C++ Compiler:       mpicxx  -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -fvisibility=hidden -g -O3   
  Fortran Compiler:   mpif90  -Wall -ffree-line-length-0 -Wno-unused-dummy-argument -g -O  
Linkers:
  Shared linker:   mpicc  -dynamiclib -single_module -undefined dynamic_lookup -multiply_defined suppress  -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Qunused-arguments -fvisibility=hidden -g -O3
  Dynamic linker:   mpicc  -dynamiclib -single_module -undefined dynamic_lookup -multiply_defined suppress  -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Qunused-arguments -fvisibility=hidden -g -O3
make:
BLAS/LAPACK: -llapack -lblas
MPI:
cmake:
hypre:
  Includes: -I/Users/ihar/lib/dealii-candi/petsc-3.11.3/include
  Library:  -Wl,-rpath,/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -L/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -lHYPRE
pthread:
metis:
  Includes: -I/Users/ihar/lib/dealii-candi/parmetis-4.0.3/include
  Library:  -Wl,-rpath,/Users/ihar/lib/dealii-candi/parmetis-4.0.3/lib -L/Users/ihar/lib/dealii-candi/parmetis-4.0.3/lib -lmetis
parmetis:
  Includes: -I/Users/ihar/lib/dealii-candi/parmetis-4.0.3/include
  Library:  -Wl,-rpath,/Users/ihar/lib/dealii-candi/parmetis-4.0.3/lib -L/Users/ihar/lib/dealii-candi/parmetis-4.0.3/lib -lparmetis
MUMPS:
  Includes: -I/Users/ihar/lib/dealii-candi/petsc-3.11.3/include
  Library:  -Wl,-rpath,/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -L/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord
scalapack:
  Library:  -Wl,-rpath,/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -L/Users/ihar/lib/dealii-candi/petsc-3.11.3/lib -lscalapack
  Arch:     
PETSc:
  PETSC_ARCH: arch-darwin-c-debug
  PETSC_DIR: /Users/ihar/lib/dealii-candi/tmp/build/petsc-lite-3.11.3
  Scalar type: real
  Precision: double
  Clanguage: C
  Integer size: 32
  shared libraries: enabled
  Memory alignment: 16
xxx=========================================================================xxx
 Configure stage complete. Now build PETSc libraries with (gnumake build):
   make PETSC_DIR=/Users/ihar/lib/dealii-candi/tmp/build/petsc-lite-3.11.3 PETSC_ARCH=arch-darwin-c-debug all
xxx=========================================================================xxx
makefile:16: /lib/petsc/conf/variables: No such file or directory                                                                                                                               
makefile:17: /lib/petsc/conf/rules: No such file or directory
makefile:18: /lib/petsc/conf/test.common: No such file or directory
make: *** No rule to make target `/lib/petsc/conf/test.common'.  Stop.
Failure with exit status: 2
Exit message: petsc make all install failed

Intel MPI and PETSC

I had two users reporting the same error message (on different clusters) when trying to install deal.II with PETSC via candi (deal.II v9.0.0, default PETSC). Error message in both cases was:

-- Found PETSC
-- Could not find a sufficient PETSC installation: PETSC is compiled against a different MPI library than the one deal.II picked up.
-- DEAL_II_WITH_PETSC has unmet external dependencies.
CMake Error at cmake/configure/configure_3_petsc.cmake:122 (MESSAGE):

  

  Could not find the petsc library!

  Could not find a sufficient PETSC installation:

  PETSC has to be compiled against the same MPI library as deal.II but the
  link line of PETSC contains:

    /usr/local/Cluster-Apps/intel/2017.4/compilers_and_libraries_2017.4.196/linux/mpi/intel64/lib/debug_mt/libmpi.so

  which is not listed in MPI_LIBRARIES:

    MPI_LIBRARIES = "/usr/local/Cluster-Apps/intel/2017.4/compilers_and_libraries_2017.4.196/linux/mpi/intel64/lib/libmpicxx.so /usr/local/Cluster-Apps/intel/2017.4/compilers_and_libraries_2017.4.196/linux/mpi/intel64/lib/libmpifort.so /usr/local/Cluster-Apps/intel/2017.4/compilers_and_libraries_2017.4.196/linux/mpi/intel64/lib/release_mt/libmpi.so /usr/local/Cluster-Apps/intel/2017.4/compilers_and_libraries_2017.4.196/linux/mpi/intel64/lib/libmpigi.a /lib64/libdl.so /lib64/librt.so /lib64/libpthread.so"

  

  Please ensure that the petsc library version 3.3.0 or newer is installed on
  your computer and is configured with the same mpi options as deal.II

Has someone seen similar errors and has a quick fix? For now I just told them to disable PETSC (we do not need it for ASPECT).

suggestion: provide blas+lapack

Some clusters do not have a working blas+lapack. Maybe we can write an (optional) package that uses gotoblas or atlas to provide these? Requires testing it for Trilinos and deal.II of course.

Requested on the ASPECT mailing list.

Occurring errors in building latest DEAL_II (9.3.1)

To install the latest ASPECT which is a thermo-mechanical code, I found it requires the latest DEAL.II (9.3.x).

So, I tried to install the latest DEAL.II.
I have been experienced installing ver 9.2.x of DEAL.II and previous version of ASPECT.

When I installed the previous versions, everything was okay.

However, I am struggling with ver. 9.3.1 of DEAL.II.

The main concern is building symengine 0.7.0.

I think it is newly added in ver. 9.3.1 of DEAL.II because I haven't seen it in ver 9.2.x of DEAL.II.

My terminal shows the massage;
"Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIRS)"

So, I installed gmp-6.2.1 and exported the directories of the library and include as GMP_LIB=/installed/lib and GMP_INC=/installed/inc.
Also, I exported again the directories of the library and include as GMP_LIBRARIES=/installed/lib and GMP_INCLUDE_DIRS=/installed/inc due to the message in terminal

However, I got the same error message.

Any comments are helpful for me.

error_building_symengine
s

Best regard

Sungho

OpenBlas 0.3.13 fails to build with GNU 7.1.0 compilers (Stampede2)

The default version of OpenBlas with the current version of Candi is 0.3.13. When building this version of OpenBlas on Stampede2 with GNU compilers (7.1.0), a series of errors is thrown of the following nature:
../kernel/x86_64/dasum_microk_skylakex-2.c:42:38: error: incompatible type for argument 1 of ‘_mm512_abs_pd’

This error is documented elsewhere (for example) and appears to be related to a bug in the GNU compilers.

Reverting to OpenBlas 0.3.7 produced no errors and allowed a successful build of trillions, deal.II 9.3.0, and ASPECT.

I'm not sure this is worth updating as the fix is documented on the ASPECT wiki and newer GNU compilers are now available on Stampede2, on which the issue may not exist.

candi deal.II build hangs on ld.gold

A number of users, myself included, are trying to build deal.II with candi on Blue Waters (cray cluster, https://bluewaters.ncsa.illinois.edu/).

The build uses the cray.platform configuration from and gets most of the way through the deal.II build (up to [100%] Built target deal_II) and then hangs. The cluster administrator found that the process hanging up is ld.gold.

Any insights into what might be going on here? I haven't encountered this issue before, but perhaps it's related to deal.II issue 2820?

I'm going to try compiling deal.II without candi, but I imagine the same issue may pop there as well.

Trilinos MueLu is not working

During the configuration of deal.II, the setup complains that Trilinos MueLu is found but not working. Therefore, the AMG MueLu Preconditioners are not compiled.

I found this issue today with deal.II v9.3 but it was already present for deal.II v9.2 and maybe even longer.

Development Tools

@koecher we talked already about the config file and the toolchain. As additional development tool we could also provide the automatic download of clang-format maybe with the help of the dealii/contrib/utilities/download_clang_format script?

Use ninja instead of make

#252 reminds me that since we're already downloading all sorts of stuff in candi, we might as well download 'ninja' and use that instead of 'make' whenever we build something via 'cmake'. Ninja is so much faster on large build projects that that might be worth the slight complication due to downloading and building it.

On CentOS7 default GCC is too old to build the current version of dealii

The default gcc version on CentOS 7 is 4.8.5, which causes problems when trying to build dealii:
https://groups.google.com/forum/embed/#!topic/dealii/kdsA4BkHTm4

We can use centos-release-scl and devtoolset-9 to fix it:
https://linuxize.com/post/how-to-install-gcc-compiler-on-centos-7/
edit: I had used the first URL twice in error when I originally posted

a recent devtoolset should be added as a dependency, and the commands to enable the recent GCC should be added to the commands suggested when candi.sh is run on centos 7

CMAKE version insufficient for building Trilinos on CentOS7

On CentOS the cmake package installs version 2.8.12.2, and the cmake3 package installs version 3.17.3 to /usr/bin/cmake3 which leads to Trilinos complaining that the installed version of cmake is insufficient.

I worked around the problem by un-commenting the following line in candi.cfg:

PACKAGES="${PACKAGES} once:cmake"

Installing problem of ver 9.3.1 of DEAL.II

I am trying to install the latest deal.ii.

I activated MKL=on and added proper directories (Fig.2).
However, candi cannot find the directories (Fig.3).

Plus, I inactivated all system dependencies but candi forced to install all packages (Fig.1).

Any comments can be helpful for me.

Best regards

Sungho

Figure 1. a screen capture (Inactivating system dependencies)
1

Figure 2. a screen capture (Activating MKL)
2

Figure 3. a screen capture (candi force to install the system dependencies which I inactivated. Also, candi could not find MKL)
3

Incompatability with macOS Big Sur

Currently, candi will not compile automatically unless you manually specify your operating system to be macOS Catalina by linking to the folder of supported operating systems. This is an easy fix of course, but nevertheless an issue that could be resolved.

Problem with scaling

Hi there,
I have installed dealii using candi but I have a problem with parallel computing. When I change the number of cores for the step-17 example file, it shows e the following wall time:
time mpirun -np 1 ./step-17
real 0m17.701s
time mpirun -np 2 ./step-17
real 0m16.507s
time mpirun -np 4 ./step-17
real 0m33.934s

My operating system is Ubuntu 18.04, Intel® Core™ i7-8700 CPU @ 3.20GHz × 12, and I followed the instructions you provided on github. I have seen an option in dealii cmake which is:
-DDEAL_II_WITH_MPI=ON
Is there something about this option for parallel computing? How can we activate it for installation?
Cheers,
Mohammad

Adding more support for other useful packages

Dear all,

Thanks for your invaluable contributions.

I'm trying to install and compile dealii with mumps and CUDA but failed. It says these packages don't exist yet. I'm wondering if you could add support for them?

Best,

Failed to compile an example of deal.ii

Hi all.

Finally, I compiled deal.ii with intel compilers and mkl libraries without any errors (Fig. 1)

Figure 1. a screen shot showing compilation log of deal.ii
스크린샷, 2021-09-23 16-28-36

Then, I tried to test an example (step-32), so I moved to ~/deal.II-v9.3.1/examples/step-32.

I sequentially typed those command lines "cmake ." and "make"

My terminal shows long logs and a lot of errors like below

스크린샷, 2021-09-23 17-13-16

...

스크린샷, 2021-09-23 17-13-32

Does anyone know how to figure it out?

Any comments can be helpful for me.

Thank you

Regards

Sungho

Cmake error when compiling Trilinos on Ubuntu 18.04 through Candi

Dear all,
When trying to compile Trilinos on Ubuntu 18.04 through Candi master branch I get the following error:
CMake Error: Unknown argument -O5 CMake Error: Run 'cmake --help' for all supported options. Failure with exit status: 1 Exit message: There was a problem configuring trilinos 12-18-1

The CMake version on my machine is 3.20.3 (installed through snap)
And my compiler is gcc 7.5
I can compile Trilinos manually using CMake elsewhere and I used to be able to do it through candi. Was this flag recently introduced?

The following SO post seems to mention that this means this flag was always ignored?
https://stackoverflow.com/questions/67390153/cmake-error-unknown-argument-vv-when-installing-trilinos

cmake 3.20 MPI compiler selection broken

It seems #207 is required when using cmake 3.20 and not only for deal.II but also Trilinos, so we will need to do additional work. Otherwise I can not pick a different CXX compiler.

Git tag vs VERSION

I observed that sometimes the git tag or branch we want to download has a different name, e.g., vX.Y.Z or X.Y.Z, or even gmsh_X_Y_Z. Therefore I would like to ask you, what about adding a variable GITTAG or something else, that indicates the branch or tag we want down get from a git repo. Currently the VERSION variable is used therefore.

Issue installing deal ii

Hi,

I have download candi in order to install deal II. I am using wsl in windows 11. I am not sure if that is the proper place to ask about my problem, if not please let me know where. I got the following problem:

Unbenannt

Do you know what I can try to solve it?

Thanks

Best regards

9.1 release

I just created the dealii-9.1 branch but. TODO list:

  • wait for 9.1 release and update version to 9.1 on dealii-9.1 branch
  • p4est: put in #113
  • investigate trilinos update
  • check and possibly include other dependencies: ginko, symengine
  • test

Problem with installation deal.ii on mac M1

Hi,

I am trying to install deal.ii version 9.3.3 on my mac book with apple silicon M1 processor. I get the following error during build opencascade.
Does anyone have an idea about that and can help me to avoid that error ??
Screenshot 2022-03-16 at 18 29 32

Error compiling MUMPS and Trilinos on official intel-hpc Docker

Hello, and thank you so much for maintaining this automatic installer for deal.II - it's quite a life-saviour. I am currently trying to use candi on a simple pre-configured intel-hpckit Docker container with intel compilers and MKL. However, I am struggling to fix the building errors of MUMPS and Trilinos.

Here is a minimal working example:

docker run -it --name icont -v $(pwd):/home/docker-host intel/oneapi-hpckit

First install the basic dependencies that candi.sh mentions, without the openmpi dependencies - which are handled by /opt/intel/oneapi:

cd /home/docker-host

apt update -y
apt-get install -y lsb-release git subversion wget bc libgmp-dev \
    build-essential autoconf automake cmake libtool gfortran \
    libboost-all-dev zlib1g-dev \
    libsuitesparse-dev

git clone -b master https://github.com/dealii/candi.git candi

This is the candi/candi.cfg I use:

# Global configuration.

# Meta-project to build
PROJECT=deal.II-toolchain

# Option {ON|OFF}: Use fresh build directory by remove existing ones?
CLEAN_BUILD=OFF

#########################################################################

# Where do you want the downloaded source files to go?
#DOWNLOAD_PATH=${PREFIX_PATH}/tmp/src

# Where do you want to unpack source files to go?
#UNPACK_PATH=${PREFIX_PATH}/tmp/unpack

# Where do you want the build files to go?
#BUILD_PATH=${PREFIX_PATH}/tmp/build

# Where do you want the compiled software installed?
INSTALL_PATH=${PREFIX_PATH}

#########################################################################
# Set up mirror server url(s), to speed up downloads, e.g.
#   MIRROR="${MIRROR} http://server1.org/package_mirror_dir/"
#   MIRROR="${MIRROR} ftp://server2.org/package_mirror_dir/"
MIRROR="https://tjhei.info/candi-mirror/ https://cecas.clemson.edu/dealii/mirror/"

#########################################################################
# Choose additional configuration and components of deal.II
DEAL_II_CONFOPTS=""

# Option {ON|OFF}: Enable machine-specific optimizations (e.g. -march=native)?
NATIVE_OPTIMIZATIONS=ON

# Option {ON|OFF}: Enable building of dealii examples?
BUILD_EXAMPLES=ON

# Option {ON|OFF}: Unset CXX and set the compiler as MPI_CXX_COMPILER when configuring deal.II
#
# This is recommended for very recent CMake versions but it currently is not reliable enough
# to enable by default.
USE_DEAL_II_CMAKE_MPI_COMPILER=ON

# Option {ON|OFF}: Run tests after installation?
RUN_DEAL_II_TESTS=ON

# Choose the python interpreter to use. We pick python2, python3,
# python in that order by default. If you want to override this
# choice, uncomment the following:
#PYTHON_INTERPRETER=python3

# Now we pick the packages to install:
PACKAGES="load:dealii-prepare"

# These are system dependencies that are often pre-installed:
#PACKAGES="${PACKAGES} once:zlib"
#PACKAGES="${PACKAGES} once:bzip2"
#PACKAGES="${PACKAGES} once:git"
#PACKAGES="${PACKAGES} once:cmake"
#PACKAGES="${PACKAGES} once:boost"
#PACKAGES="${PACKAGES} once:numdiff"
#PACKAGES="${PACKAGES} once:openblas"
#PACKAGES="${PACKAGES} once:scalapack"

# These packages are not dependencies but are tools used for deal.II development:
#PACKAGES="${PACKAGES} once:astyle"
#PACKAGES="${PACKAGES} once:numdiff"

# These packages determine the active components of deal.II:
PACKAGES="${PACKAGES} once:adolc"
PACKAGES="${PACKAGES} once:arpack-ng"
PACKAGES="${PACKAGES} once:assimp"
PACKAGES="${PACKAGES} once:ginkgo"
PACKAGES="${PACKAGES} once:gmsh"
PACKAGES="${PACKAGES} once:gsl"
PACKAGES="${PACKAGES} once:mumps"
PACKAGES="${PACKAGES} once:opencascade"
PACKAGES="${PACKAGES} once:parmetis"
PACKAGES="${PACKAGES} once:sundials"
PACKAGES="${PACKAGES} once:superlu_dist"
PACKAGES="${PACKAGES} once:hdf5"
PACKAGES="${PACKAGES} once:netcdf"
PACKAGES="${PACKAGES} once:p4est"
PACKAGES="${PACKAGES} once:trilinos"
PACKAGES="${PACKAGES} once:petsc"
PACKAGES="${PACKAGES} once:slepc"
PACKAGES="${PACKAGES} once:symengine"
PACKAGES="${PACKAGES} dealii"

#########################################################################

# Install the following deal.II version (choose master, v9.3.0, v9.2.0, ...)
DEAL_II_VERSION=master

#########################################################################

# If you want to use Trilinos, decide if you want v12.x.x (AUTO) or v11.x.x
TRILINOS_MAJOR_VERSION=AUTO
#TRILINOS_MAJOR_VERSION=12
#TRILINOS_MAJOR_VERSION=11

# If enabled, Trilinos is configured with complex number support in
# Teuchos and Tpetra. This takes a long time to compile and requires a
# lot of RAM. It is also likely not something you will need.
TRILINOS_WITH_COMPLEX=OFF

#########################################################################

# Option {ON|OFF}: Do you want to use MKL?
MKL=ON
MKL_DIR=/opt/intel/oneapi/mkl/latest/
BLAS_DIR=/opt/intel/oneapi/mkl/latest/lib/intel64
LAPACK_DIR=/opt/intel/oneapi/mkl/latest/lib/intel64

#########################################################################

# If you have commits from the deal.II master to cherry-pick in stable version

# bugfix for TrilinosWrapper::SparseMatrix ::add(factor, SparseMatrix)
#DEAL_CHERRYPICKCOMMITS="8bcaf55df6754238b2e4e41bf6a5dd276a97bdd2 ${DEAL_CHERRYPICKCOMMITS}"

#########################################################################

# Option {ON|OFF}: If you want to change the source code of one or multiple
# packages switch on the developer mode to avoid a package fetch and unpack.
# Note: a previous run of candi with the same settings must be done without
#       this mode!
DEVELOPER_MODE=OFF

################################################################################

# OPTION {ON|OFF}: Remove build directory after successful installation
INSTANT_CLEAN_BUILD_AFTER_INSTALL=OFF

# OPTION {ON|OFF}: Remove downloaded packed src after successful installation
INSTANT_CLEAN_SRC_AFTER_INSTALL=OFF

# OPTION {ON|OFF}: Remove unpack directory after successful installation
INSTANT_CLEAN_UNPACK_AFTER_INSTALL=OFF

Then, starting the compilation:

export CFLAGS='-O3 -march=native'
export CXXFLAGS='-O3 -march=native'
export FFLAGS='-O3 -march=native'
export FCFLAGS='-O3 -march=native'

INSTALL_DIR=$(pwd)/candi-install
mkdir $INSTALL_DIR

cd candi
./candi.sh --prefix=$INSTALL_DIR -j32
cd ..

Finally, the most important parts of the output:

[...]

Compiler Variables:

CC  variable not set, but default mpicc  found.
CC  = /opt/intel/oneapi/mpi/2021.5.0//bin/mpicc
CXX variable not set, but default mpicxx found.
CXX = /opt/intel/oneapi/mpi/2021.5.0//bin/mpicxx
FC  variable not set, but default mpif90 found.
FC  = /opt/intel/oneapi/mpi/2021.5.0//bin/mpif90
FF  variable not set, but default mpif77 found.
FF  = /opt/intel/oneapi/mpi/2021.5.0//bin/mpif77

[...]

Verifying v5.4.0.5.tar.gz
v5.4.0.5.tar.gz: OK(md5)
Unpacking v5.4.0.5.tar.gz
Building mumps 5.4.0.5
-- The C compiler identification is GNU 7.5.0
-- The Fortran compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/intel/oneapi/mpi/2021.5.0/bin/mpicc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /opt/intel/oneapi/mpi/2021.5.0/bin/mpif90 - skipped
-- checking that C and Fortran compilers can link
-- checking that C and Fortran compilers can link - OK
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'mkl-static-lp64-seq'
--   Found mkl-static-lp64-seq, version 2022
-- Performing Test LAPACK_real64_links
-- Performing Test LAPACK_real64_links - Success
-- Performing Test LAPACK_real32_links
-- Performing Test LAPACK_real32_links - Success
-- Found LAPACK: -Wl,--start-group;/opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_gf_lp64.so;/opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_sequential.so;/opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_core.so;-Wl,--end-group;dl;m  found components: MKL
-- Checking for one of the modules 'ompi-c'
-- Performing Test MPI_C_links
-- Performing Test MPI_C_links - Success
-- Checking for one of the modules 'ompi-fort'
-- Performing Test MPI_Fortran_links
-- Performing Test MPI_Fortran_links - Failed
CMake Error at /usr/local/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find MPI (missing: Fortran)
Call Stack (most recent call first):
  /usr/local/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/Modules/FindMPI.cmake:541 (find_package_handle_standard_args)
  CMakeLists.txt:42 (find_package)

Error persists with USE_DEAL_II_CMAKE_MPI_COMPILER=OFF; checking /home/docker-host/candi-install/tmp/build/mumps-5.4.0.5/CMakeFiles/CMakeError.log:

Performing Fortran SOURCE FILE Test MPI_Fortran_links failed with the following output:
Change Dir: /home/docker-host/candi-install/tmp/build/mumps-5.4.0.5/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_e2ef6/fast && /usr/bin/make  -f CMakeFiles/cmTC_e2ef6.dir/build.make CMakeFiles/cmTC_e2ef6.dir/build
make[1]: Entering directory '/home/docker-host/candi-install/tmp/build/mumps-5.4.0.5/CMakeFiles/CMakeTmp'
Building Fortran object CMakeFiles/cmTC_e2ef6.dir/src.F90.o
/opt/intel/oneapi/mpi/2021.5.0/bin/mpif90 -DMPI_Fortran_links -I/opt/intel/oneapi/mpi/2021.5.0/include -O3 -march=native -fimplicit-none   -fPIE -c /home/docker-host/candi-install/tmp/build/mumps-5.4.0.5/CMakeFiles/CMakeTmp/src.F90 -o CMakeFiles/cmTC_e2ef6.dir/src.F90.o
f951: Fatal Error: Reading module ‘mpi’ at line 1 column 2: Unexpected EOF
compilation terminated.
CMakeFiles/cmTC_e2ef6.dir/build.make:77: recipe for target 'CMakeFiles/cmTC_e2ef6.dir/src.F90.o' failed
make[1]: *** [CMakeFiles/cmTC_e2ef6.dir/src.F90.o] Error 1
make[1]: Leaving directory '/home/docker-host/candi-install/tmp/build/mumps-5.4.0.5/CMakeFiles/CMakeTmp'
Makefile:127: recipe for target 'cmTC_e2ef6/fast' failed
make: *** [cmTC_e2ef6/fast] Error 2


Source file was:

program test
use mpi
implicit none
integer :: i
call mpi_init(i)
call mpi_finalize(i)
end program

I do not know why MUMPS does not find MPI, when the other libraries worked fine with it; the Fatal Error: Reading module ‘mpi’ at line 1 column 2: Unexpected EOF hints at something wrong with the cmake configuration (I think?) but I have not managed to fix it by changing MUMPS' CMakeLists.txt.

Any help would be greatly appreciated.

Best wishes,
Leonard

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.