HOOMD Plugins

Installation of HOOMD-plugins

We currently offer several HOOMD-versions as modules:

------------------- /cluster/easybuild/broadwell/modules/all -------------------
   phys/HOOMD/2.5.1-fosscuda-2019b-double
   phys/HOOMD/2.9.1-foss-2018b-double
   phys/HOOMD/2.9.1-foss-2018b-single
   phys/HOOMD/2.9.1-fosscuda-2019b-double
   phys/HOOMD/2.9.6-fosscuda-2019b-single
   phys/HOOMD/2.9.6-fosscuda-2020b-double
   phys/HOOMD/2.9.6-fosscuda-2020b-single (D)

One can choose a specific version or use the default with:

module load phys/HOOMD

Installing HOOMD-plugins as external components

In general, there are two possibilities to install HOOMD-plugins: (1) as an internal or (2) as an external component. In the first case one has to recompile HOOMD itself and this is not a viable approach on MOGON 2. In the second case, you can install a plugin by yourself without recompiling HOOMD-modules. This is the method that is used on our cluster.

To start, choose a specific HOOMD-version from the list of available modules and don’t rely on the default module, as it can change with time. As an example, we will use the 2.9.6-version of HOOMD with the double precision:

module load phys/HOOMD/2.9.6-fosscuda-2020b-double

For compilation of most plugins we will also need a cmake-utility, so lets choose the following one:

module load devel/CMake/3.18.4

Now, when the choice of the tools is settled, let’s download the plugin we want to install. We will use azplugins as an example. It has clear installation instructions, which you can find at its GitHub-page.


Project- vs $HOME-folder In case you want to install a plugin not only for yourself but also for the members of your group/project, you should consider downloading and installing it in your project folder and not in your $HOME
Project- vs $HOME-folder


In case you want to install a plugin not only for yourself but also for the members of your group/project, you should consider downloading and installing it in your project folder and not in your `$HOME`

Algorithm:

  1. If your plugin has a github-page, you can download it to a folder inside your $HOME on MOGON via wget from one of the login nodes. Then proceed to step 4.

  2. If your plugin doesn’t have a github-page, you have to download it to your local computer (for example as a zip-archive).

  3. Upload it to a folder inside your $HOME on MOGON 2 using scp as explained here. If you have set up a config file for ssh-access according to our recommendation, you can simply do

      scp <TheFileToCopy> mogon:~/<PathToDestination>
    
  4. Allocate resources for your compilation job. Be modest with the requested time and resources, but allocate enough:

    salloc --gres=gpu:2 -n 2 -c 8 -p m2_gpu-compile -A <YourMogonAccount> -t 0:30:0
    

    Here we ask for 2 GPUs, 2 tasks, 8 CPUs per task and 30 minutes execution time. Check, which s-node is allocated for your compilation job and ssh to this node. For example, if the allocation ends with salloc: Nodes s0001 are ready for job, do

      ssh s0001
    
  5. On the computational node, go to the folder where you saved the plugin, then unzip it and change into the newly extracted folder: bash unzip azplugins-main.zip cd azplugins-main/

  6. Follow installation instructions of the plugin. In case of azplugins these are:

     mkdir build && cd build
     cmake ..
     make
    

That’s it!

Before using the plugin, take care of additional instructions of the plugin developers. For azplugins these are:

make sure that your installation location is on your PYTHONPATH

so before using it, you have to do:

export PYTHONPATH=$PYTHONPATH:/home/<YourUsername>/<PathToDestination>/azplugins-main/build