CP2K on intel xeon phi

Hans Pabst hf.p... at gmail.com
Fri Jun 10 09:49:37 CEST 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 
      (needed for PSMP, POPT, SOPT, and SSMP)
      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 
      - 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 
         - 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


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.html>

More information about the CP2K-user mailing list