Install the MULTICORE module

Multicore solver module for Chrono.

Features

The MULTICORE module provides features for performing multibody simulations using shared-memory parallel computing within Chrono

  • introduces a custom ChSystemMulticore class
  • implements a high-performance multicore collision detection algorithm
  • uses efficient APIs for parallelism (OpenMP, Thrust, etc.)

Requirements

  • To build this module you need:
    • the Blaze library, version 3.8.
    • the Thrust (also included in CUDA SDK).
The easiest way to obtain the Thrust library is by installing the CUDA SDK. Alternatively, you can download or clone Thrust from its GitHub repository. In that case, you will need to manually specify the path to the Thrust CMake configuration script (set the variable Thrust_DIR).

Building instructions

  1. Download the following libraries (depending on the platform, the process can be different)

    • Blaze library, version 3.8
    • Thrust (also included in CUDA SDK)

    For use with the Chrono::Multicore module, no installation is required for the above headers-only libraries. However, if so desired, they can be installed in the appropriate system directories (on platforms that support them).

  2. Repeat the instructions for the full installation.
  3. Set CH_ENABLE_MODULE_MULTICORE to 'on'.
  4. If prompted, set the path for Blaze_ROOT_DIR.
  5. Press 'Configure' again, then 'Generate', and proceed as usual in the installation instructions.
Not all the features of the standard serial version of Chrono are supported.

How to use it

  • Look at the API section of this module for documentation about classes and functions.
  • Look at the C++ source of demos to learn how to use the functions of this module.