CP2K on intel xeon phi
Hans Pabst
hf.p... at gmail.com
Fri Jun 10 07:49:37 UTC 2016
Dear Aman,
I am assuming you are talking about Xeon Phi x100 family (KNC). To prepare
an ARCH file for Xeon Phi "native" is about cross-compiling the code using
the "-mmic" flag. I think there was some practical experience at EPCC /
University of Edinburgh. On the other hand there was also an attempt to fit
into the offload infrastructure, which is in place for the GPGPU / ACC
backend. This code did not make it into production, and it is hence
stripped from the main branch. It is still present in the intel branch, but
I have not put any more work into it recently.
If you are talking about Xeon Phi x200 family (KNL), this is a whole
different story and it works nicely. Let me summarize the steps for KNL:
- It works since *CP2K 3.0* (released), and onward (*CP2K 4.0*-development).
If you want to use the release or the *master/trunk*:
- git clone https://github.com/cp2k/cp2k.git cp2k.git (or from
SourceForge via Subversion or download of the official release)
- ln -s cp2k.git/cp2k cp2k
- It works since *pre-CP2K 3.0* and onward using the (current)
*CP2K/intel* branch.
- git clone --branch intel https://github.com/cp2k/cp2k.git cp2k.git
- ln -s cp2k.git/cp2k cp2k
- I strongly suggest to use LIBXSMM (although you can run LIBSMM, which
currently only supports up to AVX2).
- git clone https://github.com/hfp/libxsmm.git
- git checkout tags/1.4.3 (if you don't want the master)
- I suggest to use my outgrown ARCH file(s), but you can also build your
own (minimal) ARCH file.
- The ARCH files work for CP2K 3.0, and development (regardless of
whether it is the master or the intel branch).
- For 3.0/master/trunk branch, you have to download the following
ARCH files into the cp2k/arch folder:
https://github.com/cp2k/cp2k/ <goog_1622229635>
raw/intel/cp2k/arch/Linux-x86- <goog_1622229635>64-intel.x
<https://github.com/cp2k/cp2k/raw/intel/cp2k/arch/Linux-x86-64-intel.x>
(needed for PSMP, POPT, SOPT, and SSMP)
https://github.com/cp2k/cp2k/raw/intel/cp2k/arch/Linux-x86-64-intel.psmp
POPT, SOPT, and SSMP configurations are available as well.
- Building CP2K
- LIBXSMM is auto-detected if the "cp2k" folder (perhaps a symlink;
see above) and the "libxsmm" folder are located in parallel,
if not: use LIBXSMMROOT=/path/to/libxsmm along with the make command.
- source
/opt/intel/compilers_and_libraries_2017.0.064/linux/bin/compilervars.sh
intel64
- make ARCH=Linux-x86-64-intel VERSION=psmp AVX=3 MIC=1
- There are quite some additional key-value pairs supported:
- LIBXSMM=2: intercepts all GEMM calls to go through LIBXSMM
(gives some minor/additional performance)
- SYM=1: add symbols "-g" (it also enables VTune support in
LIBXSMM if Intel VTune is source'd, see here
<https://github.com/hfp/libxsmm/#profiling>)
- DBG=1: enables unoptimized code along with symbols (not for
production runs, but for debug)
- MKL=2: enables parallel MKL (default is sequential, but
sequential should be fine)
- I recommend to use LIBINT, LIBXC, and ELPA (unless you know that
your workload cannot benefit).
If you want/need (optimal) recipes for these libraries, let me know.
- LIBINTROOT=/path/to/libint
- LIBXCROOT=/path/to/libxc
- ELPAROOT=/path/to/elpa
Hans
Am Freitag, 3. Juni 2016 16:21:29 UTC+2 schrieb Aman Jindal:
>
> Dear Users,
> Has anyone of you tried installing cp2k on Intel xeonphi. if yes, which
> arch file should be used (with what modifications)?
> thanks in advance,
> Aman
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20160610/45371edf/attachment.htm>
More information about the CP2K-user
mailing list