khiops icon indicating copy to clipboard operation
khiops copied to clipboard

Allow MPI command output to be verbose for OpenMPI

Open popescu-v opened this issue 1 year ago • 7 comments

Description

Currently, the --quiet flag is added to the mpiexec command in the khiops-env script on Linux platforms, which utilize OpenMPI for native installations.

The goal of this issue is to add an environment variable KHIOPS_MPI_VERBOSE, which is set to "false" by default and, if set to "true", would remove the --quiet flag.

Thusly, MPI-related errors could be checked on demand.

popescu-v avatar Jun 20 '24 15:06 popescu-v

I'd call it KHIOPS_MPI_QUIET because there is an --verbose option in OpenMPI in addition to --quiet.

folmos-at-orange avatar Jun 21 '24 06:06 folmos-at-orange

I'd call it KHIOPS_MPI_QUIET because there is an --verbose option in OpenMPI in addition to --quiet.

One argument for the current KHIOPS_MPI_VERBOSE would be that, depending on the MPI back-end, this verbosity might mean different things:

  • for OpenMPI, which is the default back-end for native installations on Linux (but can be overridden via the KHIOPS_MPI_COMMAND and KHIOPS_MPI_LIB environment variables) we define this as being a switch on the --quiet flag (and this might change in the future - perhaps by combining it with the --verbose flag ? @bruno-at-orange ?)
  • for MPICH (possible alternative back-end on some platforms - e.g. khiops-core on Conda), this does nothing currently, but could do in the future,
  • etc.

popescu-v avatar Jun 24 '24 09:06 popescu-v

The first proposal is fine: KHIOPS_MPI_VERBOSE which is set to "false" by default

bruno-at-orange avatar Jun 24 '24 12:06 bruno-at-orange

  • What happens if it is not defined in the environment? It acts as a if it were false ?
  • What happens if it is defined values other than true and false ?

folmos-at-orange avatar Jun 24 '24 16:06 folmos-at-orange

  • What happens if it is not defined in the environment? It acts as a if it were false ?

I would say "yes".

* What happens if it is defined values other than `true` and `false` ?

I would say anything != true acts like false.

popescu-v avatar Jun 24 '24 16:06 popescu-v

Ok, @bruno-at-orange do you confirm the behavior above ?

folmos-at-orange avatar Jun 25 '24 09:06 folmos-at-orange

My understading is that in khiops-env the KHIOPS_MPI_VERBOSE variable is set to "false" by default (that is, if it is not already defined in the environment). If this variable's value is different from "true" (which includes the default "false" or whatever the user has set), then --quiet is added to mpiexec. If this variable's value equals "true", then the --quiet flag is not added to mpiexec.

Is this also your understanding @bruno-at-orange ?

popescu-v avatar Jun 25 '24 15:06 popescu-v