The PDI source distribution includes:
To download the sources, have a look at the list of all releases at https://gitlab.maisondelasimulation.fr/pdidev/pdi/-/releases
For example, release 1.7.1 can be downloaded from https://gitlab.maisondelasimulation.fr/pdidev/pdi/-/archive/1.7.1/pdi-1.7.1.tar.bz2
Installing the default PDI source distribution is fairly easy. Most dependencies are embedded in the distribution and the only required external dependencies are:
For example, release 1.7.1 can be installed by following these instructions (but look for the latest release at https://gitlab.maisondelasimulation.fr/pdidev/pdi/-/releases ):
cmake
command must be followed by the path to the pdi
directory, here ..
because we have just created and moved to the build
subdirectory.-DCMAKE_INSTALL_PREFIX="${HOME}/.local/"
flag is used to specify where to install the distribution, flags are discussed in more detail below.If the default installation fails or if you need an installation better tailored to your needs, keep reading.
The PDI source distribution is compiled using CMake. The cmake
command accepts options to configure the distribution with flags. The syntax is -D<FLAG>=<VALUE>
to set FLAG
value to VALUE
.
For example, the installation directory can be changed with the following command:
The following general flags are useful to configure the distribution as a whole.
Flag | Default | Description |
---|---|---|
CMAKE_INSTALL_PREFIX | /usr/local | The path where to install the distribution. |
CMAKE_PREFIX_PATH | A semicolon-separated list of prefix where to look for PDI dependencies in addition to system path. | |
DIST_PROFILE | User | Sets the default values of other flags. The possible values are User for the PDI use profile and Devel for the developer profile. |
USE_DEFAULT | AUTO | Whether to compile the embedded versions of the dependencies. The possible values are SYSTEM to use the system versions, EMBEDDED to compile the version provided in the distribution and AUTO to prefer a system version but fall-back on the embedded version if unavailable. |
BUILD_UNSTABLE | OFF | Whether to build the unstable parts of the distribution, either ON or OFF . |
CMAKE_BUILD_TYPE | Release | Optimization level and debug verbosity. The possible values are Release and Debug . |
PDI_PLUGIN_PATH | same as PDI | Path where to install all plugins. If not defined, will install relative to PDI. |
The following flags define which features of the distribution to enable or not.
Flag | Default | Description |
---|---|---|
BUILD_BENCHMARKING | ON | Build the benchmarks. |
BUILD_FORTRAN | ON | Build the Fortran interface. |
BUILD_DECL_HDF5_PLUGIN | ON | Build the Decl'HDF5 plug-in. |
BUILD_HDF5_PARALLEL | ON | Build the parallel version of the Decl'HDF5 plugin instead of the sequential one. |
BUILD_MPI_PLUGIN | ON | Build the MPI plug-in. |
BUILD_NETCDF_PARALLEL | ON | Build the parallel version of the Decl'NetCDF plugin instead of the sequential one. |
BUILD_TEST_PLUGIN | ON | Build the Test plug-in. |
BUILD_TESTING | ON | Build the tests. |
BUILD_TRACE_PLUGIN | ON | Build the Trace plug-in. |
BUILD_USER_CODE_PLUGIN | ON | Build the User-code plug-in. |
BUILD_PYTHON | OFF | Build the Python interface. |
BUILD_DECL_SION_PLUGIN | OFF | Build the decl'SION plug-in. |
BUILD_FLOWVR_PLUGIN | OFF | Build the FlowVR plug-in. |
BUILD_FTI_PLUGIN | OFF | Build the FTI plug-in. |
BUILD_PYCALL_PLUGIN | OFF | Build Pycall plug-in. |
BUILD_DOCUMENTATION | OFF | Build the documentation website. |
BUILD_INDENT | OFF | Build the code auto-indentation tools. |
BUILD_CFG_VALIDATOR | OFF | Build the PDI configuration validation script. |
The following flags define whether to:
SYSTEM
), it will be looked for in the system directories and those specified by the CMAKE_PREFIX_PATH
list,EMBEDDED
),Flag | Default | Description |
---|---|---|
USE_Astyle | AUTO | the astyle tool. |
USE_benchmark | EMBEDDED | the Benchmark library. |
USE_Doxygen | AUTO | the doxygen tool. |
USE_FlowVR | AUTO | the FlowVR library. |
USE_FTI | AUTO | the FTI library. |
USE_GTest | EMBEDDED | the googletest library. |
USE_HDF5 | AUTO | the HDF5 library. |
USE_paraconf | AUTO | the paraconf library. |
USE_pybind11 | AUTO | the pybind11 library. |
USE_SIONlib | AUTO | the SIONlib library. |
USE_spdlog | AUTO | the spdlog library. |
USE_yaml | AUTO | the yaml library. |
USE_Zpp | EMBEDDED | the zpp preprocessor. |
The following flags define where to install PDI, those prefixed with CMAKE_
are provided and documented by the GNUInstallDirs cmake module.
Flag | Default | Description |
---|---|---|
INSTALL_CMAKEDIR | PDIDATADIR/cmake | Cmake modules. |
INSTALL_FMODDIR | LIBDIR/pdi/finclude/${COMPILER_VERSION} | Fortran modules |
INSTALL_PDIDATADIR | DATADIR/pdi | PDI data |
INSTALL_PDIPLUGINDIR | LIBDIR/pdi/plugins_${PDI_VERSION} | PDI plugins |
CMAKE_INSTALL_BINDIR | see GNUInstallDirs | user executables |
CMAKE_INSTALL_DATADIR | see GNUInstallDirs | read-only architecture-independent data |
CMAKE_INSTALL_DOCDIR | see GNUInstallDirs | documentation root |
CMAKE_INSTALL_INCLUDEDIR | see GNUInstallDirs | C header files |
CMAKE_INSTALL_LIBDIR | see GNUInstallDirs | object code libraries |
CMAKE_INSTALL_PREFIX | see CMake doc | Installation base |
Here is a list of all dependencies required by one feature or another. All dependencies are provided in the distribution unless specified otherwise.
Dependencies of PDI:
Dependencies of the Fortran API:
Dependencies of the Decl'HDF5 plugin:
Dependencies of the Decl'NetCDF plugin:
Dependencies of the MPI plugin:
Dependencies of the Python API:
Dependencies of the Decl'SION plugin:
Dependencies of the FlowVR plugin:
Dependencies of the FTI plugin:
Dependencies of the Pycall plugin:
Dependencies of the tests:
Dependencies of the benchmarks:
Dependencies of the documentation website builder:
Dependencies of the PDI configuration validation tool: