Using KOKKOS package (Cuda, OpenMP ) with intel compiler.

بسم الله الرحمن الرحيم

Hello,

I want to use KOKKOS package (Cuda, OpenMP) with intel compiler.

what should i do in any *-kokkos makefile to get what i want ?

Thank you.

بسم الله الرحمن الرحيم

Hello,

I am still waiting for a reply.

Thank you.

بسم الله الرحمن الرحيم

Hello,

I am still waiting for a reply.

​please understand, that posting to this mailing list does not entitle you
to get a response and part​icularly not on short notice.
there have only been 7 hours since your original post.
this mailing list is a voluntary effort, which means that people may choose
to not respond if:
- they don't have had time
- they don't understand what you are asking
- they don't know a good response
- they think, you should just follow the instructions in the manual
- they think, you should try out what your can figure out yourself and then
report back with the details and errors, if any.
- they think, what you are asking for makes no sense
- they don't care

a typical rule of thumb for mailing lists is to give people at least two
business days time to respond (keeping in mind that people may be located
in different time zones and may have different holidays than you), before
re-posting.

since the LAMMPS manual is quite detailed (sometimes too detailed), you can
use that time to do some research there and perhaps it will lead you to the
result you are looking for without having to repost your question.

...and after giving you a lecture on mailing list etiquette i have two
comments:
- how to do what you want should be possible to figure out by carefully
studying the documentation and readme files
- i don't see the point of using the intel compiler in this setup. you just
make your life needlessly complicated. unlike with fortran, gcc is quite
competitive and occasionally ahead of , and since you cannot use KOKKOS and
USER-INTEL (the latter of which benefits a lot from using the intel
compiler) at the same time, there really is not much of a reason to switch
away from gcc. the performance critical part will be the GPU acceleration,
anyway.

in addition to that, you don't even provide the bare minimum of useful
information (LAMMPS version, intel compiler version, CUDA version, gcc
version), and whether you have checked these against the list of
tested/compatible combinations in the KOKKOS supporting information. in
short, the better documented and detailed your inquiry, the better chances
you get meaningful help (instead of getting dressed down publicly).

axel.

بسم الله الرحمن الرحيم

Hello Dr. Kohlmeyer,

I am very sorry to ask questions that are always meaningless and for urgency.

I have intel compiler 17.0, cuda 9.0, gcc 5.4, and openmpi 1.10.

I attached to you the makefile that I used, but i got an errors which are

g++: error: unrecognized command line option ‘-arch=sm_30’

g++: error: unrecognized command line option ‘-Xcompiler’

and if replace mpicxx compiler with mpiicpc the errors disappears but i got a lot of warnings like:

…/…/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp(76): warning: device annotation on a defaulted function(“UniqueToken”) is ignored

…/dihedral_spherical.cpp:759:63: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]

and more of them ( they are differnet ), are they normal or not ?

another question:

does the skin of neighbour cmd. increase the cutoff for all pairs that i used, in other words if i need the cutoff for some pairs to be 21.0 and 17.0 and the skin to be 3.0 ( all in angstrom ) then i must put in pairs cmd. 18.0 and 14.0 ?

Thanks a lot for your patience and i am sorry again.

Thank you.

Makefile.k (3.59 KB)

بسم الله الرحمن الرحيم

Hello,

also i got an errors when i use mpiicpc compiler - in the final step (linking step) - like:

/usr/include/c++/5/bits/char_traits.h:290: undefined reference to _intel_fast_memcpy' /usr/include/c++/5/bits/stl_algobase.h:770: undefined reference to _intel_fast_memset’

and more …

now i have errors with both compilers …

please i need some help to compile lammps with kokkos.

Thanks a lot.

you still have not provided us with the exact LAMMPS version that you are trying to compile.

your errors indicate that your system/compiler/mpi setup may be broken. or you are using a too old LAMMPS version, where there was a problem with the KOKKOS build system.

your makefile is not significantly different from the stock KOKKOS/CUDA/MPI makefile, so that can be ruled out as a source of error. i have been able to compile the 11Aug2017 stable release as well as all subsequent patch releases on our HPC cluster with openmpi 2.1.1, gcc 4.8, cuda 8 and cuda 9 without a hitch. i’ve also been able to use cuda 8 with gcc 5.x and cuda 9 with gcc 5.x and 6.x

axel.

بسم الله الرحمن الرحيم

Hello,

Thank you Dr. Kohlmeyer for your point ( your system/compiler/mpi setup may be broken ), my problem was there a conflict between intelmpi and mpi libraries.

I have two questions:

  1. Does the skin of neighbour cmd. increase the cutoff for all pairs that i used, in other words if i need the cutoff for some pairs to be 21.0 and 17.0 and the skin to be 3.0 ( all in angstrom ) then i must put in pairs cmd. 18.0 and 14.0 ?

  2. In unit command document page at the website, you said “density = gram/cm^dim” in both real and metal types, but the distance in these two types was put in Angstrom, Is this a mistake ?

Thank you.

بسم الله الرحمن الرحيم

Hello,

Thank you Dr. Kohlmeyer for your point ( your system/compiler/mpi setup may
be broken ), my problem was there a conflict between intelmpi and mpi
libraries.

I have two questions:

1. Does the skin of neighbour cmd. increase the cutoff for all pairs that i
used, in other words if i need the cutoff for some pairs to be 21.0 and 17.0
and the skin to be 3.0 ( all in angstrom ) then i must put in pairs cmd.
18.0 and 14.0 ?

no. the cutoff you specify is the cutoff being used.
neighbor list skin applies only to neighbor list creation and
dependent properties (e.g. communication cutoff). those are usually
based on the largest cutoff used plus skin.
details are in the documentation.

2. In unit command document page at the website, you said "density =
gram/cm^dim" in both real and metal types, but the distance in these two
types was put in Angstrom, Is this a mistake ?

no, LAMMPS will apply suitable conversion factors. see the function
Update::set_units() in update.cpp

axel.

بسم الله الرحمن الرحيم

Thanks a lot for your reply.

and if replace mpicxx compiler with mpiicpc the errors disappears but i got a lot of warnings like:

I would definitely use g++ not the intel compiler for Kokkos CUDA. You do need to use mpicxx, and I wouldn’t worry about these compiler warnings if the build completes.

Stan