YMeRo requires at least Kepler-generation NVIDIA GPU and depends on a few external tools and libraries:

  • Unix-based OS
  • NVIDIA CUDA toolkit version >= 8.0
  • gcc compiler with c++11 support compatible with CUDA installation
  • CMake version >= 3.8
  • Python interpreter version >= 2.7
  • MPI library
  • HDF5 parallel library
  • libbfd for pretty debug information in case of an error

With all the prerequisites installed, you can take the following steps to run YMeRo:

  1. Get the up-to-date version of the code:

    $ git clone --recursive ymero
  2. In most cases automatic installation will work correctly, you should try it in the first place. Navigate to the folder with the code and run the installation command:

    $ cd ymero
    $ make install

    In case of any issues, check the prerequisites or try a more “manual” way:

    1. From the ymero folder, create a build folder and run CMake:

      $ mkdir -p build/
      $ cd build
      $ cmake ../

      If CMake reports some packages are not found, make sure you have all the prerequisites installed and corresponding modules loaded. If that doesn’t help, or you have some packages installed in non-default locations, you will need to manually point CMake to the correct locations.

      See CMake documentation for more details on how to provide package installation files.


      On CRAY systems you may need to tell CMake to dynamically link the libraries by the following flag:

      $ cmake -DCMAKE_EXE_LINKER_FLAGS="-dynamic" ../


      Usually CMake will correctly determine compute capability of your GPU. However, if compiling on a machine without a GPU (for example on a login node of a cluster), you may manually specify the compute capability (use your version instead of 6.0):

      $ cmake -DCUDA_ARCH_NAME=6.0 ../

      Note that in case you don’t specify any capability, YMeRo will be compiled for all supported architectures, which increases compilation time and slightly increases application startup. Performance, however, should not be affected.

    2. Now you can compile the code:

      $ make -j <number_of_jobs>

      The library will be generated in the current build folder.

    3. A simple way to use YMeRo after compilation is to install it with pip. Navigate to the root folder of YMeRo and run the following command:

      $ pip install --user --upgrade .
  3. Now you should be able to use the YMeRo in your Python scripts:

    import ymero


Additional helper tools can be installed for convenience. They are required for testing the code.

$ cd tools/
$ ./configure
$ make install


By default, the tools are installed in your $HOME/bin directory. It is possible to choose another location by setting the --bin-prefix option:

$ ./configure --bin-prefix <my-custom-tools-location>


In order to run on a cluster with a job scheduler (e.g. slurm), the --exec-cmd option should be set to the right command, such as srun:

$ ./configure --exec-cmd <my-custom-command>

The default value is mpiexec

The tools will automatically load modules for installing, running and testing the code. The modules and CMAKE flags can be customised by adding corresponding files in tools/config (see available examples). The __default files can be modified accordingly to your system.

The installation can be tested by calling

$ make test

The above command requires the atest framework (see Testing).