# Setting Up and Configuring Project

In the CMakeLists.txt of your simulation project, there are a few configuration options for the MASS CUDA library: 

| CMake variable | Description | Default value | 
| :--- | :--- | :--- |
| `MASS_NCCL_ROOT_DIR` | The root directory of the NCCL library | "" <br>(will try to find in common paths) |
| `MASS_LIBSSH_ROOT_DIR` | The root directory of the libssh library | "" <br>(will try to find in common paths) |
| `MASS_MAX_AGENTS` | Maximum number of agent instances on each place instance | 1 |
| `MASS_MAX_NEIGHBORS` | Maximum number of neighbors for each place instance | 12 |
| `MASS_MAX_DIMS` | Maximum number of dimensions for the spatial grid | 4 |
| `MASS_MAX_POTENTIAL_AGENTS` | Maximum number of potential agent instances migrating to each place instance | 12 |

To configure these options, set the value of these variables in CMakeLists.txt before adding the MASS library as dependencies.

```cmake
# Configure MASS CUDA
set(MASS_MAX_AGENTS 3)
set(MASS_MAX_DIMS 2)

# Add MASS CUDA as a dependency
FetchContent_Declare(
    mass_cuda
    GIT_REPOSITORY "https://bitbucket.org/mass_library_developers/mass_cuda_core"
    GIT_TAG "develop"
)
FetchContent_MakeAvailable(mass_cuda)
```