<div dir="ltr"><div>cc'ing Robert who is taking over from Aaron for a few days.</div><div><div><div><br></div><div>Robert, I suggest hoisting PetscInitailize into main or at least a C call of some sort.</div><div><br></div><div>This error in pgf90_str_copy_klen might be be avoided by not giving PetscInitialize a string ('petsc.rc') and linking petsc.rc --> .petscrc (PETSc will look for .petscrc by default).<br></div></div><div></div></div><div><br></div><div>more below.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 28, 2021 at 12:19 AM Barry Smith <<a href="mailto:bsmith@petsc.dev">bsmith@petsc.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><br><div><br><blockquote type="cite"><div>On Aug 27, 2021, at 5:05 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>> wrote:</div><br><div><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 27, 2021 at 5:03 PM Junchao Zhang <<a href="mailto:junchao.zhang@gmail.com" target="_blank">junchao.zhang@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I don't understand the configure options<div><br><div>--with-cc=/gpfs/alpine/world-shared/phy122/lib/install/summit/kokkos/nvhpc21.7/bin/<b><font color="#ff0000">nvcc_wrapper</font></b> --with-cxx=/gpfs/alpine/world-shared/phy122/lib/install/summit/kokkos/nvhpc21.7/bin/nvcc_wrapper --with-fc=/sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/nvhpc-21.7/spectrum-mpi-10.4.0.3-20210112-nv7jd363ym3n4zpgornfbq6bh4tqjyak/bin/mpifort COPTFLAGS="-g -fast" CXXOPTFLAGS="-g -fast" FOPTFLAGS="-g -fast" CUDAFLAGS="-ccbin nvc++" --with-ssl=0 --with-batch=0 --with-mpiexec="jsrun -g 1" <b><font color="#ff0000">--with-cuda=0</font></b> --with-cudac=/gpfs/alpine/world-shared/phy122/lib/install/summit/kokkos/nvhpc21.7/bin/nvcc_wrapper --with-cuda-gencodearch=70 --download-metis --download-parmetis --with-x=0 --with-debugging=0 PETSC_ARCH=arch-summit-opt-nvhpc --prefix=/gpfs/alpine/world-shared/phy122/lib/install/summit/petsc/current/opt-nvhpc21.7b</div><div><br></div><div>Why do you need to use nvcc_wrapper if you do not want to use cuda? </div></div></div></blockquote><div><br></div><div>That code that is having a problem links with nvcc_wrapper.</div><div>They get a segv that I sent earlier, in PetscInitialize so I figure I should use the same compiler / linker.</div><div>They use CUDA, but we don't need PETSc to use CUDA now.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>In addition, nvcc_wrapper is a C++ compiler. Using it for --with-cc=, you also need --with-clanguage=c++ </div></div></div></blockquote><div><br></div><div>I rebuilt PETSc with mpicc, mpiCC, mpif90 and <span style="color:rgb(80,0,80)">--with-nvcc=nvcc_wrapper and </span>that built make check works. I gave it to them to test.</div></div></div></div></blockquote><div><br></div>   This is an odd way to do it. The Kokkos nvcc_wrapper wraps the nvcc compiler to allow it to compile Kokkos code and link it against the Kokkos libraries; so using nvcc_wrapper as nvcc is strangely recursive; sure everything in PETSc/Kokkos may build ok (assuming the nvcc that the nvcc_wrapper uses is correct for the situation and uses a correct underlying C++) but it is freakish. PETSc should just be built with the same nvcc that the nvcc_wrapper is using and using the same inner C++ compiler. </div></div></blockquote><div><br></div><div>Yes, this convoluted. Thanks for your take on this.</div><div>That said, they have been struggling to get Kokkos to build with nvhpc and I can see this is what they have compiling and are pressing on with a milestone that is due soon.</div><div><br></div><div>Anyway, I found that PetscInitialize is called from Fortran code (in 25+ years have we ever seen a C++ code call PetscInitialize from a Fortran subroutine ?), which should be fine. Just unusual.</div><div>This explains the error coming from a Fortran library:</div><div><br></div><div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;margin:0px;background-color:rgb(220,255,239)"><span style="font-variant-ligatures:no-common-ligatures">[e13n16:591874] [ 1] /autofs/nccs-svm1_sw/summit/nvhpc_sdk/rhel8/Linux_ppc64le/21.7/compilers/lib/libnvf.so(pgf90_str_copy_klen+0x1fc)[0x200004a79ee4]</span></div></div></div></div></div></blockquote></div></div></blockquote></div></blockquote></div></div></div></blockquote></div></div></blockquote></div></blockquote></div></div></div></blockquote><div><br></div>They are using this Fortran compiler and so I built PETSc with it:</div><div><br></div><div>/sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/nvhpc-21.7/spectrum-mpi-10.4.0.3-20210112-nv7jd363ym3n4zpgornfbq6bh4tqjyak/bin/mpifort<br></div><div><br></div><div>I see:</div><div><br></div><div>07:16 1  ~$ which mpif90<br>/sw/summit/spack-envs/base/opt/linux-rhel8-ppc64le/nvhpc-21.7/spectrum-mpi-10.4.0.3-20210112-nv7jd363ym3n4zpgornfbq6bh4tqjyak/bin/mpif90<br></div><div><br></div><div>so this is the nvhpc-21.7 Fortran. </div><div><br></div><div>Thanks,</div><div>Mark</div></div></div>