最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

ubuntu - Apptainer build problem with Library of iterative solver - Quad precision is not enabled - Stack Overflow

programmeradmin4浏览0评论

Im trying to build a container (with apptainer) that contains a build of the the LIS library. Here is my script:

Bootstrap: docker
From: ubuntu:22.04


%environment
    export INTEL_MPI_DIR="/tmp/intel"
    export INCLUDE_DIR="$INTEL_MPI_DIR/include"
    export LIB_DIR="$INTEL_MPI_DIR/lib"

%post -c /bin/bash
    export DEBIAN_FRONTEND=noninteractive
    export TZ=Etc/UTC
    # Install necessary dependencies
    apt update && apt upgrade -y
    apt install -y build-essential wget gfortran cmake unzip gcc g++ libgcc-10-dev  libx11-dev libxext-dev libxft-dev libxmu-dev libboost-all-dev libquadmath0

    source /tmp/intel/oneapi/setvars.sh
 
    wget .1.7.zip -O /tmp/lis-2.1.7.zip
    unzip /tmp/lis-2.1.7.zip -d /tmp/
    cd /tmp/lis-2.1.7
    ./configure --prefix=/usr/local --enable-f90 --enable-mpi --enable-shared --enable-saamg --enable-quad --enable-sse2 --enable-fma 'CFLAGS=-O3 -march=x86-64 -mtune=generic -frounding-math -fsignaling-nans' 'FCFLAGS=-O3 -march=x86-64 -mtune=generic -frounding-math -fsignaling-nans'
    make
    make check
    make install

which gets built with

(base) bash-4.4$ apptainer build --bind /opt/intel:/tmp/intel min_example.sif min_example.def

However Im having a specific problem with quad precision (which I need). When it gets to the make check sections of the build

=== Running test test.sh
 
checking linear solvers...

number of processes = 2
matrix size = 100 x 100 (460 nonzero entries)

initial vector x      : all components set to 0
precision             : double
linear solver         : BiCG
preconditioner        : none
convergence condition : ||b-Ax||_2 <= 1.0e-12 * ||b-Ax_0||_2
matrix storage format : CSR
linear solver status  : normal end

BiCG: number of iterations = 15
BiCG:   double             = 15
BiCG:   quad               = 0
BiCG: elapsed time         = 1.502484e-04 sec.
BiCG:   preconditioner     = 1.370907e-06 sec.
BiCG:     matrix creation  = 2.086163e-07 sec.
BiCG:   linear solver      = 1.488775e-04 sec.
BiCG: relative residual    = 2.035749e-16

checking eigensolvers...

number of processes = 2
matrix size = 100 x 100 (460 nonzero entries)

initial vector x      : all components set to 1
precision             : double
eigensolver           : CR
convergence condition : ||lx-(B^-1)Ax||_2 <= 1.0e-12 * ||lx||_2
matrix storage format : CSR
shift                 : 0.000000e+00
linear solver         : BiCG
preconditioner        : none
eigensolver status    : normal end

CR: mode number          = 0
CR: eigenvalue           = 1.620281e-01
CR: number of iterations = 45
CR: elapsed time         = 1.337633e-03 sec.
CR:   preconditioner     = 2.384186e-07 sec.
CR:     matrix creation  = 2.384186e-07 sec.
CR:   linear solver      = 1.117587e-05 sec.
CR: relative residual    = 5.478047e-13

checking Fortran interface...

number of processes = 2
initial vector x      : all components set to 0
precision             : double
linear solver         : BiCG
preconditioner        : none
convergence condition : ||b-Ax||_2 <= 1.0e-12 * ||b-Ax_0||_2
matrix storage format : CSR
linear solver status  : normal end

number of iterations = 6

     1  1.000000e+00
     2  1.000000e+00
     3  1.000000e+00
     4  1.000000e+00
     5  1.000000e+00
     6  1.000000e+00

     7  1.000000e+00
     8  1.000000e+00
     9  1.000000e+00
    10  1.000000e+00
    11  1.000000e+00
    12  1.000000e+00
 
checking double-double precision operations...

number of processes = 2
n = 200, gamma = 2.000000

initial vector x      : all components set to 0
precision             : double
linear solver         : BiCG
preconditioner        : none
convergence condition : ||b-Ax||_2 <= 1.0e-12 * ||b-Ax_0||_2
matrix storage format : CSR
linear solver status  : LIS_MAXITER(code=4)

BiCG: number of iterations = 1001
BiCG:   double             = 1001
BiCG:   quad               = 0
BiCG: elapsed time         = 6.739244e-03 sec.
BiCG:   preconditioner     = 1.043081e-07 sec.
BiCG:     matrix creation  = 1.043081e-07 sec.
BiCG:   linear solver      = 6.739140e-03 sec.
BiCG: relative residual    = 1.159273e+00


number of processes = 2
n = 200, gamma = 2.000000

lis_solver.c(527) : lis_solve_kernel : error ILL_ARG :Quad precision is not enabled
checking SAAMG preconditioner...

number of processes = 2
matrix size = 100 x 100 (460 nonzero entries)

initial vector x      : all components set to 0
precision             : double
linear solver         : CG
preconditioner        : SAAMG
convergence condition : ||b-Ax||_2 <= 1.0e-12 * ||b-Ax_0||_2
matrix storage format : CSR
linear solver status  : normal end

CG: number of iterations = 15
CG:   double             = 15
CG:   quad               = 0
CG: elapsed time         = 1.426786e-04 sec.
CG:   preconditioner     = 1.490116e-06 sec.
CG:     matrix creation  = 2.235174e-07 sec.
CG:   linear solver      = 1.411885e-04 sec.
CG: relative residual    = 2.177091e-16

PASS: test.sh
=============
1 test passed

see the error code lis_solver.c(527) : lis_solve_kernel : error ILL_ARG :Quad precision is not enabled

I've tried a bunch of different configure variations and was running it with ubuntu:20.04 again with no success. Let me know if anyone has any thoughts!!

发布评论

评论列表(0)

  1. 暂无评论