This is an old revision of the document!
Installation of CPPAW on MacOS
Someone should verify that this description is complete and correct. Then this fixme can be removed.
In 2020 Apple released the M1 chip with an ARM architecture which differs from the x86 used by Intel. Following this release, many programs, libraries and compilers needed to be adapted to run on the new architecture. Therefore, the guide is split into Intel and Apple Silicon used in Apple computers. Note, that the ecosystem around Apple Silicon is constantly evolving at the moment of writing these instructions.
Apple Silicon - ARM
Xcode
MacOS has the compiler “gfortran” and the libraries “LAPACK” and “BLAS” already installed as system libraries. Important is to install “Xcode” from the Appstore. (Sign the license after opening it from the application folder.)
Check if the “Xcode Command Line Tools” are installed on your system. You can check this guide on how to do it. The libraries BLAS
and LAPACK
are part of the Accelerate framework and are therefore already available on your machine.
Homebrew
Homebrew is a convenient package manager for software. If it is not already installed, please follow the instructions on the Homebrew website or in this installation guide. Note that the Homebrew default installation directory is now /opt/homebrew/
and not part of the default shell $PATH
(compared to usr/local
on Intel Macs). At the end of its installation Homebrew should show two commands to add it to $PATH
. Copy and paste them in the command line.
Homebrew should automatically manage and install dependencies of software packages. Installations might therefore take a while on a new machine, where many dependencies need to be installed.
Install GNU Compiler Collection containing gfortran
for ARM architecture:
brew install gcc
Install Message Passing Interface library for parallel computation:
brew install open-mpi
Install FFTW, a library for performing fast discrete Fourier transform:
brew install fftw --with-fortran
Install LibXC, a library for density functionals:
brew install libxc
Install Grace, a plotting tool used for data analysis. xquartz
provides support for X11 on MacOS:
brew install grace brew install --cask xquartz
CP-PAW
- Unpack the CP-PAW distribution into a directory, whose path will be called
$PAWDIR
in the following. - Add the directory
$PAWDIR/bin/osx_gfortran_accellerate
to your$PATH
variable in your ~/.zshrc.export PATH=$PATH:$PAWDIR/bin/osx_gfortran_accellerate
- Create a file "parms.osx_gfortran_accelerate" in
$PAWDIR
. - Execute in
$PAWDIR
autoconf configure --with-parmfile=parms.osx_gfortran_accelerate make all
autoconf
uses the file “configure.ac” to construct the “configure” file. You can skip this step, if a configure file is already present. After theconfigure
command, you should get some information that ends withdone!—configuration completed successfully!
. If not, inspect the error messages and fix them. Themake
command may take a very long time, if you set up the code for the first time. - Codesign: When you try to remotely execute unsigned code under macos, it will ask you for permission. This is painful when you run parallel code. Therefore it is advisable to sign the parallel executables. This is a fairly complicated procedure, which you need to look up. (
This section could be expanded.)
- Increase the stack size and the core-dump size by including the following commands in your
~/.zshrc
ulimit -s 65532 ulimit -c unlimited
- Restart your console or use
source ~/.zshrc
. - Check if the code is available by running
which paw_fast.x
.
Intel Silicon - x86
Xcode
MacOS has the compiler “gfortran” and the libraries “LAPACK” and “BLAS” already installed as system libraries. Important is to install “Xcode” from the Appstore. (Sign the license after opening it from the application folder.) Then install the “Command-Line tools” of Xcode. (Check the web for installation instructions).
Homebrew
I am installing Linux programs using homebrew. If you do not have it already, follow the installation instruction on its web page. Then install the following libraries.
brew install fftw --with-fortran brew install openmpi brew install grace
PAW
- Unpack the PAW distribution into a directory, which I will name PAWDIR in the following.
- add the directory PAWDIR/bin/osx_gfortran_accellerate to your PATH variable in your ~/.profile
- Create a file ''parms.osx_gfortran_accelerate'' in PAWDIR
- Check the values of the parameters FFTDIR, FFTHEADER, MPIDIR, and MPIDIR in “parms.osx_gfortran_accelerate”. Most likely, you will need to adjust the version numbers of the codes.
- execute in PAWDIR
autoconf configure --with-parmfile=parms.osx_gfortran_accelerate make all
“autoconf” uses the file “configure.ac” to construct the “configure” file. You can skip this step, if a configure file is already present. After the “configure” command, you should get some information that ends with
done!—configuration completed successfully!
. If not, inspect the error messages and fix them. The “make” command may take a very long time, if you set up the code for the first time. - Codesign: When you try to remotely execute unsigned code under macos, it will ask you for permission. This is painful when you run parallel code. Therefore it is advisable to sign the parallel executables. This is a fairly complicated procedure, which you need to look up. (
This section could be expanded.)
- Increase the stack size and the core-dump size by including the following commands in your
~/.profile
ulimit -s 65532 ulimit -c unlimited