CLUEstering
High-performance density-based weighted clustering library developed at CERN
|
CLUEstering uses the alpaka library for achieving performance portability accross many different backends without requiring any code duplication, which are activated by passing specific flags. The currently supported flags are:
ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED
ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLED
ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLED
ALPAKA_ACC_GPU_CUDA_ENABLED
ALPAKA_ACC_GPU_HIP_ENABLED
ALPAKA_ACC_SYCL_ENABLED
+ ALPAKA_SYCL_ONEAPI_CPU
ALPAKA_ACC_SYCL_ENABLED
+ ALPAKA_SYCL_ONEAPI_GPU
On addition to passing the alpaka flags, non-CPU backends also require setting the specific compiler and the necessary compilation flags.
CLUEstering is currently based on alpaka 1.2.0
, which requires a C++20 compiler and Boost 1.78.0
or later. Furthermore, depending on the chosen backend, the relative libraries must be installed:
2.2
or later2.0
or later12.0
or later6.0
or later2024.2
or laterWhen installing CLUEstering as a Python library, the shared libraries for each backend supported on the system are automatically compiled. So, in addition to the backend-specific dependencies listed above, some additional dependencies are also needed for the building process:
cmake
3.16.0
or latersetuptools
42
or laterwheel
pathlib
In addition to this, some Python libraries are used in the backend of the library and are thus needed, namely:
numpy
scikit-learn
pandas
matplotlib