diff --git a/README.md b/README.md index c20d6112..ce2c31d7 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ First, the proxy process is compiled as a position independent binary, which ena For a smooth experience, we recommend the following combination of OS distributions and platforms: -- CentOS 7.3+ running on Intel Xeon / Xeon Phi +- CentOS 7.3+ running on Intel Xeon, Xeon Phi, Fujitsu A64FX ##### 1. Change SELinux settings @@ -85,7 +85,12 @@ sudo reboot You will need the following packages installed: ~~~~ -sudo yum install cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git +sudo yum install cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git libdwarf-devel +~~~~ + +Note that to install libdwarf-devel to RHEL-8.2, you need to enable the CodeReady Linux Builder (CLB) repository and the EPEL repository with the following commands: +~~~~ +sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(/bin/arch)-rpms ~~~~ Grant read permission to the System.map file of your kernel version: @@ -114,19 +119,7 @@ git submodule update Foe example, if you want to try the development branch, use "development" as the pathspec. If you want to try the prerelease version 1.7.0-0.2, use "1.7.0-0.2". -###### 4.1 Install required packages - -~~~~ -sudo yum install systemd-libs numactl-libs elfutils-libelf libdwarf -~~~~ - -Note that you need to enable CodeReady Linux Builder (CLB) repository with RHEL-8.2 with the following command: - -~~~~ -subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms -~~~~ - -###### 4.2 Install with cmake +###### 4.1 Install with cmake Configure and compile: @@ -138,9 +131,9 @@ make -j install The IHK kernel modules and McKernel kernel image should be installed under the **ihk+mckernel** folder in your home directory. -###### 4.3 Install with rpm +###### 4.2 Install with rpm -Configure, compile and build rpm: +Build rpm: ~~~~ mkdir -p build && cd build @@ -191,7 +184,7 @@ IHK/McKernel booted. ~~~~ -##### 5. Run a simple program on McKernel +##### 6. Run a simple program on McKernel The mcexec command line tool (which is also the Linux proxy process) can be used for executing applications on McKernel: @@ -201,7 +194,7 @@ centos-vm ~~~~ -##### 6. Shutdown McKernel +##### 7. Shutdown McKernel Finally, to shutdown McKernel and release CPU/memory resources back to Linux use the following command: @@ -209,27 +202,27 @@ Finally, to shutdown McKernel and release CPU/memory resources back to Linux use sudo ./sbin/mcstop+release.sh ~~~~ -##### 7. Advanced: Enable Utility Thread offloading Interface (UTI) +##### 8. Advanced: Enable Utility Thread offloading Interface (UTI) UTI enables a runtime such as MPI runtime to spawn utility threads such as MPI asynchronous progress threads to Linux cores. -1. Install capstone +###### 8.1 Install capstone Install EPEL capstone-devel: ~~~~ -sudo yum install epel-release +sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install capstone-devel ~~~~ -2. Install syscall_intercept +###### 8.2 Install syscall_intercept ~~~~ git clone https://github.com/RIKEN-SysSoft/syscall_intercept.git cmake ../arch/aarch64 -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DTREAT_WARNINGS_AS_ERRORS=OFF ~~~~ -3. Install UTI for McKernel +###### 8.3 Install UTI for McKernel Install: @@ -240,19 +233,19 @@ mkdir build && cd build make && make install ~~~~ -4. Install McKernel +###### 8.4 Install McKernel ~~~~ CMAKE_PREFIX_PATH= cmake -DCMAKE_INSTALL_PREFIX=${HOME}/ihk+mckernel -DENABLE_UTI=ON $HOME/src/ihk+mckernel/mckernel ~~~~ -5. Run executable +###### 8.5 Run executable ~~~~ mcexec --enable-uti ~~~~ -6. Install UTI for Linux for performance comparison +###### 8.6 Install UTI for Linux for performance comparison Install by make: diff --git a/scripts/mckernel.spec.in b/scripts/mckernel.spec.in index fa15712c..dd1c62ce 100644 --- a/scripts/mckernel.spec.in +++ b/scripts/mckernel.spec.in @@ -23,7 +23,7 @@ Summary: IHK/McKernel License: GPLv2 Source0: mckernel-%{version}.tar.gz -Requires: systemd-libs numactl-libs elfutils-libelf libdwarf +Requires: systemd-libs numactl-libs libdwarf # kernel_module_package macro does not handle cross build... %if "%{?_host_cpu}" == "x86_64" && "%{?_target_cpu}" == "aarch64" @@ -36,7 +36,7 @@ Requires: kernel = %{krequires} Requires(post): /usr/sbin/depmod Requires(postun): /usr/sbin/depmod %else -BuildRequires: systemd-devel numactl-devel binutils-devel kernel-devel +BuildRequires: systemd-devel numactl-devel binutils-devel kernel-devel libdwarf-devel # Friendly reminder of the fact that kernel-rpm-macros is no longer included in kernel-devel %if 0%{?rhel} >= 8 BuildRequires: redhat-rpm-config kernel-rpm-macros elfutils-libelf-devel kmod