Compiling with Kokkos for KNL processors with Intel Compilers

I am trying to compile lammps with Kokkos package for KNL architecture.
My compiler is intel/16.0.3 with intel mpi.
I tried this:

make yes-kokkos
make yes-user-reaxc
make kokkos_phi

I am getting this error:

cc1plus: error: bad value (knl) for -march=switch

cc1plus: error: bad value (knl) for -mtune=switch

I also tried with gcc compiler. In this case it compiled successfully but this case performance was poor.
As an example:

mpirun -np 2 ./lmp_kokkos_phi -k on t 2 -sf kk -in in.batio3

It runs but if i increase the number of threads

mpirun -np 2 ./lmp_kokkos_phi -k on t 4 -sf kk -in in.batio3

It starts running but not doing integration part:

Time step : 0.25
WARNING: Fixes cannot send data in Kokkos communication, switching to classic communication (…/comm_kokkos.cpp:382)

with this warning.

I have this cpu 1.40GHz Xeon Phi 7250 (Knights Landing)

Looks like it supposed to have 68 cores. Simulating system contains only 5k atoms.


Stan can comment (CCd)


Not sure about the compile error. If you use the command line option “-pk kokkos comm no” that warning will go away. For KNL we’ve found using the Kokkos MPI-only version (Makefile.kokkos_mpi_only, without threading) with between 64 and 256 MPI per node is best for KNL. Or try using the USER-OMP package instead, which has a new threaded version of USER-REAXC, I’d start with 64 MPI x 4 OpenMP per node.