I think you should work under the assumption of cross-compile, because the target architecture for the OMPI compile should be x86 and not the local architecture. It’s been a while I haven’t cross-compile, but I heard Gilles is doing cross-compilation routinely, so he might be able to help.
George. On Fri, Apr 22, 2022 at 13:14 Jeff Squyres (jsquyres) via users < users@lists.open-mpi.org> wrote: > Can you send all the information listed under "For compile problems" > (please compress!): > > https://www.open-mpi.org/community/help/ > > -- > Jeff Squyres > jsquy...@cisco.com > > ________________________________________ > From: users <users-boun...@lists.open-mpi.org> on behalf of Cici Feng via > users <users@lists.open-mpi.org> > Sent: Friday, April 22, 2022 5:30 AM > To: Open MPI Users > Cc: Cici Feng > Subject: Re: [OMPI users] help with M1 chip macOS openMPI installation > > Hi George, > > Thanks so much with the tips and I have installed Rosetta in order for my > computer to run the Intel software. However, the same error appears as I > tried to make the file for the OMPI and here's how it looks: > > ../../../../opal/threads/thread_usage.h(163): warning #266: function > "opal_atomic_swap_ptr" declared implicitly > > OPAL_THREAD_DEFINE_ATOMIC_SWAP(void *, intptr_t, ptr) > > ^ > > > In file included from ../../../../opal/class/opal_object.h(126), > > from ../../../../opal/dss/dss_types.h(40), > > from ../../../../opal/dss/dss.h(32), > > from pmix3x_server_north.c(27): > > ../../../../opal/threads/thread_usage.h(163): warning #120: return value > type does not match the function type > > OPAL_THREAD_DEFINE_ATOMIC_SWAP(void *, intptr_t, ptr) > > ^ > > > pmix3x_server_north.c(157): warning #266: function "opal_atomic_rmb" > declared implicitly > > OPAL_ACQUIRE_OBJECT(opalcaddy); > > ^ > > > CCLD mca_pmix_pmix3x.la<http://mca_pmix_pmix3x.la> > > Making all in mca/pstat/test > > CCLD mca_pstat_test.la<http://mca_pstat_test.la> > > Making all in mca/rcache/grdma > > CCLD mca_rcache_grdma.la<http://mca_rcache_grdma.la> > > Making all in mca/reachable/weighted > > CCLD mca_reachable_weighted.la<http://mca_reachable_weighted.la> > > Making all in mca/shmem/mmap > > CCLD mca_shmem_mmap.la<http://mca_shmem_mmap.la> > > Making all in mca/shmem/posix > > CCLD mca_shmem_posix.la<http://mca_shmem_posix.la> > > Making all in mca/shmem/sysv > > CCLD mca_shmem_sysv.la<http://mca_shmem_sysv.la> > > Making all in tools/wrappers > > CCLD opal_wrapper > > Undefined symbols for architecture x86_64: > > "_opal_atomic_add_fetch_32", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_compare_exchange_strong_32", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_compare_exchange_strong_ptr", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_lock", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_lock_init", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_mb", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_rmb", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_sub_fetch_32", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_swap_32", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_swap_ptr", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_unlock", referenced from: > > import-atom in libopen-pal.dylib > > "_opal_atomic_wmb", referenced from: > > import-atom in libopen-pal.dylib > > ld: symbol(s) not found for architecture x86_64 > > make[2]: *** [opal_wrapper] Error 1 > > make[1]: *** [all-recursive] Error 1 > > make: *** [all-recursive] Error 1 > > > I am not sure if the ld part affects the making process or not. Either > way, error 1 appears as the "opal_wrapper" which I think has been the error > I kept encoutering. > > Is there any explanation to this specific error? > > ps. the configure command I used is as followed, provided by the official > website of MARE2DEM > > sudo ./configure --prefix=/opt/openmpi CC=icc CXX=icc F77=ifort FC=ifort \ > lt_prog_compiler_wl_FC='-Wl,'; > make all install > > Thanks again, > Cici > > On Thu, Apr 21, 2022 at 11:18 PM George Bosilca via users < > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>> wrote: > 1. I am not aware of any outstanding OMPI issues with the M1 chip that > would prevent OMPI from compiling and running efficiently in an M1-based > setup, assuming the compilation chain is working properly. > > 2. M1 supports x86 code via Rosetta, an app provided by Apple to ensure a > smooth transition from the Intel-based to the M1-based laptop's line. I do > recall running an OMPI compiled on my Intel laptop on my M1 laptop to test > the performance of the Rosetta binary translator. We even had some > discussions about this, on the mailing list (or github issues). > > 3. Based on your original message, and their webpage, MARE2DEM is not > supporting any other compilation chain than Intel. As explained above, that > might not be by itself a showstopper, because you can run x86 code on the > M1 chip, using Rosetta. However, MARE2DEM relies on MKL, the Intel Math > Library, and that library will not run on a M1 chip. > > George. > > > On Thu, Apr 21, 2022 at 7:02 AM Jeff Squyres (jsquyres) via users < > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>> wrote: > A little more color on Gilles' answer: I believe that we had some Open MPI > community members work on adding M1 support to Open MPI, but Gilles is > absolutely correct: the underlying compiler has to support the M1, or you > won't get anywhere. > > -- > Jeff Squyres > jsquy...@cisco.com<mailto:jsquy...@cisco.com> > > ________________________________________ > From: users <users-boun...@lists.open-mpi.org<mailto: > users-boun...@lists.open-mpi.org>> on behalf of Cici Feng via users < > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>> > Sent: Thursday, April 21, 2022 6:11 AM > To: Open MPI Users > Cc: Cici Feng > Subject: Re: [OMPI users] help with M1 chip macOS openMPI installation > > Gilles, > > Thank you so much for the quick response! > openMPI installed by brew is compiled on gcc and gfortran using the > original compilers by Apple. Now I haven't figured out how to use this gcc > openMPI for the inversion software :( > Given by your answer, I think I'll pause for now with the M1-intel > compilers-openMPI route and switch to an intel cluster until someone > figured out the M1 chip problem ~ > > Thanks again for your help! > Cici > > On Thu, Apr 21, 2022 at 5:59 PM Gilles Gouaillardet via users < > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org><mailto: > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>>> wrote: > Cici, > > I do not think the Intel C compiler is able to generate native code for > the M1 (aarch64). > The best case scenario is it would generate code for x86_64 and then > Rosetta would be used to translate it to aarch64 code, > and this is a very downgraded solution. > > So if you really want to stick to the Intel compiler, I strongly encourage > you to run on Intel/AMD processors. > Otherwise, use a native compiler for aarch64, and in this case, brew is > not a bad option. > > > Cheers, > > Gilles > > On Thu, Apr 21, 2022 at 6:36 PM Cici Feng via users < > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org><mailto: > users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>>> wrote: > Hi there, > > I am trying to install an electromagnetic inversion software (MARE2DEM) of > which the intel C compilers and open-MPI are considered as the > prerequisite. However, since I am completely new to computer science and > coding, together with some of the technical issues of the computer I am > building all this on, I have encountered some questions with the whole > process. > > The computer I am working on is a macbook pro with a M1 Max chip. Despite > how my friends have discouraged me to keep working on my M1 laptop, I still > want to reach out to the developers since I feel like you guys might have a > solution. > > By downloading the source code of openMPI on the .org website and "sudo > configure and make all install", I was not able to install the openMPI onto > my computer. The error provided mentioned something about the chip is not > supported or somewhat. > > I have also tried to install openMPI through homebrew using the command > "brew install openmpi" and it worked just fine. However, since Homebrew has > automatically set up the configuration of openMPI (it uses gcc and > gfortran), I was not able to use my intel compilers to build openMPI which > causes further problems in the installation of my inversion software. > > In conclusion, I think right now the M1 chip is the biggest problem of the > whole installation process yet I think you guys might have some solution > for the installation. I would assume that Apple is switching all of its > chip to M1 which makes the shifts and changes inevitable. > > I would really like to hear from you with the solution of installing > openMPI on a M1-chip macbook and I would like to thank for your time to > read my prolong email. > > Thank you very much. > Sincerely, > > Cici > > > > > >