11.1. Quick start: Building PMIx-based applications
Although this section skips many details, it offers examples that will probably work in many environments.
Note that this section is a “Quick start” — it does not attempt to be comprehensive or describe how to build PMIx in all supported environments. The examples below may therefore not work exactly as shown in your environment.
Please consult the other sections in this chapter for more details, if necessary.
PMIx provides a “wrapper” compiler (
`pmixcc <man1-pmixcc>`)that can be used for
compiling PMIx-based applications. The intent is that users can simply invoke the
PMIx wrapper compiler instead of their usual language compiler (e.g.,
For example, instead of invoking your usual C compiler to build your
shell$ pmixcc hello_world_pmix.c -o hello_world_pmix shell$
All the wrapper compiler does is add a variety of compiler and linker flags to the command line and then invoke a back-end compiler. To be specific: the wrapper compilers do not parse source code at all; they are solely command-line manipulators, and have nothing to do with the actual compilation or linking of programs. The end result is anI executable that is properly linked to all the relevant libraries.
It is absolutely not sufficient to simply add
to your link line and assume that you will obtain a valid
You should use the wrapper compiler provided by your higher-level
library instead of
pmix if (a) your library provides a wrapper,
and (b) your library also uses PMIx (in which case, its wrapper
should not only include the necessary linkages, but also ensures
that your application and library are both using the same PMIx