Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2162 Discussions

Intel oneAPI HPC Toolkit with Mac on Intel processor

Sergei_Kliavinek
2,475 Views

Hello,

I'm trying to make the Docker image on the base of Intel HPC toolkit and run it on the Macbook with Intel Core i5 and MacOS (on the base of intel/oneapi-hpckit:2023.0.0-devel-ubuntu22.04)

and then use the MPI inside of this docker. In order to test it, I wrote simple Fortran program:

 

program mpi_hello
use mpi

integer :: rank, size, ierr

call MPI_INIT(ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)
print *, 'Hello, World! I am process', rank, 'of', size
call MPI_FINALIZE(ierr)
end program mpi_hello

And then compile it:

mpiifort mpi_hello.f90 -o mpi_hello

 

 

And run:

 

./mpi_hello

 

As a result, I've obtain the following error:

 

forrtl: severe (168): Program Exception - illegal instruction Image PC Routine Line Source
Image              PC                Routine            Line        Source
libc.so.6          00007F17CE933520  Unknown               Unknown  Unknown
libmpi.so.12.0.0   00007F17CF7EE77F  MPL_wtime_init        Unknown  Unknown
libmpi.so.12.0.0   00007F17CF7DDDFA  MPL_dbg_pre_init      Unknown  Unknown
libmpi.so.12.0.0   00007F17CF0A1315  Unknown               Unknown  Unknown
libmpi.so.12.0.0   00007F17CF0A0D1B  MPI_Init              Unknown  Unknown
libmpifort.so.12.  00007F17D06EC85B  PMPI_INIT             Unknown  Unknown
mpi_hello          00000000004041EE  Unknown               Unknown  Unknown
mpi_hello          000000000040419D  Unknown               Unknown  Unknown
libc.so.6          00007F17CE91AD90  Unknown               Unknown  Unknown
libc.so.6          00007F17CE91AE40  __libc_start_main     Unknown  Unknown
mpi_hello          00000000004040B5  Unknown               Unknown  Unknown

 

The same result was in the case of compilation of other codes with usage of MPI (Quantum Espresso, for example).

At the same time, the same program in the same Docker container works fine on any other computers (Mac with M2 or Windows with Intel). Could you tell me, what could be the reason for this error and how to solve it? In every case I've compiled container on the same laptop where I run it later.

 

Best,

Sergei

 

0 Kudos
12 Replies
RabiyaSK_Intel
Moderator
2,427 Views

Hi,


Thanks for posting in Intel Communities.


We have informed the concerned development team about your issue. We will get back to you soon.


Thanks & Regards,

Shaik Rabiya


0 Kudos
RabiyaSK_Intel
Moderator
2,402 Views

Hi,


>>>I'm trying to make the Docker image on the base of Intel HPC toolkit and run it on the Macbook with Intel Core i5 and MacOS (on the base of intel/oneapi-hpckit:2023.0.0-devel-ubuntu22.04)

Thank you for your patience. Could you please specify the hardware and CPU details of the machine where you are receiving the error?


Thanks & Regards,

Shaik Rabiya


0 Kudos
Sergei_Kliavinek
2,373 Views

Hi, 
I use the following machine:

MacBook Pro (Retina, 13-inch, Early 2015)

2.9 GHz Dual-Core Intel Core i5

16 GB 1867 MHz DDR3

Intel Iris Graphics 6100 1536 MB

macOS Monterey (12.6.3)

It's just one of the computers. In general, I've gotten the same error on three other Macbooks with Intel processors.

 

0 Kudos
RabiyaSK_Intel
Moderator
2,363 Views

Hi,

 

Thanks for providing details of the machine. Could you please provide the output of the "sysctl -a | grep machdep.cpu” command to retrieve the hardware specifications of your processor? Could you also please provide relevant hardware details for us to investigate further with your specifications?

 

Thanks & Regards,

Shaik Rabiya

 

0 Kudos
Sergei_Kliavinek
2,318 Views

Hey, sure, here we go

 

sysctl -a | grep machdep.cpu
machdep.cpu.tsc_ccc.numerator: 0
machdep.cpu.tsc_ccc.denominator: 0
machdep.cpu.mwait.linesize_min: 64
machdep.cpu.mwait.linesize_max: 64
machdep.cpu.mwait.extensions: 3
machdep.cpu.mwait.sub_Cstates: 286531872
machdep.cpu.thermal.sensor: 1
machdep.cpu.thermal.dynamic_acceleration: 1
machdep.cpu.thermal.invariant_APIC_timer: 1
machdep.cpu.thermal.thresholds: 2
machdep.cpu.thermal.ACNT_MCNT: 1
machdep.cpu.thermal.core_power_limits: 1
machdep.cpu.thermal.fine_grain_clock_mod: 1
machdep.cpu.thermal.package_thermal_intr: 1
machdep.cpu.thermal.hardware_feedback: 0
machdep.cpu.thermal.energy_policy: 1
machdep.cpu.xsave.extended_state: 7 832 832 0
machdep.cpu.xsave.extended_state1: 1 0 0 0
machdep.cpu.arch_perf.version: 3
machdep.cpu.arch_perf.number: 4
machdep.cpu.arch_perf.width: 48
machdep.cpu.arch_perf.events_number: 7
machdep.cpu.arch_perf.events: 0
machdep.cpu.arch_perf.fixed_number: 3
machdep.cpu.arch_perf.fixed_width: 48
machdep.cpu.cache.linesize: 64
machdep.cpu.cache.L2_associativity: 8
machdep.cpu.cache.size: 256
machdep.cpu.tlb.inst.large: 8
machdep.cpu.tlb.data.small: 64
machdep.cpu.tlb.data.small_level1: 64
machdep.cpu.address_bits.physical: 39
machdep.cpu.address_bits.virtual: 48
machdep.cpu.max_basic: 20
machdep.cpu.max_ext: 2147483656
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz
machdep.cpu.family: 6
machdep.cpu.model: 61
machdep.cpu.extmodel: 3
machdep.cpu.extfamily: 0
machdep.cpu.stepping: 4
machdep.cpu.feature_bits: 9221959987971750911
machdep.cpu.leaf7_feature_bits: 35399595 0
machdep.cpu.leaf7_feature_bits_edx: 2617247232
machdep.cpu.extfeature_bits: 1241984796928
machdep.cpu.signature: 198356
machdep.cpu.brand: 0
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
machdep.cpu.leaf7_features: RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 SMEP BMI2 ERMS INVPCID FPU_CSDS RDSEED ADX SMAP IPT MDCLEAR IBRS STIBP L1DF SSBD
machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT PREFETCHW RDTSCP TSCI
machdep.cpu.logical_per_package: 16
machdep.cpu.cores_per_package: 8
machdep.cpu.microcode_version: 47
machdep.cpu.processor_flag: 6
machdep.cpu.core_count: 2
machdep.cpu.thread_count: 4

 

About the hardware information - I don't know what other information might be useful to you. Write when you need some parameter - I will try to determine it immediately and write to you!

Best,
Sergei

 

0 Kudos
RabiyaSK_Intel
Moderator
2,273 Views

Hi,


The error may be due to a typical case where the hardware doesn't support an instruction in the code. The compiler might be trying to use newer instructions than supported on the hardware since it's being run in a new Ubuntu container i.e. 20.04 on a Macbook Pro. Could you downgrade the container OS to an older version of Ubuntu perhaps 18.04 and check if you can execute the code. 


>>>At the same time, the same program in the same Docker container works fine on any other computers (Mac with M2 or Windows with Intel)

If you are still facing the issue, could you please provide more reproducible instructions for building the docker container and running the application to produce the error along with the hardware details(along with "sysctl -a | grep machdep.cpu" command output) of the Mac with M2 and other computers where you are not facing issues and are also facing issues respectively?


Thanks & Regards,

Shaik Rabiya


0 Kudos
Sergei_Kliavinek
2,196 Views

Hey, sorry for the delay, 

I've tested downgraded version (Ubuntu 18.04), but error in the same. 

 

Here is the instructions for container building
Dockerfile

 

# Use Intel OneAPI HPC Toolkit as base image
FROM intel/oneapi-hpckit:2022.3.1-devel-ubuntu18.04

# Install of utilities and libraries
RUN apt-get update && apt-get install -y \
    build-essential \
    wget \
    unzip \
    libfftw3-dev \
    libblas-dev \
    liblapack-dev \
    vim

# Install of Git, OpenSSH, python, pip and make
RUN apt-get update && apt-get install -y git openssh-client make  python3-pip


# Source the OneAPI setvars script to make ifort available
RUN echo 'source /opt/intel/oneapi/setvars.sh' >> ~/.bashrc

 

Docker build

 

docker buildx build -f Dockerfile --no-cache --load dockerfile:dockerfile_mpi .

 

Run container interactively

 

docker run -it --rm dockerfile:dockerfile_mpi

 

Inside of the container, the steps from the fist message should be repeated.

 

About the specifications of computer, where the same steps leads to normal work


 

Macbook Pro 14-inch 2023
Apple M2 Max
64 GB
Ventura 13.5.1

 

 

Output of the 

 

sysctl -a | grep machdep.cpu

 

 

machdep.cpu.cores_per_package: 12
machdep.cpu.core_count: 12
machdep.cpu.logical_per_package: 12
machdep.cpu.thread_count: 12
machdep.cpu.brand_string: Apple M2 Max

 

 
0 Kudos
RabiyaSK_Intel
Moderator
2,153 Views

Hi,


Thanks for sharing the details. Has the entire output of "sysctl -a | grep machdep.cpu" been provided? We most importantly need the instruction sets supported by MacBook Pro 14 system given by "machdep.cpu.features" parameter provided by the above command. We are still investigating your issue. We have mentioned your findings to the concerned team. We will get back to you soon.


Thanks & Regards,

Shaik Rabiya


0 Kudos
Sergei_Kliavinek
2,141 Views

Hey, 

Yes, I listed the entire output, it was very short here. Thank you for your help, I'll look forward to hearing from you!

Best, 

Sergei

 

0 Kudos
RabiyaSK_Intel
Moderator
2,014 Views

Hi,


We extremely regret to inform you that Intel MPI Library only officially supports Windows and Linux but not MacOS. We also apologize that we don't officially support Docker containers as well. The applications run on Docker requires some amount of compatability with the base operating system. Hence, we suggest you to use Singularity containers for this use case as it acts more like a Virtual Machine. Please go through the below link provided for using Singularity containers with Intel MPI:

https://www.intel.com/content/www/us/en/docs/mpi-library/developer-guide-linux/2021-10/running-intel-mpi-library-in-containers.html


Singularity has Mac installation available but it is in beta. 


We deeply apologize for the trouble that has been caused to you. We appreciate your great patience when you provided us multiple details as we asked throughout the query. We truly regret that we can't inspect this thread any further as we don't support either MacOS or Docker officially. Could we go ahead and close this thread?


Thanks & Regards,

Shaik Rabiya


0 Kudos
Sergei_Kliavinek
1,997 Views

Hello, 

Very sad news, I didn't expect that support for such a major operating system might be missing for MPI Library. In that case, yes, the issue can be closed.
Thank you for giving an official answer.

Sergei

 

0 Kudos
RabiyaSK_Intel
Moderator
1,972 Views

Hi,


We extremely regret the inconvenience caused. We have informed the feedback to the concerned team. As per your confirmation, we are closing this thread. If you need any additional information, you can raise a new question in the communities as this thread will no longer be monitored by Intel.


Thanks & Regards,

Shaik Rabiya


0 Kudos
Reply