# -*- text -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
#                         University Research and Technology
#                         Corporation.  All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
#                         of Tennessee Research Foundation.  All rights
#                         reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
#                         University of Stuttgart.  All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
#                         All rights reserved.
# Copyright (c) 2014-2020 Intel, Inc.  All rights reserved.
# Copyright (c) 2020      Cisco Systems, Inc.  All rights reserved
# Copyright (c) 2022-2024 Nanook Consulting  All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
[multiple-prefixes]
The SLURM process starter for PRTE does not support multiple
different --prefix options to mpirun.  You can specify at most one
unique value for the --prefix option (in any of the application
contexts); it will be applied to all the application contexts of your
parallel job.

Put simply, you must have PRTE installed in the same location on
all of your SLURM nodes.

Multiple different --prefix options were specified to mpirun.  This is
a fatal error for the SLURM process starter in PRTE.

The first two prefix values supplied were:
    %s
and %s
#
[no-hosts-in-list]
The SLURM process starter for PRTE didn't find any hosts in
the map for this application. This can be caused by a lack of
an allocation, or by an error in the PRTE code. Please check
to ensure you have a SLURM allocation. If you do, then please pass
the error to the PRTE user's mailing list for assistance.
#
[no-local-slave-support]
A call was made to launch a local slave process, but no support
is available for doing so. Launching a local slave requires support
for either rsh or ssh on the backend nodes where MPI processes
are running.

Please consult with your system administrator about obtaining
such support.
#
[no-srun]
The SLURM process starter for OpenMPI was unable to locate a
usable "srun" command in its path. Please check your path
and try again.
#
[ancient-version]
The Slurm process starter requires a minimum Slurm version level
of v17.11. The detected version being used here is:

  Major: %d
  Minor: %d

SchedMD strongly recommends that you upgrade your Slurm version.
Versions of Slurm prior to 21.08.8 and 20.11.9 have been found
to have a security issue and are not supported - therefore, it
is recommended that you upgrade to a level at or above those
versions.

It is recognized that upgrades can take some time to complete.
In the interim, you can execute your job by ignoring the Slurm
process starter via the following MCA parameter:

  Environment: PRTE_MCA_plm=^slurm
  Cmd line: --prtemca plm ^slurm
  Default MCA param file: plm = ^slurm

This will result in use of the ssh process starter. This will have
no impact on your application, but will result in any accounting
being done solely at the allocation level instead of per-job.
#
[custom-args-in-env]
The Slurm process starter for PRTE detected the presence of an MCA
parameter in the environment that assigns custom command line arguments
to the `srun` command used to start PRTE's daemons on remote nodes:

  Paramater value: %s

This warning is provided to alert you (the user) to a perhaps
unintentional setting of command line arguments, or the unseen
overriding of your intended arguments by Slurm.

Background: Starting with Slurm version 23.11, a command line argument
(`--external-launcher`) was added to `srun` to indicate that the
command was being initiated from within a third-party launcher (e.g.,
`prte` or `prterun`). This allows Slurm to essentially freely modify
the `srun` command line while retaining a backward compatibility
capability when explicitly told to use it.  Notably, the Slurm
environment does this by automatically setting the
PRTE_MCA_plm_slurm_args environment variable to pass in its own
command line arguments.  This has the side effect of overriding most
user- or system-level settings.  Note that arguments passed on the
PRTE command line will override any Slurm setting of the
PRTE_MCA_plm_slurm_args environment variable, but with potentially
undesirable side effects if newer versions of `srun` misinterpret or
fail to understand the user-specified arguments.

If the setting of the MCA parameter was intentional, or if the
parameter looks acceptable to you, then please set the following
MCA parameter to disable this warning:

  Environment: PRTE_MCA_plm_slurm_disable_warning=true
  Cmd line: --prtemca plm_slurm_disable_warning 1
  Default MCA param file: plm_slurm_disable_warning = true

If you did not intentionally set the identified command line
arguments and do not wish them to be used, then set the
following MCA param to have them ignored:

  Environment: PRTE_MCA_plm_slurm_ignore_args=true
  Cmd line: --prtemca plm_slurm_ignore_args 1
  Default MCA param file: plm_slurm_ignore_args = true

Note that if you wish to provide custom `srun` command line
arguments and are finding them being overridden by Slurm, you
can ensure that your values are used by setting them with the
following param:

  Environment: PRTE_MCA_plm_slurm_force_args=foo
  Cmd line: --prtemca plm_slurm_force_args foo
  Default MCA param file: plm_slurm_force_args = foo

Note that you may need to add the `--external-launcher` option
to your provided args to ensure that `srun` properly functions
if you are using a relatively recent release of Slurm.
