KhiopsML / khiops

Khiops is an AutoML suite for supervised and unsupervised learning
https://khiops.org
BSD 3-Clause Clear License
36 stars 4 forks source link

Make LearningTestTool Able to Use `khiops_env` if Requested #406

Open popescu-v opened 1 month ago

popescu-v commented 1 month ago

Description

Currently, kht_test.py in LearningTestTool/py does not use the settings in khiops_env. This entails that, in order to make sure that LearningTestTool tests Khiops in (real) user-like conditions, LearningTestTool needs to replicate khiops_env settings.

For example, to match the export MPICH__INTERFACE_HOSTNAME=localhost command in khiops_env on MacOS, kht_test.py needs to detect the "Darwin" platform and replicate khiops_env behavior by adding the -host localhost options to mpiexec, which achieve the same effect (related issue on this point: #401).

The goal of this issue is to make LearningTestTool launchable in two modes:

  1. a "dev" mode, which keeps the current behavior; usable:
    • by Khiops core developers, and
    • in the standard CI tests which use the MODL* binaries directly
  2. a "package" / "release" mode, which executes khiops_env --env to read the MPI command (and other settings); usable:
    • in the packaging CI tests (for all platforms)
    • in the LearningTest full tests.

Context

popescu-v commented 1 month ago

It suffices to add a --environment option that gives the path to the desired khiops_env.

marcboulle commented 1 month ago

Alternative simple: réutiliser le paramètre existant binaries pour y cherche le khiops_env en priorité, et si non trouvé se rabattre sur la recherche des binaires comme actuellement

popescu-v commented 3 weeks ago

Alternative simple: réutiliser le paramètre existant binaries pour y cherche le khiops_env en priorité, et si non trouvé se rabattre sur la recherche des binaires comme actuellement

Indeed, we can reuse this parameter as follows:

Concretely, the changes would need to be done in the kht_test.py / build_tool_exe_path function, in the form of an if / else test on the existence of khiops_env in the tool_binaries_dir directory: