|
|
|
|
|
# Introduction
|
|
# Introduction
|
|
|
|
|
|
Likwid is build using GNU make and Perl. Besides the Linux kernel and the standard C library, all required dependencies are shipped with the archive ([Lua](http://www.lua.org/) and [hwloc](http://www.open-mpi.org/projects/hwloc/)). It should build on any Linux distribution with a recent GCC or CLANG compiler and 2.6 or newer Linux kernel without any changes.
|
|
Likwid is built using GNU make and Perl. Besides the Linux kernel and the standard C library, all required dependencies are shipped with the archive ([Lua](http://www.lua.org/) and [hwloc](http://www.open-mpi.org/projects/hwloc/)). It should build on any Linux distribution with a recent GCC or CLANG compiler and 2.6 or newer Linux kernel without any changes.
|
|
|
|
|
|
There is one generic top level Makefile and one .mk configuration file for each
|
|
There is one generic top level Makefile and one .mk configuration file for each
|
|
compiler (at the moment GCC, CLANG and ICC). Please note that we test LIKWID only with GCC. CLANG and ICC is only tested for basic functionality.
|
|
compiler (at the moment GCC, CLANG and ICC). Please note that we test LIKWID only with GCC. CLANG and ICC is only tested for basic functionality.
|
... | @@ -80,14 +80,21 @@ The following make targets are available: |
... | @@ -80,14 +80,21 @@ The following make targets are available: |
|
The build system has a working dependency tracking, therefore **make clean** is only
|
|
The build system has a working dependency tracking, therefore **make clean** is only
|
|
needed if you change the Makefile configuration.
|
|
needed if you change the Makefile configuration.
|
|
|
|
|
|
|
|
|
|
# Installing
|
|
# Installing
|
|
|
|
|
|
NOTE: The pinning functionality and the daemons only work if configured in `config.mk` and
|
|
NOTE: The pinning functionality and the daemons only work if configured in `config.mk` and
|
|
installed with **make install**. If you do not use the pinning functionality the tools
|
|
installed with **make install**. If you do not use the pinning functionality the tools
|
|
can be used without installation.
|
|
can be used without installation.
|
|
|
|
|
|
- **make install** - Installs the executables, libraries, man pages and headers to the path you configured in config.mk.
|
|
- **make install** - Installs the executables, libraries, man pages and headers to the `PREFIX` path you configured in config.mk.
|
|
- **make uninstall** - Delete all installed files.
|
|
- **make uninstall** - Delete all installed files.
|
|
|
|
If you changed the `INSTALLED_PREFIX` in config.mk you can use:
|
|
|
|
- **make move** - Copy all files from the `PREFIX` path to the `INSTALLED_PREFIX` path defined in config.mk
|
|
|
|
- **make uninstall_moved** - Delete all installed and moved files from the `INSTALLED_PREFIX` path
|
|
|
|
|
|
|
|
|
|
|
|
Normal configuration in config.mk sets `INSTALLED_PREFIX` = `PREFIX`, so in most cases, `make && (sudo) make install` is sufficient to build and install LIKWID.
|
|
|
|
|
|
# Setting up access for hardware performance monitoring
|
|
# Setting up access for hardware performance monitoring
|
|
|
|
|
... | @@ -116,4 +123,7 @@ sudo setcap cap_sys_rawio+ep EXECUTABLE |
... | @@ -116,4 +123,7 @@ sudo setcap cap_sys_rawio+ep EXECUTABLE |
|
This is only possible on local file systems. A feasible way is to use the [[likwid-accessD|likwid-accessD]] for all accesses and just enable the capabilities for this one binary. This will enable the usage for all LIKWID tools and also for all instrumented binaries. If the [[likwid-perfctr|likwid-perfctr]] utility should only be used in wrapper mode, it is suitable to set the capabilities for [[likwid-perfctr|likwid-perfctr]] only. Please remember to set the file permission of the MSR device file to read/write for all users, even if capabilites are configured correctly.
|
|
This is only possible on local file systems. A feasible way is to use the [[likwid-accessD|likwid-accessD]] for all accesses and just enable the capabilities for this one binary. This will enable the usage for all LIKWID tools and also for all instrumented binaries. If the [[likwid-perfctr|likwid-perfctr]] utility should only be used in wrapper mode, it is suitable to set the capabilities for [[likwid-perfctr|likwid-perfctr]] only. Please remember to set the file permission of the MSR device file to read/write for all users, even if capabilites are configured correctly.
|
|
|
|
|
|
|
|
|
|
|
|
# Installation on Intel Xeon Phi
|
|
|
|
In order to build LIKWID for the Xeon Phi, set the `COMPILER` option in config.mk to `MIC` and build it on a host that has a MIC-aware Intel compiler and the MPSS installed. Moreover, there might be the problem that the required Intel libraries are not present on the Xeon Phi and you need to copy them. Commonly the libraries are `libimf.so`, `libsvml.so`, `libirng.so` and `libintlc.so.5`. LIKWID assumes that they are copied in the same path as the LIKWID library `liblikwid.so` (`$INSTALLED_PREFIX/lib`). If you install them somewhere different, please set the `RPATHS` variable in config.mk or make/include_MIC.mk to point to the location.
|
|
|
|
|
|
|
|
Moreover, the Intel Xeon Phi has some limit of running processes and since every CPU needs its access daemon, LIKWID would start many processes. Therefore, LIKWID allows only direct access to the MSR device files on Xeon Phi. In order to allow this, set the suid-root bit for the Lua interpreter (`sudo chmod u+s $INSTALLED_PREFIX/bin/likwid-lua`). |
|
|
|
\ No newline at end of file |