# OpenHPC

Die OpenHPC-Initiative ist ein kollaboratives Projekt unter dem Dach der Linux Foundation. Es hat zum Ziel, eine einfach installier- und benutzbare Software-Umgebung (Framework) für High-Performance-Computing zu entwickeln und zu verbreiten. Die für das grundlegende Aufsetzen eines HPC-ComputeClusters notwendigen Komponenten stehen als Open Source zur Verfügung. Weitere, optionale Komponenten (Intel-C/Fortran-Compiler, diverse Performance-Analyse-Tools) erfordern den Erwerb von Lizenzen ihrer jeweiligen Hersteller.

## Gründung

Das Projekt wurde am 12. November 2015 während der SC '15 von den unter Gründungsmitglieder genannten Firmen und Forschungseinrichtungen gegründet.

## Ziele

Das Projekt will erreichen, dass openHPC
* als ein robustes und vielfältiges System aus miteinander integrierten Komponenten eine stark vereinfachte Nutzung von HPC-Techniken ermöglicht
* eine stabile Software-Umgebung zum Testen und Validieren eines breiten Spektrums an HPC-Anwendungen bietet
* als integriertes Open-Source-Framework die Gesamtkosten für die Inbetriebnahme einer eigenen HPC-Umgebung verringert
* mit seinem flexiblen Konfigurationsmanagement und zueinander kompatiblen Software-Paketen viele Einsatzfälle von HPC abdeckt, und trotzdem die Integration mit anderen HPC-Komponenten erlaubt
Das Aufsetzen eines ComputeClusters erfordert eine Menge administrativer Arbeit. Spezialisierte Systemadministratoren planen
* mit welcher Cluster-Verwaltungssoftware sie ihr Cluster installieren und verwalten wollen
* mit welchen Werkzeugen sie es überwachen und
* mit welchem ResourceManager (Job Scheduler) sie es durch die Benutzer mit Jobs (Teilaufgaben) beschicken wollen.
Dann installieren und konfigurieren sie auf dem/n MasterNode(s) die ausgewählte Software, mittels der sie dann die ComputeNodes erfassen, ihrerseits mit einem Betriebssystem versehen und in Betrieb nehmen.
OpenHPC will diese Vorgänge dadurch vereinfachen, dass ein einziger Software-Stack – bestehend aus weitgehend standardisierten und gegeneinander getesteten Komponenten – aus einem einzigen Repository heraus installiert wird, der sofort lauffähig ist und die Inbetriebnahme der ComputeNodes unmittelbar ermöglicht. Den Integrationsaufwand der verschiedenen Komponenten hat dabei das openHPC-Projekt bereits weitgehend erledigt, so dass dem Betreiber nur geringer Konfigurationsaufwand entsteht.

## Erstausgabe

Am 5. Februar 2016 erschien mit „OpenHPC 1.0.1“ das erste Release des Frameworks.

## Unterstützte Betriebssysteme

Zurzeit wird openHPC nur gegen CentOS 7.1 entwickelt und getestet. Es ist aber davon auszugehen, dass es mit kompatiblen Linux-Distributionen (Red Hat Enterprise Linux oder Scientific Linux) ebenso betrieben werden kann.

## Nutzung

Da HPC im Allgemeinen das „scale-out“-Prinzip (Verteilung aufwendiger Rechnungen auf mehrere Compute-Nodes) vorsieht, benötigt man einen Master-Node, der die Compute-Nodes mit der openHPC-Software und später mit Teilaufgaben versorgt.
Zur Nutzung von openHPC reicht es, im unterstützten Basis-Betriebssystem des Master-Nodes das openHPC-Repository einzutragen, um den integrierten Software-Stack herunterladen und installieren zu können.
Die Komponenten werden nach /opt/ohpc/ installiert, was ein für Master-Node und alle Compute-Nodes gemeinsames (NFS-)Verzeichnis sein sollte.
Die im openHPC-Projekt benutzten Komponenten sind:
* Warewulf als image-basierendes Compute-Node-Verwaltungssystem
* SLURM als Ressourcenmanager / Batch-Scheduler
* MPI-Bibliotheken (Intel-MPI, MVAPICH2, OpenMPI)
* verschiedene wissenschaftliche Bibliotheken wie FFTW, HDF5 (mit serieller und paralleler I/O-Unterstützung) und die GNU Scientific Library (GSL)
* InfiniBand-Treiber und -Tools (OFED, PSM, RDMA, IPoIB)
* Lustre-Client für das verteilte Filesystem
* Nagios-Client zur Verfügbarkeitsüberwachung
* Ganglia zur Performance- und Auslastungsüberwachung des Clusters
* Intel Cluster Checker zur Diagnose von Hard- und Softwareproblemen (lizenzpflichtig)
* Intel Parallel Studio XE C/C++ und Fortran-Compiler (u. U. lizenzpflichtig)

## Gründungsmitglieder

(in alphabetischer Reihenfolge)
* Allinea Software
* Altair Engineering
* ANSYS des Argonne National Laboratory
* Atos
* Barcelona Supercomputing Center
* The Center for Research in Extreme Scale Technologies at Indiana University
* Cray
* Dassault Systemes SIMULIA
* Dell
* Fujitsu Systems Europe
* Hewlett Packard Enterprise
* Intel Corporation
* Jülich Supercomputing Centre
* Lawrence Berkeley National Laboratory
* Lawrence Livermore National Laboratory
* Leibniz Supercomputing Centre
* Lenovo
* Los Alamos National Laboratory
* MSC Software
* NEC
* Oak Ridge National Laboratory
* Pacific Northwest National Laboratory
* ParTec
* Penguin Computing
* Pittsburgh Supercomputing Center
* Sandia National Laboratories
* SENAI CIMATEC
* SUSE
* Texas Advanced Computing Center