Checks¶
During its development Rat-vcpkg needed to check for some features when defining ports for Project-Rat C++ libraries thus the appearance of the rat-vcpkg/checks subdirectory.
It is mainly for repository development purposes.
Caution
The rat-vcpkg/checks subdirectory is rather unmaintained and only serves for ponctual testing to see if anything broke after updating ports or packages.
It is not a real tests directory so to speak.
Checks for Armadillo¶
The Armadillo library implements LAPACK systems for LU decomposition and some checks are here to ensure their use.
Note
This repository could be enhanced in times to come to make use of SuperLU repository for more efficient LU decomposition within Armadillo.
A superlu port used to be provided
but has been abandonned for now.
Checks for CUDA¶
The NVIDIA CUDA toolkit can get finicky at times. Some checks are here to ensure the compiled CUDA/C++ code can interact with the NVIDIA drivers installed on the systems. If not, Rat (in its MLFMM part) will not be able to use CUDA, so no GPU acceleration, which would be a shame.
The scripts checks for calls to the getDeviceCount CUDA
method, required by Rat-MLFMM to start CUDA interaction.
If this fails, an error code should be returned.
With some research, the user should be able to pinpoint the error message corresponding to the error code and thus take action to fix the problem. It usually boils down to updating the NVIDIA drivers on the system.
Checks for OpenBLAS single-threaded¶
Rat using POSIX threads, it needs OpenBLAS to be used with one single thread. This should be ensured with the vcpkg port defined by this repository. Nonetheless a check is available to ensure the OpenBLAS instance used only uses one single thread.
Some environment variable such as OPENBLAS_NUM_THREADS
can also dictate the number of threads used depending
on the compilation process.