Looks like ex55 is the one to use - that links in with ex55k

But it needs a fix for a build from 'make'

>>>>>>>>>>
balay@petsc-gpu-01:/scratch/balay/petsc/src/snes/tutorials$ git diff
diff --git a/src/snes/tutorials/makefile b/src/snes/tutorials/makefile
index 672a62aa5a0..eed127f7eae 100644
--- a/src/snes/tutorials/makefile
+++ b/src/snes/tutorials/makefile
@@ -8,6 +8,8 @@ CLEANFILES       = ex5f90t
 include ${PETSC_DIR}/lib/petsc/conf/variables
 include ${PETSC_DIR}/lib/petsc/conf/rules
 
+ex55: ex55.o ex55k.o
+
 #-------------------------------------------------------------------------
 
 #  these tests are used by the makefile in PETSC_DIR for basic tests of the 
install and should not be removed
balay@petsc-gpu-01:/scratch/balay/petsc/src/snes/tutorials$ make ex55
mpicc -o ex55.o -c -fPIC -Wall -Wwrite-strings -Wno-unknown-pragmas 
-Wno-lto-type-mismatch -Wno-stringop-overflow -fstack-protector 
-fvisibility=hidden -g3 -O0  -I/scratch/balay/petsc/include 
-I/scratch/balay/petsc/arch-linux-c-debug/include -I/usr/local/cuda/include    
`pwd`/ex55.c
PATH=`dirname 
/usr/local/cuda/bin/nvcc`:/nfs/gce/projects/petsc/soft/u22.04/mpich-4.0.2/bin:/usr/lib/ccache:/home/balay/.local/bin:/home/balay/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin::/nfs/gce/projects/gce/bin
 NVCC_WRAPPER_DEFAULT_COMPILER="mpicxx" 
/scratch/balay/petsc/arch-linux-c-debug/bin/nvcc_wrapper --expt-extended-lambda 
-c -ccbin mpicxx -std=c++17 -Xcompiler -fPIC -g -lineinfo -gencode 
arch=compute_86,code=sm_86 -I/scratch/balay/petsc/include 
-I/scratch/balay/petsc/arch-linux-c-debug/include -I/usr/local/cuda/include 
-Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas 
-Wno-lto-type-mismatch -Wno-psabi -fstack-protector -g 
-I/nfs/gce/projects/petsc/soft/u22.04/mpich-4.0.2/include -o ex55k.o 
`pwd`/ex55k.kokkos.cxx
mpicc -fPIC -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch 
-Wno-stringop-overflow -fstack-protector -fvisibility=hidden -g3 -O0   
-Wl,-export-dynamic ex55.o ex55k.o  
-Wl,-rpath,/scratch/balay/petsc/arch-linux-c-debug/lib 
-L/scratch/balay/petsc/arch-linux-c-debug/lib 
-Wl,-rpath,/scratch/balay/petsc/arch-linux-c-debug/lib 
-L/scratch/balay/petsc/arch-linux-c-debug/lib -Wl,-rpath,/usr/local/cuda/lib64 
-L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64/stubs 
-Wl,-rpath,/nfs/gce/projects/petsc/soft/u22.04/mpich-4.0.2/lib 
-L/nfs/gce/projects/petsc/soft/u22.04/mpich-4.0.2/lib 
-Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11 
-lpetsc -lkokkoskernels -lkokkoscontainers -lkokkoscore -lkokkossimd -llapack 
-lblas -lm -lcudart -lnvToolsExt -lcufft -lcublas -lcusparse -lcusolver 
-lcurand -lcuda -lX11 -lmpifort -lmpi -lgfortran -lm -lgfortran -lm -lgcc_s 
-lquadmath -lstdc++ -lquadmath -o ex55
balay@petsc-gpu-01:/scratch/balay/petsc/src/snes/tutorials$ 
<<<<<<<

Satish


On Wed, 14 Feb 2024, Uralovich, Ibragimov Iskander wrote:

> Hello!
> 
> I want to start porting part of our PETSc-based code to GPU through kokkos 
> and I want to start with excercises given in tutorials folder.
> 
> For that I found two examples of using PETSC with kokkos in folder 
> petsc/src/snes/tutorials
> 
> I managed to succesfully compile and run ex3k.kokkos.cxx, but I cannot 
> compile ex55k.kokkos.cxx.
> when I do make i got a following error:
> 
> 
> iskander@apollo:~/software/petsc3_20/src/snes/tutorials$ make ex55k
> PATH=`dirname 
> nvcc`:/local/home/iskander/software/petsc3_20/petsc-3.20-deb/bin:/usr/local/cuda-12.2/bin:/local/home/iskander/.vscode-server/bin/05047486b6df5eb8d44b2ecd70ea3bdf775fd937/bin/remote-cli:/local/home/iskander/.local/bin:/local/home/iskander/software/petsc3_20/petsc-3.20-deb/bin:/usr/local/cuda-12.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/paraview/v5.10.0/bin
>  
> NVCC_WRAPPER_DEFAULT_COMPILER="/local/home/iskander/software/petsc3_20/petsc-3.20-deb/bin"/mpicxx
>  /local/home/iskander/software/petsc3_20/petsc-3.20-deb/bin/nvcc_wrapper 
> --expt-extended-lambda -ccbin 
> /local/home/iskander/software/petsc3_20/petsc-3.20-deb/bin/mpicxx -std=c++17 
> -Xcompiler -fPIC -Xcompiler -fvisibility=hidden -g -lineinfo -gencode 
> arch=compute_80,code=sm_80  
> -I/local/home/iskander/software/petsc3_20/petsc-3.20-deb/include  
> -I/local/home/iskander/software/petsc3_20/include 
> -I/local/home/iskander/software/petsc3_20/arch-linux-c-d
 ebug/inc
 lude -I/local/home/iskander/software/petsc3_20/petsc-3.20-deb/include 
-I/usr/local/cuda-12.2/include    -Wall -Wwrite-strings -Wno-strict-aliasing 
-Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-psabi -fstack-protector 
-fvisibility=hidden -march=znver2    
-L/local/home/iskander/software/petsc3_20/petsc-3.20-deb/lib -Wl,-rpath 
-Wl,/local/home/iskander/software/petsc3_20/petsc-3.20-deb/lib 
-Wl,--enable-new-dtags  -lmpi   ex55k.kokkos.cxx  
-Wl,-rpath,/local/home/iskander/software/petsc3_20/arch-linux-c-debug/lib 
-L/local/home/iskander/software/petsc3_20/arch-linux-c-debug/lib 
-Wl,-rpath,/local/home/iskander/software/petsc3_20/petsc-3.20-deb/lib 
-L/local/home/iskander/software/petsc3_20/petsc-3.20-deb/lib 
-Wl,-rpath,/opt/amd -L/opt/amd -Wl,-rpath,/usr/local/cuda-12.2/lib64 
-L/usr/local/cuda-12.2/lib64 -L/usr/local/cuda-12.2/lib64/stubs 
-Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11 
-lpetsc -ldmumps -lmumps_common -lpord -lpthread -lscalapack -lsu
 perlu_di
 st -lkokkoskernels -lkokkoscontainers -lkokkoscore -lkokkossimd -lflame -lblis 
-lptesmumps -lptscotchparmetisv3 -lptscotch -lptscotcherr -lesmumps -lscotch 
-lscotcherr -lparmetis -lmetis -lm -lcudart -lnvToolsExt -lcufft -lcublas 
-lcusparse -lcusolver -lcurand -lcuda -lX11 -lmpi_usempif08 
-lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lm -lgfortran -lm -lgcc_s 
-lquadmath -lstdc++ -lrt -o ex55k
> /usr/bin/ld: 
> /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o: in 
> function `_start':
> (.text+0x1b): undefined reference to `main'
> collect2: error: ld returned 1 exit status
> make: *** [/local/home/iskander/software/petsc3_20/lib/petsc/conf/rules:218: 
> ex55k] Error 1
> 
> 
> please let me know on how I can resolve a given error.
> 
> I also would be happy if you know more resources and examples on 
> implementation of PETSc with kokkos.
> 
> 
> 
> Have a nice day!
> 
> 
> 
> Regards,
> 
> Ibragimov Iskander, PhD student of
> 
> Johannes Gutenberg-Universität Mainz
> Institute of Geosciences
> J.-J.-Becher-Weg 21
> D-55128 Mainz
> Room: 03-264
> 
> 

Reply via email to