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!!