OpenHPC Cluster Distribution
OpenHPC [01] provides a collection of pre-built ingredients common in HPC environments:
- Linux Foundation Project, guided by a Technical Steering Committee (TSC)
- Members from academics, research labs and industry [03]
Software Repository
Fundamentally OpenHPC is a software repository
- Supported distros:
yum
(CentOS/RHEL),zypper
(SLES) - Supported archtectures: aarch64, x86_64
- Incremental updates at roughly quarterly intervals [07]
- A component list is available in the Wiki [08]
There are two primary ways to access the available RPMs:
- Enable public OpenHPC repo(s) on head node that can route to internet
- Host a local mirror of the OpenHPC repo(s) within your datacenter
Public Repository
>>> rpm -i https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm
>>> cat /etc/yum.repos.d/OpenHPC.repo
...
>>> yum update -y -q && yum repolist | grep -i hpc
OpenHPC OpenHPC-1.3 - Base 821
OpenHPC-updates OpenHPC-1.3 - Updates 1,080
Package naming conventions:
- meta packages are prefixed with
ohpc-
- software packages sue
-ohpc
as suffix
# packages built against specific compiler variant
package-<compiler_family>-ohpc-<package_version>-<release>.<arch>.rpm
# packages built against compiler/MPI combination
package-<compiler_family>-<mpi family>-ohpc-<package_version>-<release>.<arch>.r
/opt/ohpc/ # installation path
yum search ohpc- | grep ^ohpc # list meta-packages
yum search ohpc | grep -- -ohpc. # list software paackages
yum search ohpc openmpi # search a specific component (i.e. openmpi)
Local Repository
Simple HTTP server:
>>> yum -y install httpd && systemctl enable httpd && systemctl start httpd
# Grant access to the HTTP port, or disable the firewall
>>> firewall-cmd --permanent --add-service=http && firewall-cmd --reload
# Disable SELinux
>>> grep ^SELINUX= /etc/selinux/config
SELINUX=disabled
>>> setenforce 0 && sestatus
# install the tools
>>> yum -y install yum-utils createrepo
Distribution Archives
http://build.openhpc.community/dist
Setup the package repository
wget http://build.openhpc.community/dist/1.3.4/OpenHPC-1.3.4.CentOS_7.x86_64.tar
tar -vxf OpenHPC-1.3.4.CentOS_7.x86_64.tar
mkdir -p /var/www/html/openhpc/1.3
mv CentOS_7/{noarch,updates,x86_64} /var/www/html/openhpc/1.3/
createrepo /var/www/html/openhpc/1.3/
Mirror
http://build.openhpc.community/OpenHPC:/
mkdir -p /var/www/html/openhpc/1.3
rsync --archive \
--verbose \
--compress \
--copy-links \
--hard-links \
--keep-dirlinks \
--exclude src \
--exclude repocache \
--delay-updates \
\
rsync://build.openhpc.community/OpenHPC/1.3/ \
rsync://build.openhpc.community/OpenHPC/1.3:/ /var/www/html/openhpc/
Environment Modules
Lmod implementation of environmental modules to provide standard user development and runtime environments:
# install some compilers
>>> yum install -y *compilers-ohpc lmod-ohpc
# re-login, or source Lmod
>>> source /etc/profile.d/lmod.sh
# list available software
>>> module avail
# load a compiler
>>> module load llvm5
>>> which llc
/opt/ohpc/pub/compiler/llvm/5.0.1/bin/llc
References
[01] OpenHPC Community Site
http://www.openhpc.community
[02] OpenHPC Source code on GitHub
https://github.com/openhpc/ohpc
[03] OpenHPC Porject Members
http://www.openhpc.community/about-us/participants/
[04] OpenHPC Mail Lists
http://www.openhpc.community/support/mail-lists/
[05] OpenHPC Build Service
https://build.openhpc.community/
[06] OpenHPC Integration Testing
http://test.openhpc.community:8080/
[07] OpenHPC - Release History and Roadmap
https://github.com/openhpc/ohpc/wiki/Release-History-and-Roadmap
[08] OpenHPC Wiki
https://github.com/openhpc/ohpc/wiki