Get started
Install
Section titled “Install”-
Download the archive from our website. It is named like
muproPFSDK-<version>-Linux.tar.xz. -
Unpack it:
Terminal window tar -xJf muproPFSDK-<version>-Linux.tar.xz -
Move the contents where you want the SDK installed — your home directory is a fine choice:
Terminal window mv muproPFSDK-<version>-Linux/opt/mupro/phasefieldsdk ${HOME}/mupro
Build your main program
Section titled “Build your main program”The SDK is consumed through CMake. Each main program has its own documentation; in general the procedure is:
-
Create your own preset file:
Terminal window cp CMakePresets.json CMakeUserPresets.json -
Point the
mupro_ROOTcache variable inCMakeUserPresets.jsonat the directory you installed the SDK into. -
Configure and build.
Obtain a licence
Section titled “Obtain a licence”-
The first time you run a main program — more precisely, the first time it calls any SDK setup routine — it finds no licence file, collects your machine’s information, and writes a client file. Send that file to [email protected].
-
We reply with a
license.licfile. Put it where the main program can read it on its next run. -
On a cluster, your compute nodes must share a filesystem with the node you generated the client file on. Run the program once on that node first: the first run validates
license.licand writes the verification result into your home directory, and later runs rely on that.
Development environment
Section titled “Development environment”Operating system
Section titled “Operating system”The SDK is developed against Intel oneAPI, so a Linux machine with Intel processors is the supported environment for developing your main program. Intel publishes the hardware and system requirements for the oneAPI HPC Toolkit.
The supported platform. The SDK is developed and released on Linux with Intel oneAPI, and this is the only configuration we test scientific results against.
Use WSL and follow the Linux instructions. A native Windows build exists and is convenient during development, but it is not a supported configuration.
Development only, CPU only. Suitable for editing, small examples and smoke
checks with Homebrew gfortran, OpenBLAS, FFTW and OpenMPI. Production runs
and released builds stay on Intel oneAPI.
External dependencies
Section titled “External dependencies”You need three things installed:
- Intel oneAPI Base Toolkit
- Intel oneAPI HPC Toolkit
- CMake 3.20 or newer
For macOS development-only builds, install cmake, ninja, gcc, openblas,
fftw and open-mpi through Homebrew. FFTW is not bundled with the SDK.
Parallelism
Section titled “Parallelism”Parallelism is distributed, through MPI — we use the Intel MPI that ships with the oneAPI HPC Toolkit. There is no shared-memory parallelism.
Compiler
Section titled “Compiler”The Intel compilers from the oneAPI Base Toolkit. Recent oneAPI releases ship
ifx rather than ifort, and the SDK’s presets use ifx.
Editor
Section titled “Editor”We recommend Visual Studio Code with the Modern Fortran extension and
fortls installed.
Programming language
Section titled “Programming language”The SDK is written mainly in Fortran, and we strongly recommend Fortran for your main program too. C and C++ can interoperate with Fortran in principle, but we do not test that route, so it is at your own risk.
