- The initial remark about -openmp should be self-explanatory. Because of the confusion with -o we have created an alternate option -qopenmp we suggest you use instead. The remaining errors suggest coding errors in the application where arguments passed to procedures don't follow the language rules for how they should match in 'type, kind.
- The application programming interface (API) OpenMP (Open Multi-Processing) supports multi-platform shared-memory multiprocessing programming in C, C, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, HP-UX, Linux, macOS, and Windows.It consists of a set of compiler directives, library routines, and environment variables that.
I am using Mac OS X Sierra, and I found that clang (LLVM version 8.1.0 (clang-802.0.38)) does not support OpenMP: when I run clang -fopenmp programname.c, I got the following error: clang: error: unsupported option '-fopenmp' It seems that clang does not support -fopenmp flag. I could not find any openmp library in homebrew.
For those impatient, skip to how to enable OpenMP in packages.
OpenMP support in Xcode
Apple has explicitly disabled OpenMP support in compilers that they ship in Xcode: even though clang had OpenMP support for quite a long time now (great thanks to the folks at Intel providing their library as open source!). In fact, the clang compiler in Xcode can generate all the necessary code for OpenMP. It can be tricked into performing its designed function by using -Xclang -fopenmp flags.
The unfortunate part about this is that Apple is not shipping the necesssary libomp.dylib run-time library needed for OpenMP support. To make things worse, the version of the library you need depends on the clang version used, which Apple obfuscates so that it's non-trivial to reverse-engineer it. Fortunately, some clever folks were able to find the traces in Apple's released source so we can build the binaries that correspond to the clang version used. It is sometimes possible to use a more recent version of the runtime than the version of Apple clang.
OpenMP run-time downloads
The follwing are links to libomp OpenMP run-time built from official LLVM release sources using Xcode compilers. They are signed and support macOS 10.13 (High Sierra) and higher. All tar-balls contain the system tree usr/local/lib and usr/local/include so the recommended installation is: The contained set of files is the same in all tar balls: so you can simply remove those to uninstall. Note that any package you compile against libomp.dylib will need that run-time so you have to ship it with your package or have users install it.Build | Download | SHA1 checksum |
---|---|---|
LLVM 10.0.0 Xcode 12+ | openmp-10.0.0-darwin17-Release.tar.gz (Release) openmp-10.0.0-darwin17-Debug.tar.gz (Debug) | 9bf16a64ab747528c5de7005a1ea1a9e318b3cf0 d4508d3f0c2952c3f984393b088e0b4beab33b58 |
LLVM 9.0.1 Xcode 11.4 and up (Apple clang 1103.x) | openmp-9.0.1-darwin17-Release.tar.gz (Release) openmp-9.0.1-darwin17-Debug.tar.gz (Debug) | e5bd8501a3f957b4babe27b0a266d4fa15dbc23f c4c8491631504fb060f7c25ec14324d02d617d5b |
LLVM 8.0.1 Xcode 11.0-11.3.1 (Apple clang 1100.x) | openmp-8.0.1-darwin17-Release.tar.gz (Release) openmp-8.0.1-darwin17-Debug.tar.gz (Debug) | e4612bfcb1bf520bf22844f7db764cadb7577c28 d6c83918b28405d43950d4b864ca8d1687eed4d1 |
LLVM 7.1.0 Xcode 10.2-10.3 (Apple clang 1001.x) | openmp-7.1.0-darwin17-Release.tar.gz (Release) openmp-7.1.0-darwin17-Debug.tar.gz (Debug) | 6891ff6f83f2ed83eeed42160de819b50cf643cd 34456adde62b9a1047f906e1d7f54990a1c15a34 |
How to enable OpenMP in packages
- Download the libomp run-time corresponding to the Xcode version you use from the links above
- add -Xclang -fopenmp to CPPFLAGS, add -lomp to LIBS
Openmp For Mac Download
~/.R/MakevarsOpenmp Mac Brew
: but be very careful when doing this, always check your ~/.R/Makevars whenever you upgrade R, macOS or Xcode.Side notes
It may be possible in principle to build static version of the run-time. That can be done via -DLIBOMP_ENABLE_SHARED=OFF, but has not been tested. There is a potential for chaos when more OMP run-times get loaded into one process. Another interesting test would be to try -DLIBOMP_FORTRAN_MODULES=ON and see which versions are compatible with the GNU Fortran used in R. We are intentionally removing the gomp symlink from the binary so thatFopenmp Mac
iomp and gomp don't conflict.License and sources
All sources were obtained directly from the LLVM releases and copies are also available in the src directory (including the build script). See LICENSE.txt in the sources for the corresponding license and https://openmp.llvm.org/ for details on the OpenMP run-time.Acknowledgements
Thanks to John Clayden, Kevin Ushey and others who contributed to the discussion and testing.Trademark notices
- The OpenMP name and the OpenMP logo are registered trademarks of the OpenMP Architecture Review Board.
- Intel is a trademark of Intel Corporation in the U.S. and/or other countries.
- Apple, Xcode and macOS are trademarks of Apple Inc., registered in the U.S. and other countries.
Last modified on 2020/05/01 by Simon Urbanek
If you'd like to use your Apple Mac with OS X for some numerical computation, this site could be useful to you. Most of these packages have been compiled/tested on several version of OS X and XCode Tools. Feel free to contact me with questions or problems!
Computation Tools :: C/Fortran
GCC 4, 5, 7, 8, 9 (auto-vectorizing gcc with OpenMP):
Compiled using source code from the GNU servers. This contains current versions (8.3 is the stable release) of gfortran (free, open source, GNU Fortran 95 compiler), gcc (GNU C) and g++ (GNU C++) compilers that can perform auto-vectorization (i.e. modify code to take advantage of AltiVec/SSE, automatically) and other sophisticated optimizations like OpenMP. For more information, see this webpage. Download my binaries, and cd to the download folder. Then gunzip gcc-9.2-bin.tar.gz (if your browser didn't do so already) and then sudo tar -xvf gcc-9.2-bin.tar -C /. It installs everything in /usr/local. You can invoke the Fortran 95 compiler by simply typing gfortran. You will also need to have Apple's XCode Tools installed from the Mac App Store. With XCode 4 or better you will need to download the command-line tools as an additional step. You will find the option to download the command-line tools in XCode's Preferences. On 10.9 Mavericks or higher, you can get the command-line tools by simply typing xcode-select --install. And on Catalina, you may have to specifify an additional include path -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include for the compiler to find the system headers.
Binaries:
gcc-9.2-bin.tar.gz,gfortran-9.2-bin.tar.gz (gfortran only), updated Oct 2019 (Catalina).
gcc-8.3-bin.tar.gz,gfortran-8.3-bin.tar.gz (gfortran only), updated April 2019 (Mojave & Catalina).
gcc-8.1-bin.tar.gz,gfortran-8.1-bin.tar.gz (gfortran only), updated June 2018 (High Sierra & Mojave).
gcc-7.3-bin.tar.gz,gfortran-7.3-bin.tar.gz (gfortran only), updated June 2018 (High Sierra).
gcc-7.1-bin.tar.gz,gfortran-7.1-bin.tar.gz (gfortran only), updated June 2017 (El Capitan & Sierra).
gcc-5.1-bin.tar.gz,gfortran-5.1-bin.tar.gz (gfortran only), updated June 2015 (Yosemite & El Capitan).
gcc-4.9-bin.tar.gz,gfortran-4.9-bin.tar.gz (gfortran only), updated Nov 2014 (Mavericks & Yosemite).
gcc-4.8-bin.tar.gz,gfortran-4.8-bin.tar.gz (gfortran only), updated Oct 2013 (M. Lion & Mavericks).
gcc-4.7-bin.tar.gz,gfortran-4.7-bin.tar.gz (gfortran only), updated July 2012 (Lion & M. Lion).
Documentation: click here!
g77 3.4 :
This is the FINAL release of g77 (version 3.4 compiler). Future versions of GCC will have gfortran (see above). Download my binaries, and cd to the download folder. Then gunzip g77-bin.tar.gz (if your browser didn't do so already) and sudo tar -xvf g77-bin.tar -C /. It installs everything in /usr/local. You will need to have Apple's Developer Tools installed. They are included on the retail DVD version of OS X and also available as a free download from Apple's Developer Site. Please install the most current version of Developer Tools. Thanks to James Wookey for the Intel Mac version of g77.
Binaries: g77-bin.tar.gz (PowerPC only), g77-intel-bin.tar.gz (Intel Mac only), updated October 2006.
Documentation: click here!
F2Cbased Fortran:
This is the oldest Fortran compiler available for OS X. Its beenaround since OS X was in a public beta state. Download this shellscript: buildf2c, type chmod +xbuildf2c and then sudo ./buildf2c. The script will grabf2c source from Netlib repositories and install a f2c basedcompiler in /usr/local/. You aredone! The compiler can be envoked by the commands fc orf2c.
Install script: buildf2c
Documentation: click here!
Computation Tools :: Octave
Octave:
Octave is an open source, Matlab-like numerical analysis software package that is very popular among scientists and engineers. The good folks over at Octave-Forge provide an OS X style Octave application, with drag and drop installation! I recommend their binaries (links below).
Source: Octave
Binaries: Octave application, updated May 2011.
Documentation: clickhere!
Computation Tools :: Cactus, RNPL, etc.
Einstein Toolkit:
The Einstein Toolkit is an open-source software framework specifically targeted to the research area of numerical relativity and astrophysics. The broad aim of the toolkit is to provide the core computational tools that enable scientific research in this area, and take advantage of emerging petascale computers and advanced cyberinfrastructure.The Einstein Toolkit compiles and runs great on Mac OS X. A critical component of this toolkit is the Cactus Computing Toolkit (see below).
Source: clickhere!
Documentation: clickhere!
CactusCode (Numerical Computing Toolkit):
Cactus is an open source problem solving environment designed forscientists and engineers. Its modular structure ('thorns') easilyenables parallel computation across different architectures andcollaborative code development between different groups. It ismainly used for solving complicated PDE's. It highly portable, andhas some really remarkable features like observing and even'controlling' or 'steering' a running simulation using an ordinaryweb browser! Here is a link to a perpetual demo running at LSU Cactus Demo. Check it out!Cactus compiles and runs great on Mac OS X.
Source: clickhere!
Documentation: clickhere!
RNPL (Rapid Numerical Prototyping Language):
This is a great tool that takes as input details about the form ofan equation (usually a partial differential equation), and someparameters .. and then spits out a C or FORTRAN Code that solvesthe equation numerically using established iterative numericaltechniques. RNPL can also be used for producing skeleton programsand for converting existing programs. Download the source, compileand install. This source has been modified to compile with OS X. Orget my binary distribution. You probably want to install this in/usr/local, to do so gunzip rnpl-bin.tar.gz (if your browser didn't do so already) and then sudo tar -xvf rnpl-bin.tar -C / and you are done! You will need to use the F77 flag: -fno-second-underscore, for RNPL generated F77 codes to compile properly.
Source: rnpl.tar.gz
Binaries: rnpl-bin.tar.gz, updated 2003.
Documentation: click here!
Computation Tools :: Other Miscellaneous
Openmp Mac Gcc
The GRAVSIM Package:
GRAVSIM is a package that contains an ever evolving and hopefully growing set of gravitational N body solvers. These solvers attempt to track the motion of a set of bodies moving under the influence of gravity. They are used in many areas of astrophysical study including planetary motion, star cluster formation and stability and galactic formation, stability and interactions (i.e. colliding galaxies). This package is highly AltiVec and DP optimized!
Source and Binaries: click here!
Documentation: click here!
Openmp Mac Cmake
Xmgr Grace:
This is a very easy to use, open-source, X11 based, plotting tool. I used it during my graduate school days and still love it. Its excellent especially for students and free! Note: I didnot create this binary, but I have tested it on both Intel and PPC Macs. It works very well. Move the Grace application to the system /Applications folder for it to function correctly.By the way, if you are looking for a nice, easy to use, 2D and 3D,plotting package for OS X, try pro Fit. It works great. They have a free trial version, that is not time-limited and is full-featured. It just has some restrictions on the volume of data you can make it handle. Even the full version is very inexpensive.
Binaries: Grace (PowerPC only), Grace, updated Aug 2014.
Documentation: click here!