Hi Satish and Barry,

Thank you very for getting back to me with the suggestion of the 
OMP_NUM_THREADS  environmental variable and how to set the option  
no_signal_handler per Barry's suggestion. 

Yes, I am using threaded Intel MKL. So, I first set the environmental variable  
OMP_NUM_THREADS=1, and run the Visual Studio debugger. It still crashes at the 
same place with the same errors. I then set the 
PETSC_OPTIONS=-no_signal_handler, the debugger refuses to pass through the 
access exception, and I have to stop the debugger; consequently no PETSc errors 
were reported. I know there is an option somewhere in the VS debugger to bypass 
this access exception, but I didn't pursue further.

Finally, I removed Intel MKL 2000 (to uninstall it requires a 3rd party 
software!), and use Intel oneAPI MKL (2023) with PETSc 3.18.6 and Visual Studio 
2022. Now my code with 1, 2  or 4 cores work! 

I will try 3.19.4 next and will keep you posted. 

Thank you again for your help,
Thuc Bui

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
./configure --with-cc='win32fe cl' --with-fc=0 --with-cxx='win32fe cl' 
--with-openmp \
--with-mpi-include='/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/MSMPI/latest/include:/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/MSMPI/latest/include/x64'
 \
--with-mpi-lib=[/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/MSMPI/latest/Lib/x64/msmpi.lib,/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/MSMPI/latest/Lib/x64/msmpifec.lib]
 \
--with-blas-lapack-lib=[/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/IntelMKL/latest/lib64/mkl_intel_lp64.lib,/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/IntelMKL/latest/lib64/mkl_core.lib,/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/IntelMKL/latest/lib64/mkl_intel_thread.lib,/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/IntelMKL/latest/lib64/mkl_rt.lib,/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/IntelMKL/latest/lib64/libiomp5md.lib]
 \
--with-mpiexec='/cygdrive/d/Users/bbwannabe/Documents/Petsc/externalpackages/MSMPI/latest/bin/x64/mpiexec'
 \
--with-shared-libraries=0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

-----Original Message-----
From: Satish Balay [mailto:ba...@mcs.anl.gov] 
Sent: Tuesday, September 19, 2023 10:01 AM
To: Thuc Bui
Cc: 'Barry Smith'; 'PETSc users list'
Subject: Re: [petsc-users] Problem with BLASdot in 3.19.4

Its a run time option to petsc (application) binary.

So you can either specify it via command line - at run time - or add it to env 
variable "PETSC_OPTIONS" - or add it to $HOME/.petscrc file

Satish


On Tue, 19 Sep 2023, Thuc Bui wrote:

> Hi Barry,
> 
>  
> 
> Thanks for getting back to me. The diagnostics were generated when tracing 
> under the VS debugger. To use the option –no_signal_handler, I believe I will 
> need to reconfigure PETSc with this additional option. I will try it now.
> 
>  
> 
> Thuc
> 
>  
> 
>  
> 
> From: Barry Smith [mailto:bsm...@petsc.dev] 
> Sent: Tuesday, September 19, 2023 8:24 AM
> To: Thuc Bui
> Cc: PETSc users list
> Subject: Re: [petsc-users] Problem with BLASdot in 3.19.4
> 
>  
> 
>  
> 
>   Can you run in the Microsoft Visual Studio debugger? Use the additional 
> PETSc option -no_signal_handler
> 
>  
> 
>  
> 
>   It won't show exactly where the SEGV happens but might focus in a bit on 
> it. For example it may be ddot() or ddot_().
> 
>  
> 
>   Barry
> 
>  
> 
>  
> 
> 
> 
> 
> 
> On Sep 19, 2023, at 2:04 AM, Thuc Bui <b...@calcreek.com> wrote:
> 
>  
> 
> Hi Barry,
> 
>  
> 
> Visual Studio 2022 is the problem! The code linked to Petsc 3.18.6 built with 
> VS 2022 also crashes at the same place. The same errors are shown below. I 
> don’t remember for sure, but I don’t think I was able to configure Petsc 
> 3.19.4 with VS 2019. However, I will still try that next.
> 
>  
> 
> Thanks for your help,
> 
> Thuc
> 
>  
> 
> [0]PETSC ERROR: 
> ------------------------------------------------------------------------
> 
> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, 
> probably memory access out of range
> 
> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
> 
> [0]PETSC ERROR: or see  <https://petsc.org/release/faq/#valgrind> 
> https://petsc.org/release/faq/#valgrind and  <https://petsc.org/release/faq/> 
> https://petsc.org/release/faq/
> 
> [0]PETSC ERROR: ---------------------  Stack Frames 
> ------------------------------------
> 
> [0]PETSC ERROR: The line numbers in the error traceback are not always exact.
> 
> [0]PETSC ERROR: #1 BLASdot()
> 
> [0]PETSC ERROR: #2 VecNorm_Seq() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\vec\vec\impls\seq\bvec2.c:216
> 
> [0]PETSC ERROR: #3 VecNorm() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\vec\vec\interface\rvector.c:237
> 
> [0]PETSC ERROR: #4 VecNormalize() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\vec\vec\interface\rvector.c:318
> 
> [0]PETSC ERROR: #5 KSPGMRESCycle() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\ksp\ksp\impls\gmres\gmres.c:111
> 
> [0]PETSC ERROR: #6 KSPSolve_GMRES() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\ksp\ksp\impls\gmres\gmres.c:228
> 
> [0]PETSC ERROR: #7 KSPSolve_Private() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\ksp\ksp\interface\itfunc.c:899
> 
> [0]PETSC ERROR: #8 KSPSolve() at 
> D:\Users\bbwannabe\Documents\Petsc\petsc-3.18.6\src\ksp\ksp\interface\itfunc.c:1071
> 
>  
> 
> job aborted:
> 
> [ranks] message
> 
>  
> 
> [0] application aborted
> 
> aborting MPI_COMM_WORLD (comm=0x44000000), error 59, comm rank 0
> 
>  
> 
>  
> 
>  
> 
> From: petsc-users [ <mailto:petsc-users-boun...@mcs.anl.gov> 
> mailto:petsc-users-boun...@mcs.anl.gov] On Behalf Of Thuc Bui
> Sent: Monday, September 18, 2023 4:24 PM
> To: 'Barry Smith'
> Cc: 'PETSc users list'
> Subject: Re: [petsc-users] Problem with BLASdot in 3.19.4
> 
>  
> 
> Thanks a lot Barry, for getting back to me. Will do what you have suggested, 
> and get back with the results.
> 
>  
> 
> Best regards,
> 
> Thuc
> 
>  
> 
> From: Barry Smith [ <mailto:bsm...@petsc.dev> mailto:bsm...@petsc.dev] 
> Sent: Monday, September 18, 2023 3:43 PM
> To: Thuc Bui
> Cc: PETSc users list
> Subject: Re: [petsc-users] Problem with BLASdot in 3.19.4
> 
>  
> 
>  
> 
>   Ok, two things are being changed at the same time: the version  of PETSc 
> and the version of Visual Studio. 
> 
>  
> 
>   Could you please try with the new Visual Studio version but the same older 
> PETSc version? If that works could you try with the old Visual Studio version 
> but the new PETSc version? 
> 
>  
> 
>   Barry
> 
>  
> 
>  
> 
>  
> 
> On Sep 18, 2023, at 6:26 PM, Thuc Bui < <mailto:b...@calcreek.com> 
> b...@calcreek.com> wrote:
> 
>  
> 
> Dear Petsc users and experts,
> 
>  
> 
> If someone can direct me how to track this bug, I would really appreciate it.
> 
>  
> 
> The Petsc DLL library version 3.19.4 was built on Windows 10 with Visual 
> Studio 2022, and with Microsoft MPI 10.1.2 and Intel MKL 2020.3.279. The same 
> code works fine with Petsc 3.18.6 using the same versions of MS MPI and Intel 
> MKL, and built with Visual Studio 2019.
> 
>  
> 
> When my code calls PetscCall(KSPSolve(...)), it gets to 
> PetscCall(KSPGMRESCycle(...)), PetscCall(VecNormalize(VEC_VV(0), &res)), 
> PetscCall(VecNorm(x, NORM_2, &norm)) and then crashes in VecNorm_Seq() at:
> 
>  
> 
>                 PetscCallBLAS("BLASdot", ztmp[type == NORM_1_AND_2] = 
> PetscSqrtReal(PetscRealPart(BLASdot_(&bn, xx, &one, xx, &one))));
> 
>  
> 
> I tried to step into BLASdot_, but was unable to. I assume BLASdot_ belong to 
> Intel MKL, and its library does not contain debug information. After the code 
> exits, the errors are shown below the hash line.
> 
>  
> 
> Should I install the latest Intel MKL to work with Petsc 3.19.4?
> 
>  
> 
> Many thanks in advance for your help,
> 
> Thuc Bui
> 
> Senior R&D Engineer
> 
> Calabazas Creek Research, Inc
> 
> (650) 948-5361
> 
>  
> 
>  
> 
> ###############################################
> 
>  
> 
> [0]PETSC ERROR: 
> ------------------------------------------------------------------------
> 
> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, 
> probably memory access out of range
> 
> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
> 
> [0]PETSC ERROR: or see  <https://petsc.org/release/faq/#valgrind> 
> https://petsc.org/release/faq/#valgrind and  <https://petsc.org/release/faq/> 
> https://petsc.org/release/faq/
> 
> [0]PETSC ERROR: ---------------------  Stack Frames 
> ------------------------------------
> 
> [0]PETSC ERROR: The line numbers in the error traceback are not always exact.
> 
> [0]PETSC ERROR: #1 BLASdot()
> 
> [0]PETSC ERROR: #2 VecNorm_Seq() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\vec\vec\impls\seq\bvec2.c:213
> 
> [0]PETSC ERROR: #3 VecNorm() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\vec\vec\interface\rvector.c:237
> 
> [0]PETSC ERROR: #4 VecNormalize() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\vec\vec\interface\rvector.c:318
> 
> [0]PETSC ERROR: #5 KSPGMRESCycle() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\ksp\ksp\impls\gmres\gmres.c:110
> 
> [0]PETSC ERROR: #6 KSPSolve_GMRES() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\ksp\ksp\impls\gmres\gmres.c:227
> 
> [0]PETSC ERROR: #7 KSPSolve_Private() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\ksp\ksp\interface\itfunc.c:898
> 
> [0]PETSC ERROR: #8 KSPSolve() at 
> D:\Users\bbwannabe\Documents\Petsc\latest\src\ksp\ksp\interface\itfunc.c:1070
> 
>  
> 
> job aborted:
> 
> [ranks] message
> 
>  
> 
> [0] application aborted
> 
> aborting MPI_COMM_WORLD (comm=0x44000000), error 59, comm rank 0
> 
>  
> 
> 

Reply via email to