On Sat, 2 Aug 2025, Renato E Poli wrote: > *>> You can first fix on what MPI to use - and build everyting else with > it. (and avoid mixing in multiple MPIs) * > It sounds wise to make PETSC point to CUDA MPI. > I changed PETSC configure to: > > $ ./configure --prefix=/usr/local/petsc --PETSC_ARCH=arch-linux-c-opt > --with-debugging=0 --with-mpi > *--with-mpi-dir=${NVHPC_ROOT}/comm_libs/12.9/openmpi4/latest* > --download-hypre --with-blaslapack --with-cuda > --with-cuda-dir=/opt/nvidia/hpc_sdk/Linux_x86_64/25.5/cuda && make all && > make install > > And now it seems hypre is not happy:"Cannot use hypre with 64-bit > BLAS/LAPACK indices". > Any idea on that one?
This is due to linking with 'cuda libraries' on a box without nvidia gpu/driver gives run-time errors. This breaks configure. You can try using: --with-batch=1 > > * >> Or use 'cuda toolkit' instead of 'nvhpc-sdk'* > We are using nvfortran, which is shipped with nvhpc-sdk AFAIK This e-mail thread started with: >>> NVFORTRAN-S-0034-Syntax error at or near end of line (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: 6) <<< And a recommendation to use gfortran instead of nvfortran Satish > > *>> E4S has containers with PETSc+CUDA installed (via Spack) - I guess you > can give it a try * > I'll take a look. Thanks! > > On Sat, Aug 2, 2025 at 12:20 PM Satish Balay <balay....@fastmail.org> wrote: > > > You can first fix on what MPI to use - and build everyting else with it. > > (and avoid mixing in multiple MPIs) > > > > I've had issues with Ubuntu built MPI - but if it works for you - thats > > great! > > > > You can make sure /usr/bin is ahead in your PATH [before nvhpc-sdk so that > > this MPI gets picked up] - or specify explicitly to PETSc with: > > > > Or use 'cuda toolkit' instead of 'nvhpc-sdk' > > > > ./configure --with-cc=/usr/bin/mpicc --with-cxx=/usr/bin/mpicxx > > --with-fc=/usr/bin/mpif90 --download-hypre > > > > etc.. > > > > BTW: PETSc configure attempts to run some binaries to detect > > compiler/library features, and such run tests (when linked in with cuda > > libraries) can fail if a cuda build is done on a box (container?) without > > nvidia driver installed. > > > > Satish > > > > > > On Sat, 2 Aug 2025, Renato E Poli wrote: > > > > > Understood. > > > > > > I believe I am running in circles. > > > > > > I managed to create the container, but it ended up with multiple MPI > > > implementations. > > > It seems that CUDA SDK has its own MPI, and polutes the PATH. > > > Is there any docker container PETSC+CUDA you would recommend? > > > This is a snippet of my Dockerfile, but I am not 100% happy with it. > > > > > > <<<<<< > > > FROM docker.io/ubuntu:24.04 > > > # Install necessary build tools and dependencies > > > RUN apt-get update && apt-get install -y libmpich-dev gfortran > > > libomp-dev (...) > > > (...) > > > > > > ## NVIDIA HPC SDK > > > RUN wget > > > > > https://urldefense.us/v3/__https://developer.download.nvidia.com/hpc-sdk/25.5/nvhpc_2025_255_Linux_x86_64_cuda_12.9.tar.gz__;!!G_uCfscf7eWS!ft2AAfoKdKf-j-6E6nTqtzXHqQEmnbsH7as3hylOIpz7OiONASpD-qNuRNcnDapAFok1YeTP2lLQfH7ne1cFSw$ > > > && > > > tar xpzfv nvhpc_2025_255_Linux_x86_64_cuda_12.9.tar.gz && > > > nvhpc_2025_255_Linux_x86_64_cuda_12.9/install --silent > > --accept-license > > > --instal-dir /opt/nvidia/hpc_sdk > > > > > > RUN cd petsc-3.23.5 &&\ > > > ./configure --prefix=/usr/local/petsc --PETSC_ARCH=arch-linux-c-opt > > > --with-debugging=0 \ > > > --with-mpi --download-hypre --with-blaslapack --with-cuda > > > --with-cuda-dir=/opt/nvidia/hpc_sdk/Linux_x86_64/25.5/cuda && \ > > > make all install && \ > > > cd .. > > > > > > (...) > > > ENV > > PATH=${NVHPC_ROOT}/compilers/bin:${NVHPC_ROOT}/comm_libs/mpi/bin:${PATH} > > > ENV MANPATH=${NVHPC_ROOT}/compilers/man:${MANPATH} > > > ENV LD_LIBRARY_PATH=${NVHPC_ROOT}/compilers/lib:${LD_LIBRARY_PATH} > > > >>>>>> > > > > > > Renato > > > > > > On Sat, Aug 2, 2025 at 11:11 AM Satish Balay <balay....@fastmail.org> > > wrote: > > > > > > > Please send configure.log > > > > > > > > presumably you are using a pre-installed mpi from hpc-sdk - that uses > > NV > > > > compilers. [and PETSc configure is defaulting to mpicc/mpif90 in PATH] > > > > > > > > If you do not have MPI with gcc/gfortran - you can do something like: > > > > > > > > ./configure --with-cuda=1 --with-cc=gcc --with-cxx=g++ > > --with-fc=gfortran > > > > --download-mpich [other options] > > > > > > > > When no options are specified - configure guesses - and picks up what > > it > > > > can find - and sometimes that might not be what you intend to use.. > > > > > > > > Satish > > > > > > > > On Sat, 2 Aug 2025, Renato E Poli wrote: > > > > > > > > > It seems that the installer is the one choosing to use nvfortran > > instead > > > > of > > > > > gfortran. > > > > > > > > > > I am building a docker container (clean environment). > > > > > I simply install CUDA SDK from > > > > > > > > > > > https://urldefense.us/v3/__https://developer.download.nvidia.com/hpc-sdk/25.5/nvhpc_2025_255_Linux_x86_64_cuda_12.9.tar.gz__;!!G_uCfscf7eWS!cBTymZpXcpFZ7BHpCGxn0ooq_STD1f9CioiFgRypIYNWg9lpwnmLpddrWk0-J-wQoeTw9Ipu2FPm037mQg_C2w$ > > > > > , set paths and call petsc configure. > > > > > > > > > > RUN cd petsc-3.23.5 &&\ > > > > > ./configure --prefix=/usr/local/petsc --with-debugging=0 > > --with-mpi > > > > > --download-hdf5 --download-hypre --with-blaslapack --with-cuda > > && \ > > > > > make all && make install > > > > > > > > > > Do you see any reason for using the wrong compiler? > > > > > > > > > > Renato > > > > > > > > > > On Sat, Aug 2, 2025 at 12:28 AM Satish Balay <balay....@fastmail.org > > > > > > > wrote: > > > > > > > > > > > NVFORTRAN (based on flang-17) does not support some F2008 features > > that > > > > > > are required here (flang-19+ should work) > > > > > > > > > > > > Suggest using gfortran instead. > > > > > > > > > > > > Satish > > > > > > > > > > > > On Fri, 1 Aug 2025, Renato E Poli wrote: > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I see the error below when compiling with --with-cuda. > > > > > > > > > > > > > > Any suggestion? > > > > > > > > > > > > > > > > > > > > > CC arch-linux-c-opt/obj/src/mat/impls/aij/seq/inode2.o > > > > > > > CC > > > > arch-linux-c-opt/obj/src/mat/impls/aij/seq/aijperm/aijperm.o > > > > > > > CC > > > > > > arch-linux-c-opt/obj/src/mat/impls/aij/seq/mattransposematmult.o > > > > > > > CC arch-linux-c-opt/obj/src/mat/impls/aij/seq/matptap.o > > > > > > > CC arch-linux-c-opt/obj/src/mat/impls/aij/seq/matrart.o > > > > > > > FC arch-linux-c-opt/obj/src/sys/ftn-mod/petscsysmod.o > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > 6) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 18) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 30) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 42) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 54) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 65) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 76) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 88) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 100) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 112) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 124) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 136) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 148) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscsys.h: > > > > > > 160) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscviewer.h: 6) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscviewer.h: > > > > > > > 17) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscoptions.h: > > > > > > > 6) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscoptions.h: > > > > > > > 18) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscoptions.h: > > > > > > > 30) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petsclog.h: > > 5) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petsclog.h: > > > > > > 17) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petsclog.h: > > > > > > 29) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscdevice.h: 6) > > > > > > > NVFORTRAN-S-0034-Syntax error at or near end of line > > > > > > > > > > > > > (/opt/src/petsc-3.23.5/arch-linux-c-opt/include/../ftn/sys/petscdevice.h: > > > > > > > 17) > > > > > > > 0 inform, 0 warnings, 24 severes, 0 fatal for petscsysdef > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >