[petsc-users] R: R: How to use Intel OneApi mpi wrappers on Linux

Paolo Lampitella paololampitella at hotmail.com
Thu Oct 6 05:46:52 CDT 2022


Hi Eric,

With the previous Intel version I was able to configure without mpi wrappers without problems.
Using the suggestion by Mark (CFLAGS, FFLAGS, CXXFLAGS) I managed to also use the mpi wrappers.

Unfortunately, as you seem to have noticed, things break down on Hypre and that loopopt. I have a lead on a possible solution
being to use Autoconf 2.7 or higher, but this is untested.

However, in an attempt to clarify the procedure better, I started from scratch and got trapped in the new intel version, which has now deprecated the classical C/C++ compiler, and passing “-diag-disable=10441” in the C/CXX FLAGS is not working for me.

So, as a matter of fact, I am stacked too and had to abandon the intel route for the moment

Paolo

Inviato da Posta<https://go.microsoft.com/fwlink/?LinkId=550986> per Windows

Da: Eric Chamberland<mailto:Eric.Chamberland at giref.ulaval.ca>
Inviato: giovedì 6 ottobre 2022 00:13
A: Paolo Lampitella<mailto:paololampitella at hotmail.com>; Barry Smith<mailto:bsmith at petsc.dev>
Cc: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>
Oggetto: Re: [petsc-users] R: How to use Intel OneApi mpi wrappers on Linux


Hi,

fwiw, I tried to compile with ipcx too, without mpi wrappers...

However, I had other problems... check here: https://gitlab.com/petsc/petsc/-/issues/1255<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.com%2Fpetsc%2Fpetsc%2F-%2Fissues%2F1255&data=05%7C01%7C%7C001a549b673247652d8608daa71ed334%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638006048085772663%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xo3a%2FbHSNREcbHH5q5hriSBOhGUE%2Bdo%2FFLZCXRBuHUI%3D&reserved=0>

Anyone have compiled PETSc with the latest Intel OneAPI release?

Can you give a working configure line?

Thanks,

Eric


On 2022-10-03 15:58, Paolo Lampitella wrote:
Hi Barry,

thanks for the suggestion. I tried this but doesn’t seem to work as expected. That is, configure actually works, but it is because it is not seeing the LLVM based compilers, only the intel classical ones. Yet the variables seem correctly exported.

Paolo


Da: Barry Smith<mailto:bsmith at petsc.dev>
Inviato: lunedì 3 ottobre 2022 15:19
A: Paolo Lampitella<mailto:paololampitella at hotmail.com>
Cc: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>
Oggetto: Re: [petsc-users] How to use Intel OneApi mpi wrappers on Linux


bsmith at petsc-01:~$ mpicc
This script invokes an appropriate specialized C MPI compiler driver.
The following ways (priority order) can be used for changing default
compiler name (gcc):
   1. Command line option:  -cc=<compiler_name>
   2. Environment variable: I_MPI_CC (current value '')
   3. Environment variable: MPICH_CC (current value '')



So
export I_MPI_CC=icx
export I_MPI_CXX=icpx
export I_MPI_FC=ifx

should do the trick.




On Oct 3, 2022, at 5:43 AM, Paolo Lampitella <paololampitella at hotmail.com<mailto:paololampitella at hotmail.com>> wrote:

Dear PETSc users and developers,

as per the title, I recently installed the base and HPC Intel OneApi toolkits on a machine running Ubuntu 20.04.

As you probably know, OneApi comes with the classical compilers (icc, icpc, ifort) and relative mpi wrappers (mpiicc, mpiicpc, mpiifort) as well as with the new LLVM based compilers (icx, icpx, ifx).

My experience so far with PETSc on Linux has been without troubles using both gcc compilers and either Mpich or OpenMPI and Intel classical compilers and MPI.

However, I have now troubles using the MPI wrappers of the new LLVM compilers as, in fact, there aren’t dedicated mpi wrappers for them. Instead, they can be used with certain flags for the classical wrappers:

mpiicc -cc=icx
mpiicpc -cxx=icpx
mpiifort -fc=ifx

The problem I have is that I have no idea how to pass them correctly to the configure and whatever comes after that.

Admittedly, I am just starting to use the new compilers, so I have no clue how I would use them in other projects as well.

I started with an alias in my .bash_aliases (which works for simple compilation tests from command line) but doesn’t with configure.

I also tried adding the flags to the COPTFLAGS, CXXOPTFLAGS and FOPTFLAGS but didn’t work as well.

Do you have any experience with the new Intel compilers and, in case, could you share hot to properly use them with MPI?

Thanks

Paolo



--

Eric Chamberland, ing., M. Ing

Professionnel de recherche

GIREF/Université Laval

(418) 656-2131 poste 41 22 42

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221006/fb3e2246/attachment-0001.html>


More information about the petsc-users mailing list