What about MonolixSuite running on a cluster ?

MonolixSuite can run on a cluster.

Monolix installation

To run MonolixSuite on a cluster, each cluster node must have access to the MonolixSuite directory and to the user home directory. Thus, there are two possibilities.

  1. MonolixSuite is installed on each node. In that case, each node has a MonolixSuite installation.
  2. MonolixSuite installation is shared. MonolixSuite is installed on a master server. Each cluster node accesses to MonolixSuite through a shared directory (via CIFS, Network drive, NFS, …).

License management

On a cluster, we are managing the usage of our applications with the license management system described here.
The license management server is on a physical machine and manage the application through its license file. The associated license file has to be put in the folder {MonolixSuite install path}/config/system/access (and also {MonolixSuite install path}/bin/Monolix_mcr/runtime/config/system/access for MonolixSuite2016R1). So either on all nodes in the installation case 1, or only on the master server in the configuration 2.

Running Monolix on a cluster

To run Monolix with the command line: in the lib folder (typically $HOME/Lixoft/MonolixSuite2024R1/lib/)

monolix --no-gui -p mlxtran_project_path

where mlxtran_project_path is a Monolix project with a .mlxtran extension. Notice that a typical project from the demo can be found here $HOME/Lixoft/MonolixSuite2018R1/resources/demos/monolix/1.creating_and_using_models/1.1.libraries_of_models/theophylline_project.mlxtran

Generally, a task is submitted to the cluster using a specific command, e.g. qsub in the case of Torque, PBS or GridEngine (former SGE). This command runs a script, provided as parameter, on a cluster node chosen by the cluster scheduler.To run Monolix on a cluster: in the lib folder (typically $HOME/Lixoft/MonolixSuite2024R1/lib/)

qsub qSubOptions monolix --no-gui -p mlxtran_project_path

where qSubOptions corresponds to your cluster options.

Running Monolix on a cluster using mpi

To run using mpi with the command line: in the lib folder (typically $HOME/Lixoft/MonolixSuite2024R1/lib/)

mpirun mpiOptions distMonolix -p mlxtran_project_path
MPI options and setup

mpiOptions corresponds to your mpi options. Notice that the mpirun calls another program that requires another license.
In addition, the package was done with openmpi (version 1.6 for MonolixSuite 2020R1, and 1.10 for MonolixSuite2021R1). If you have a more recent version (2.2 (ubuntu 18.04), 4.0 (ubuntu 20.04), 4.1 (centOS stream 8) for example), you just have to create a symbolic link from your installation

  • from your installation of libmpi.so (usually in /usr/lib64/openmi/lib/libmpi.so.XX) to libmpi.so.1 (in our lib folder).
     sudo  ln -s your_installation_of_openmi/lib/libmpi.so.XX  installation_of_MonolixSuiteXXXX/lib/libmpi.so.12
  • from your installation of libmpi.so (usually in /usr/lib64/openmi/lib/libmpi_cxx.so.XX ) to libmpi_cxx.so.1
    (in our lib folder).

     sudo  ln -s your_installation_of_openmi/lib/libmpi_cxx.so.XX   installation_of_MonolixSuiteXXXX/lib/libmpi_cxx.so.1
    

 

Monolix options and distributed calculation

Additional options for the Monolix run, in particular --tool to select a multi-run task (model building, convergence assessment, bootstrap) and --config to provide settings for this task, are described on this page.

How the distribution is done:

  • in MCMC (SAEM, Fisher by Stochastic Approximation, Conditional Distribution): pools of ids are created and distributed by process
  • in Importance Sampling: same with simulation pools
  • in multi-run tasks (bootstrap, convergence assessment): each run is distributed over all processes.

 

For further assistance, contact us.

Jonathan CHAUVINWhat about MonolixSuite running on a cluster ?