<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi Satish, yes the -m64 flag tells the compilers the target cpu is intel 64. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
The only reason I'm trying to get PETSc working with intel is that the bundles for the software we release use Intel compilers for Linux, Mac and Windows (OneAPI intelMPI for linux and Windows, OpenMPI compiled with intel for MacOS). I'm just trying to get
 PETSc compiled with intel to maintain the scheme we have and keep these compilers, which would be handy if we are to release an alternative Poisson solver using PETSc in the future.
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
For our research projects I'm thinking we'll use gcc/openmpi in linux clusters.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Marcos<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Satish Balay <balay@mcs.anl.gov><br>
<b>Sent:</b> Monday, May 15, 2023 12:48 PM<br>
<b>To:</b> Vanella, Marcos (Fed) <marcos.vanella@nist.gov><br>
<b>Cc:</b> petsc-users <petsc-users@mcs.anl.gov><br>
<b>Subject:</b> Re: [petsc-users] Compiling PETSC with Intel OneAPI compilers and OpenMPI</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Ops - for some reason I assumed this build is on Mac M1. [likely due to the usage of '-m64' - that was strange]..<br>
<br>
But yeah - our general usage on Mac is with xcode/clang and brew gfortran (on both Intel and ARM CPUs) - and unless you need Intel compilers for specific needs - clang/gfortran should work better for this development work.<br>
<br>
Satish<br>
<br>
On Mon, 15 May 2023, Vanella, Marcos (Fed) via petsc-users wrote:<br>
<br>
> Hi Satish, well turns out this is not an M1 Mac, it is an older Intel Mac (2019).<br>
> I'm trying to get a local computer to do development and tests, but I also have access to linux clusters with GPU which we plan to go to next.<br>
> Thanks for the suggestion, I might also try compiling a gcc/gfortran version of the lib on this computer.<br>
> Marcos<br>
> ________________________________<br>
> From: Satish Balay <balay@mcs.anl.gov><br>
> Sent: Monday, May 15, 2023 12:10 PM<br>
> To: Vanella, Marcos (Fed) <marcos.vanella@nist.gov><br>
> Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov><br>
> Subject: Re: [petsc-users] Compiling PETSC with Intel OneAPI compilers and OpenMPI<br>
> <br>
> I see Intel compilers here are building x86_64 binaries - that get run on the Arm M1 CPU - perhaps there are issues here with this mode of usage..<br>
> <br>
> > I'm starting to work with PETSc. Our plan is to use the linear solver from PETSc for the Poisson equation on our numerical scheme and test this on a GPU cluster.<br>
> <br>
> What does intel compilers provide you for this use case?<br>
> <br>
> Why not use xcode/clang with gfortran here - i.e native ARM binaries?<br>
> <br>
> <br>
> Satish<br>
> <br>
> On Mon, 15 May 2023, Vanella, Marcos (Fed) via petsc-users wrote:<br>
> <br>
> > Hello, I'm trying to compile the PETSc library version 3.19.1 with OpenMPI 4.1.4 and the OneAPI 2022 Update 2 Intel Compiler suite on a Mac with OSX Ventura 13.3.1.<br>
> > I can compile PETSc in debug mode with this configure and make lines. I can run the PETSC tests, which seem fine.<br>
> > When I compile the library in optimized mode, either using -O3 or O1, for example configuring with:<br>
> ><br>
> > $ ./configure --prefix=/opt/petsc-oneapi22u3 --with-blaslapack-dir=/opt/intel/oneapi/mkl/2022.2.1 COPTFLAGS='-m64 -O1 -g -diag-disable=10441' CXXOPTFLAGS='-m64 -O1 -g -diag-disable=10441' FOPTFLAGS='-m64 -O1 -g' LDFLAGS='-m64' --with-debugging=0 --with-shared-libraries=0
 --download-make<br>
> ><br>
> > and using mpicc (icc), mpif90 (ifort) from  Open MPI, the static lib compiles. Yet, I see right off the bat this segfault error in the first PETSc example:<br>
> ><br>
> > $ make PETSC_DIR=/Users/mnv/Documents/Software/petsc-3.19.1 PETSC_ARCH=arch-darwin-c-opt test<br>
> > /Users/mnv/Documents/Software/petsc-3.19.1/arch-darwin-c-opt/bin/make --no-print-directory -f /Users/mnv/Documents/Software/petsc-3.19.1/gmakefile.test PETSC_ARCH=arch-darwin-c-opt PETSC_DIR=/Users/mnv/Documents/Software/petsc-3.19.1 test<br>
> > /opt/intel/oneapi/intelpython/latest/bin/python3 /Users/mnv/Documents/Software/petsc-3.19.1/config/gmakegentest.py --petsc-dir=/Users/mnv/Documents/Software/petsc-3.19.1 --petsc-arch=arch-darwin-c-opt --testdir=./arch-darwin-c-opt/tests<br>
> > Using MAKEFLAGS: --no-print-directory -- PETSC_ARCH=arch-darwin-c-opt PETSC_DIR=/Users/mnv/Documents/Software/petsc-3.19.1<br>
> >          CC arch-darwin-c-opt/tests/sys/classes/draw/tests/ex1.o<br>
> > In file included from /Users/mnv/Documents/Software/petsc-3.19.1/include/petscsys.h(44),<br>
> >                  from /Users/mnv/Documents/Software/petsc-3.19.1/src/sys/classes/draw/tests/ex1.c(4):<br>
> > /Users/mnv/Documents/Software/petsc-3.19.1/include/petscsystypes.h(68): warning #2621: attribute "warn_unused_result" does not apply here<br>
> >   PETSC_ERROR_CODE_TYPEDEF enum PETSC_ERROR_CODE_NODISCARD {<br>
> >                                 ^<br>
> ><br>
> >     CLINKER arch-darwin-c-opt/tests/sys/classes/draw/tests/ex1<br>
> >        TEST arch-darwin-c-opt/tests/counts/sys_classes_draw_tests-ex1_1.counts<br>
> > not ok sys_classes_draw_tests-ex1_1 # Error code: 139<br>
> > #     [excess:98681] *** Process received signal ***<br>
> > #     [excess:98681] Signal: Segmentation fault: 11 (11)<br>
> > #     [excess:98681] Signal code: Address not mapped (1)<br>
> > #     [excess:98681] Failing at address: 0x7f<br>
> > #     [excess:98681] *** End of error message ***<br>
> > #     --------------------------------------------------------------------------<br>
> > #     Primary job  terminated normally, but 1 process returned<br>
> > #     a non-zero exit code. Per user-direction, the job has been aborted.<br>
> > #     --------------------------------------------------------------------------<br>
> > #     --------------------------------------------------------------------------<br>
> > #     mpiexec noticed that process rank 0 with PID 0 on node excess exited on signal 11 (Segmentation fault: 11).<br>
> > #     --------------------------------------------------------------------------<br>
> >  ok sys_classes_draw_tests-ex1_1 # SKIP Command failed so no diff<br>
> ><br>
> > I see the same segfault error in all PETSc examples.<br>
> > Any help is mostly appreciated, I'm starting to work with PETSc. Our plan is to use the linear solver from PETSc for the Poisson equation on our numerical scheme and test this on a GPU cluster. So also, any guideline on how to interface PETSc with a fortran
 code and personal experience is also most appreciated!<br>
> ><br>
> > Marcos<br>
> ><br>
> ><br>
> ><br>
> ><br>
> <br>
</div>
</span></font></div>
</body>
</html>