dealii / candi

candi - (Compile & Install) - Downloads, configures, builds and installs deal.II
GNU Lesser General Public License v3.0
61 stars 61 forks source link

Testing of candi in apple m1 with arm64 for v9.3 version dealii source building #196

Open jiaqiwang969 opened 3 years ago

jiaqiwang969 commented 3 years ago

In my mac environment with big sur arm64 arch.

cmake version 3.20.4 gfortran --version GNU Fortran (Homebrew GCC 11.1.0_1) 11.1.0

Fix some errors in the middle:

~ % ls deal.ii-candi configuration oce-OCE-0.18.2 petsc-3.14.0 trilinos-release-12-18-1 deal.II-v9.3.0 p4est-2.2 slepc-3.14.0 hdf5-1.10.7 parmetis-4.0.3 tmp

Its success to build in apple m1 with candi. Hope it works smoother~

Thanks

tjhei commented 3 years ago

Thank you for the feedback. We will be testing on an M1 Mac soon and it should get easier then. I will use your instructions to get started.

koecher commented 3 years ago

I really like your findings @jiaqiwang969 . Thank you very much for this feedback. Unfortunately I don't have access to an apple machine having a m1/arm architecture to test something, currently or in the near future, respectively.

jiaqiwang969 commented 3 years ago

Hello, sir. I try to use self-hosted CI to make my statement more clear for arm64 dealii building.

A similar bug of "Could NOT find MPI" ref to https://github.com/dealii/dealii/issues/5510 occurs. But here in arm64 m1. Actually, mpi.h is in "/opt/homebrew/Cellar/open-mpi/4.1.1_2/include". It works fine--mpi could be found when in local building. I am not sure how to deal with it with some no-use trials. Could u help me? More detail could ref to https://github.com/jiaqiwang969/dealii-candi-test/runs/2892920992

@tjhei @koecher

tjhei commented 3 years ago

Difficult to identify without access to the machine. A first step would be to look at CMakeError.log to see what is going on.

I will have access to an M1 MAC in the next few weeks and I will tackle this then.

koecher commented 3 years ago

@jiaqiwang969 same for me, I won't have access to a M1 machine in the near future unfortunately.

As you reported that the mpi.h file can be found in the include dir, can you set up the following:

export                  MPI_BIN         /usr/lib64/openmpi/bin
export                  MPI_INCLUDE     /usr/include/openmpi-x86_64
export                  MPI_LIB         /usr/lib64/openmpi/lib
export                  MPI_HOME        /usr/lib64/openmpi

with the corresponding directories of your machine before running candi. Please remove any temporary build files before the next run.

jiaqiwang969 commented 3 years ago

@jiaqiwang969 same for me, I won't have access to a M1 machine in the near future unfortunately.

As you reported that the mpi.h file can be found in the include dir, can you set up the following:

export                  MPI_BIN         /usr/lib64/openmpi/bin
export                  MPI_INCLUDE     /usr/include/openmpi-x86_64
export                  MPI_LIB         /usr/lib64/openmpi/lib
export                  MPI_HOME        /usr/lib64/openmpi

with the corresponding directories of your machine before running candi. Please remove any temporary build files before the next run.

nope, I have tried, it not works. Thanks.

tjhei commented 3 years ago

I have had success on my new M1 MAC when using gcc:

export OMPI_FC=gfortran-11;export OMPI_CC=gcc-11;export OMPI_CXX=g++-11

I created pull requests for some minor fixes: #248 #247

tjhei commented 3 years ago

I have not tested all packages so far (just p4est, trilinos, deal.II). So let's keep this open for now.

tjhei commented 2 years ago

I did some more testing and learned the following: