Error: compile the test case with Chrono

Hi, i failed compile the test case with Chrono
details are shown below


and the system are:
g++ 7.5.0
CUDA 10.2
Chrono 5.0.0
Eigen3 3.3.4-4
Openmpi mpi-3.1 openmpi-4.0

And also, i want to ask can i run the code by N processes on single node, and each processes control M devices? For example, DGX-2, 12 (maybe, can’t remember the exact number) V100 in a machine, but the code only support 6 GPUs per node, so in this situation, how can i maximum the compute power.

Hello @JoJo,

if I remember correctly, the error you’re seeing comes from a conflict between your CUDA and Eigen versions. For CUDA 10, you need Eigen 3.3.5 at least.

Concerning the number of devices per node, you should be able to increase the limit by editing the value for DEVICE_BITS in src/multi_gpu_defines.h. By default it’s 3 (limiting the number of devices per node to 8), pushing it to 4 should bring the max devices per node to 16, and cover your use case. Please do report back on this.

yes, i thought about change value in that macro, but not sure whether it would cause some conflict, considering the bit operation. Thanks for the answer, i would try it and also i will show it when i finish the job (but it would take a long time, absolutely)

Changing that define should be sufficient (at least as long it’s kept belowGLOBAL_DEVICE_BITS, of course), since all other defines are set in term of these ones.

Thanks for the repply, and there is an another trouble :rofl:
I reinstall the eigen3 (ver 3.3.7), the error above is resolved. But a new one comes.

[CC] ProblemCore.osrc/ProblemCore.cc: In member function \u2018void ProblemCore::InitializeChrono()\u2019:
src/ProblemCore.cc:192:28: error: \u2018class chrono::ChSystem\u2019 has no member named \u2018SetMaxItersSolverSpeed\u2019
m_bodies_physical_system->SetMaxItersSolverSpeed(100);
^~~~~~~~~~~~~~~~~~~~~~
src/ProblemCore.cc:193:68: error: \u2018SOR\u2019 is not a member of \u2018chrono::ChSolver::Type\u2019
m_bodies_physical_system->SetSolverType(::chrono::ChSolver::Type::SOR);
^~~
Makefile:992: recipe for target ‘build/ProblemCore.o’ failed
make: *** [build/ProblemCore.o] Error 1

seems like conflict between the GPUSPH and Chrono. the version of Chrono is v5.0.0

something strange copy the text from terminal to windows
the messages are showing below

Hello @JoJo,
The easiest way to solve this issue is by using Project Chrono v4.0.0., which is the one supported by the current release of GPUSPH. Solvers are set with a different syntax in Project Chrono v5.0.0.

Thanks, i will try it