<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-x-formal">
	<id>https://wikis.hu-berlin.de/hpc/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mielczad</id>
	<title>HPC@HU - Benutzerbeiträge [de-formal]</title>
	<link rel="self" type="application/atom+xml" href="https://wikis.hu-berlin.de/hpc/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mielczad"/>
	<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/Spezial:Beitr%C3%A4ge/Mielczad"/>
	<updated>2026-04-10T04:20:02Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=117</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=117"/>
		<updated>2025-05-15T07:54:07Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */  - make the internal Wiki more visible&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Ein detailliertes WIki inklusive einer detaillierte Auflistung steht innerhalb der HU unter folgendem Link zu Verfügung: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;https://wiki.hpc-service.hu-berlin.de&#039;&#039;&#039;&amp;lt;/big&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Außerhalb der HU bieten die folgenden Links grundlegenden Informationen: &lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
&amp;lt;!-- * [[Datenspeicher &amp;amp; Dateistruktur]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Modules &amp;amp; Verfügbare Software]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Containerisierung]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Jobs einreichen mit SLURM]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Lustre Grundlagen]] --&amp;gt;&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=116</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=116"/>
		<updated>2025-02-14T14:44:32Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
&amp;lt;!-- * [[Datenspeicher &amp;amp; Dateistruktur]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Modules &amp;amp; Verfügbare Software]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Containerisierung]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Jobs einreichen mit SLURM]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Lustre Grundlagen]] --&amp;gt;&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
Eine detaillierte Auflistung der verfügbaren Software sowie Hardware findet sich für Nutzer im HU-Netz unter https://wiki.hpc-service.hu-berlin.de&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=115</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=115"/>
		<updated>2025-02-14T14:44:19Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
&amp;lt;!-- * [[Datenspeicher &amp;amp; Dateistruktur]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Modules &amp;amp; Verfügbare Software]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Containerisierung]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Jobs einreichen mit SLURM]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Lustre Grundlagen]] --&amp;gt;&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
Eine detaillierte Auflistung der verfügbaren Software sowie Hardware findet sich für Nutzer im HU-Netz unter https://wiki.hpc-service.hu-berlin.de&lt;br /&gt;
&lt;br /&gt;
Eine detaillierte Auflistung der verfügbaren Software sowie Hardware findet sich für Nutzer im HU-Netz unter https://wiki.hpc-service.hu-berlin.de&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=114</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=114"/>
		<updated>2025-02-14T14:43:58Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
&amp;lt;!-- * [[Datenspeicher &amp;amp; Dateistruktur]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Modules &amp;amp; Verfügbare Software]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Containerisierung]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Jobs einreichen mit SLURM]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * [[Lustre Grundlagen]] --&amp;gt;&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
Eine detaillierte Auflistung der verfügbaren Software sowie Hardware findet sich für Nutzer im HU-Netz unter https://wiki.hpc-service.hu-berlin.de&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=113</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=113"/>
		<updated>2025-02-14T14:42:26Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */ add link to internal website&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfügbare Software]]&lt;br /&gt;
* [[Containerisierung]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Lustre Grundlagen]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
Eine detaillierte Auflistung der verfügbaren Software sowie Hardware findet sich für Nutzer im HU-Netz unter https://wiki.hpc-service.hu-berlin.de&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=112</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=112"/>
		<updated>2025-01-17T13:58:29Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Anaconda, Conda, Mamba */ enable link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- Blender&lt;br /&gt;
&lt;br /&gt;
- 4.3&lt;br /&gt;
&lt;br /&gt;
- Gaussian 16&lt;br /&gt;
&lt;br /&gt;
- A.03&lt;br /&gt;
&lt;br /&gt;
- GaussView&lt;br /&gt;
&lt;br /&gt;
- 6.0.16&lt;br /&gt;
&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Paketverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Januar 2025) wird Miniforge unter der BSD Lizenz angeboten und ist auf Github unter [https://github.com/conda-forge/miniforge github.com/conda-forge/miniforge] verfügbar.&lt;br /&gt;
&lt;br /&gt;
Es wurde mit einer zentralen Instanz von miniforge3 experimentiert, allerdings erweist sich die Verwaltung der Umgebung als unpraktisch und schwieriger als nötig, da normale Nutzer keine Schreibrechte in dem zentralen Installationsordner haben. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, wobei jedoch dort der verfügbare Platz beschränkt ist. Alternativ kann ein expliziter Prefix wie folgt angegeben werden, &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;, der dann jedoch nicht zwingend von conda direkt erkannt wird...&lt;br /&gt;
&lt;br /&gt;
Es wird darum empfohlen eine eigene Installation von miniforge auf dem zentralen Lustre-Dateisystem aufzusetzen und seine eigene Umgebungen zu verwalten. Für die &amp;quot;Grundversorgung&amp;quot; mit reinem Python, stehen zentral Python-Instanzen zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass zuvor erwähnte Lustre-Dateisystem zu nutzen. Der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=111</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=111"/>
		<updated>2025-01-17T13:57:48Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Anaconda, Conda, Mamba */  Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- Blender&lt;br /&gt;
&lt;br /&gt;
- 4.3&lt;br /&gt;
&lt;br /&gt;
- Gaussian 16&lt;br /&gt;
&lt;br /&gt;
- A.03&lt;br /&gt;
&lt;br /&gt;
- GaussView&lt;br /&gt;
&lt;br /&gt;
- 6.0.16&lt;br /&gt;
&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Paketverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Januar 2025) wird Miniforge unter der BSD Lizenz angeboten und ist auf Github unter &amp;lt;nowiki&amp;gt;https://github.com/conda-forge/miniforge&amp;lt;/nowiki&amp;gt; verfügbar.&lt;br /&gt;
&lt;br /&gt;
Es wurde mit einer zentralen Instanz von miniforge3 experimentiert, allerdings erweist sich die Verwaltung der Umgebung als unpraktisch und schwieriger als nötig, da normale Nutzer keine Schreibrechte in dem zentralen Installationsordner haben. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, wobei jedoch dort der verfügbare Platz beschränkt ist. Alternativ kann ein expliziter Prefix wie folgt angegeben werden, &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;, der dann jedoch nicht zwingend von conda direkt erkannt wird...&lt;br /&gt;
&lt;br /&gt;
Es wird darum empfohlen eine eigene Installation von miniforge auf dem zentralen Lustre-Dateisystem aufzusetzen und seine eigene Umgebungen zu verwalten. Für die &amp;quot;Grundversorgung&amp;quot; mit reinem Python, stehen zentral Python-Instanzen zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass zuvor erwähnte Lustre-Dateisystem zu nutzen. Der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=110</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=110"/>
		<updated>2025-01-17T11:45:38Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Anaconda, Conda, Mamba */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- Blender&lt;br /&gt;
&lt;br /&gt;
- 4.3&lt;br /&gt;
&lt;br /&gt;
- Gaussian 16&lt;br /&gt;
&lt;br /&gt;
- A.03&lt;br /&gt;
&lt;br /&gt;
- GaussView&lt;br /&gt;
&lt;br /&gt;
- 6.0.16&lt;br /&gt;
&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
&amp;lt;s&amp;gt;Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&amp;lt;/s&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Lustre_Grundlagen&amp;diff=109</id>
		<title>Lustre Grundlagen</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Lustre_Grundlagen&amp;diff=109"/>
		<updated>2024-12-18T15:25:22Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Neue Seite über Unser Lustre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Lustre Grundlagen =&lt;br /&gt;
Als zentrales paralleles Dateisystem steht ein Lustre mit insgesamt 1.6PB Speicherplatz zu Verfügung. Dieses ist unter &amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; erreichbar und bildet in seiner Struktur standardmäßig das Home-Directory nach, sprich die Pfade entsprechen &amp;lt;code&amp;gt;/lustre/&amp;lt;Fachbereich&amp;gt;/&amp;lt;Nutzername&amp;gt;/&amp;lt;/code&amp;gt;, wobei Ordner für Gruppen innerhalb der Fachbereiche auch willkommen sind.&lt;br /&gt;
&lt;br /&gt;
Technisch besteht das Lustre aus :&lt;br /&gt;
&lt;br /&gt;
* 1 Management Server&lt;br /&gt;
* 2 Metadaten Servern (MGS)&lt;br /&gt;
** mit insgesamt 4 MDTs (initiale Konfiguration + Ausbaut) auf SSDs&lt;br /&gt;
* 4 Storage Servern (OSS)&lt;br /&gt;
** mit je 4 OSTs, bestehend aus je 8 Festplatten zu 16TB in RAID 6&lt;br /&gt;
&lt;br /&gt;
Angebunden ist es über 100GBit/s Ethernet.&lt;br /&gt;
&lt;br /&gt;
Die Lustre Clients kommunizieren hier mit mit dem Management Server um initial Informationen über das Lustre zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Nach dem ersten Verbindungsaufbau involviert zukünftige Kommunikation nur noch die Metadaten sowie Storage Server. Hierfür wird beim Zugriff auf das Lustre zuerst der Metadatenserver angefragt, welcher dann einen Storage Server zuweist (zum Lesen oder Schreiben von Dateien).&lt;br /&gt;
&lt;br /&gt;
Aus diesem Grund sollte das Lustre bevorzugt für größere Dateien genutzt werden, da die Kommunikation zu einem relativ hohen &amp;quot;Overhead&amp;quot; bei kleinen Dateien (im KB-Bereich) führt. Die schlechte Leistung eines Lustre bei kleinen Dateien sind bekannt und werden anderweitig gut erläutert und erklärt. Hier lohnt sich die Nutzung eines lokalen temporären Speichers in den Servern selbst unter &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;. Dieser wird jedoch nach Ende eines Jobs gelöscht und ist nicht persistent. Lösungen für einen besseren Datendurchsatz sind vonseiten der Lustre Server und Client Software verfügbar und an deren Implementierung wird gearbeitet.&lt;br /&gt;
&lt;br /&gt;
Standardmäßig werden Dateien auf jeweils ein OST geschrieben (Stripe = 1), was den maximalen Datendurchsatz auf den eines OST beschränkt. Dabei gilt die Verteilung auf OSTs pro Datei, nicht pro Ordner: Sprich, es ist möglich dass verschiedene Dateien in einem Ordner auf verschiedenen OSTs liegen, was den globalen Datendurchsatz erhöht.&lt;br /&gt;
&lt;br /&gt;
Werden sehr große Dateien geschrieben, kann es von Interesse sein diese über mehrere OSTs zu verteilen. Hierbei ist es nur Möglich diese Einstellung für neue Dateien zu verändern. mit &amp;lt;code&amp;gt;lfs setstripe&amp;lt;/code&amp;gt; kann dieser Parameter für einen Ordner gesetzt oder gelöscht werden - oder auch eine Datei mit der entsprechenden Einstellung erstellt werden.&lt;br /&gt;
&lt;br /&gt;
Nehmen wir an, wir möchen eine Datei oder einen Ordner über 2 OSTs verteilen, so lässt sich die Einstellung für einen Ordner wie folgt setzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lfs setstripe -c 2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das erstellen einer neue Datei mit zwei Stripes wäre der folgende Befehl erforderlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lfs setstripe -c 2 NeueDatei&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist anzumerken dass es nicht möglich ist die Verteilung einer Datei nachträglich zu ändern. Für Änderungen muss eine neue Datei geschrieben werden, was demnach bedeutet dass die Datei kopiert werden muss und nicht verschoben werden kann um Einstellungen am Striping zu verändern. In Ordnern können die Einstellungen angepasst werden, wobei die jeweils aktuelle Einstellung alle zukünftigen Dateien betrifft.&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für einen Ordner lassen sich auch mit folgendem Befehl löschen, danach wird wieder ein Stripe pro Datei genutzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lfs setstripe --delete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ob sich die Nutzung mehrerer OSTs für einen Job im HPC-Betrieb lohnt, hängt hier stark von den Dateimengen und den Zugriffsmustern ab.&lt;br /&gt;
&lt;br /&gt;
Die Butzung von Stripes - der Verteilung von Daten über mehrere OSTs führt nicht zwingend zu einem höheren Datendurchsatz und ist vom Nutzungsprofil abhängig. Mehrere OSTs kann bedeuten dass Daten auch von mehreren Storage Servern (OSS) angefragt werden müssen. In diesem Fall kann bei kleinen Dateien der Kommunikationsaufwand höher sein als der Gewinn an zusätzlichem Datendurchsatz. Dazu erhöht sich der &amp;quot;Arbeitsaufwand&amp;quot; für die Metadatenserver bei Dateien welche über mehrere OSTs verteilt sind. Sind Dateien jedoch hinreichen groß, kann die Verteilung zu einem erhöhten Datendurchsatz führen und dadurch die Leistung steigern.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=108</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=108"/>
		<updated>2024-12-18T15:20:07Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfügbare Software]]&lt;br /&gt;
* [[Containerisierung]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Lustre Grundlagen]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Jobs_einreichen_mit_SLURM&amp;diff=107</id>
		<title>Jobs einreichen mit SLURM</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Jobs_einreichen_mit_SLURM&amp;diff=107"/>
		<updated>2024-12-13T08:33:00Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Beschreibung der queue-config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Einführung ====&lt;br /&gt;
Der Queue-Manager für HPC@HU ist SLURM ( siehe https://slurm.schedmd.com/quickstart.html )&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel kann wie folgt aussehen:&lt;br /&gt;
 &amp;lt;code&amp;gt;#!/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --ntasks=1                    # Run on a single CPU&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --mem=1gb                     # Job memory request&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --time=00:05:00               # Time limit hrs:min:sec&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --partition=standard&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --account=nutzername&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;&lt;br /&gt;
Hier steht hostname beispielhaft für einen Script oder die Ausführung einer Software für Berechnungen.&lt;br /&gt;
&lt;br /&gt;
Sollten im Script Variablen gesetzt werden, ist es wichtig dass dies erst nach der Definition des Jobs für SLURM geschieht.&lt;br /&gt;
&lt;br /&gt;
Nennt sich der Scirpt  &amp;lt;code&amp;gt;submit.bash&amp;lt;/code&amp;gt; , lässt sich dieser dann über &lt;br /&gt;
 sbatch submit.bash &lt;br /&gt;
beim Scheduler einreichen.&lt;br /&gt;
&lt;br /&gt;
Der aktuelle Status lässt sich über &lt;br /&gt;
 squeue &lt;br /&gt;
oder &lt;br /&gt;
 squeue -u Nutzername &lt;br /&gt;
abfragen.&lt;br /&gt;
&lt;br /&gt;
==== Parallelisierung mit mehreren Compute-Knoten: ====&lt;br /&gt;
Es ist möglich Berechnungen über mehrere Compute-Knoten laufen zu lassen. Hierbei sollte bedacht werden, dass Abhängig von den Virtuellen Maschinen in der aktuellen Konfiguration, die Kommunikation lokal auf einem Server oder über 100GBit/s Ethernet stattfindet.&lt;br /&gt;
&lt;br /&gt;
Hierbei ist die Integration von openMPI und SLURM von der Nutzerseite einfach zu handhaben. &lt;br /&gt;
&lt;br /&gt;
Um eine Berechnung über 2 Compute-Knoten laufen zu lassen, definiere ich zum Beispiel meine Anzahl an Threads sowie die Anzahl der Knoten:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=40                    # Run 40 threads/processes&lt;br /&gt;
 #SBATCH --ntasks-per-node=20           # Run 20 per compute node&lt;br /&gt;
 #SBATCH --nodes=2                      # Run on 2 nodes&lt;br /&gt;
 #SBATCH --mem=80gb                     # Job memory needed per node (per node is important!!)&lt;br /&gt;
 #SBATCH --time=96:00:00                # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=standard&lt;br /&gt;
 #SBATCH --account=&amp;lt;user account&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach rufe ich mein Programm ganz gewöhnlich über mpirun auf. &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Ein Punkt den es zu beachten gibt, ist dass es notwendig ist die zulässigen Ports für die Kommunikation zwischen Nodes zu definieren, vor allem der minimale Port scheint hier wichtig zu sein. &lt;br /&gt;
&lt;br /&gt;
Dadurch sieht der Aufruf des Programms (hier xhpl) dann wie folgt aus:&lt;br /&gt;
 mpirun -np 40 --mca btl_tcp_port_min_v4 60001 --mca oob_tcp_dynamic_ports 60001-63000 xhpl&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Der Aufruf des Programms (hier xhpl) sieht dann wie folgt aus:&lt;br /&gt;
 mpirun -np 40 xhpl&lt;br /&gt;
&lt;br /&gt;
=== Interaktive Sessions ===&lt;br /&gt;
Es ist möglich interaktive Sessions auf den Compute Knoten zu starten. Hierbei müsse die Ressourcen direkt auf der Befehlszeile angefordert werden, zum Beispiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;srun --nodes=1 --exclusive --pty bash -i&amp;lt;/code&amp;gt;&lt;br /&gt;
oder auch&lt;br /&gt;
 &amp;lt;code&amp;gt;srun --nodes=1 --ntasks-per-node=1 --time=01:00:00 --pty bash -i&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Ressourcen: ====&lt;br /&gt;
Aktuell eingerichtete virtuelle Maschinen verfügen über je:&lt;br /&gt;
* 64 Threads (ûber 32 Kerne)&lt;br /&gt;
* 256GB Arbeitsspeicher&lt;br /&gt;
* knapp 1,5TB lokalen scratch&lt;br /&gt;
&lt;br /&gt;
==== Queues / Partitionen ====&lt;br /&gt;
SLURM bietet die Möglichkeit Partitionen zu definieren, oft als &amp;quot;queues&amp;quot; bekannt.&lt;br /&gt;
&lt;br /&gt;
Aktuell stehen den Nutzern folgende Queues zu Verfügung, wobei manche auf bestimmte Nutzergruppen beschränkt sind.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!PartitionName&lt;br /&gt;
!DefaultTime&lt;br /&gt;
!MaxTime&lt;br /&gt;
!DefMemPerCPU&lt;br /&gt;
!MaxMemPerCPU&lt;br /&gt;
!MaxNodes&lt;br /&gt;
|-&lt;br /&gt;
|desktop&lt;br /&gt;
|4:00:00&lt;br /&gt;
|26:00:00&lt;br /&gt;
|2000&lt;br /&gt;
|8000&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|interactive&lt;br /&gt;
|1:00:00&lt;br /&gt;
|2:00:00&lt;br /&gt;
|2000&lt;br /&gt;
|8000&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|standard&lt;br /&gt;
|04:00:00&lt;br /&gt;
|4-00:00:00&lt;br /&gt;
|2000&lt;br /&gt;
|8000&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|longrun&lt;br /&gt;
|4-00:00:00&lt;br /&gt;
|14-00:00:00&lt;br /&gt;
|2000&lt;br /&gt;
|8000&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|gpu&lt;br /&gt;
|04:00:00&lt;br /&gt;
|14-00:00:00&lt;br /&gt;
|2000&lt;br /&gt;
|8000&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|large_memory&lt;br /&gt;
|04:00:00&lt;br /&gt;
|14-00:00:00&lt;br /&gt;
|8000&lt;br /&gt;
|64000&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|chemie&lt;br /&gt;
|04:00:00&lt;br /&gt;
|20-00:00:00&lt;br /&gt;
|8000&lt;br /&gt;
|64000&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|physik&lt;br /&gt;
|04:00:00&lt;br /&gt;
|20-00:00:00&lt;br /&gt;
|8000&lt;br /&gt;
|64000&lt;br /&gt;
|16&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=104</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=104"/>
		<updated>2024-12-06T12:25:40Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Software */ add Blender&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- Blender&lt;br /&gt;
&lt;br /&gt;
- 4.3&lt;br /&gt;
&lt;br /&gt;
- Gaussian 16&lt;br /&gt;
&lt;br /&gt;
- A.03&lt;br /&gt;
&lt;br /&gt;
- GaussView&lt;br /&gt;
&lt;br /&gt;
- 6.0.16&lt;br /&gt;
&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=102</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=102"/>
		<updated>2024-12-04T09:53:15Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Lustre */ Zusatz zum Lustre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|20GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
==== Home ====&lt;br /&gt;
Die Home-Verzeichnisse liegen im Netzwerk der Universität. Aus diesem Grund sind die Verzeichnisse auf eine Quota von 20GB pro Nutzer beschränkt und sollten im Normalfall nicht als Arbeitsverzeichnisse bei HPC Berechnungen genutzt werden. Vom Home-Verzeichnis werden so-genannte Snapshots erstellt - effektiv ein Backup. Einmal zu jeder Stunde, zur Minute null (bis zu 168 Snapshots, 1 Woche), dann jeden Tag um 00:00 Uhr (bis zu 30 Snapshots). Diese finden sich, in jedem Ordner, innerhalb eines unsichtbaren Ordners &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt;. Dieser wird allerdings nicht über &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt; angezeigt. Allerdings ist es möglich in den Ordner hinein zu navigieren, &amp;lt;code&amp;gt;cd .snapshot&amp;lt;/code&amp;gt; oder sich die Inhalte anzeigen zu lassen &amp;lt;code&amp;gt;ls .snapshot&amp;lt;/code&amp;gt;. Dadurch lassen sich für die Nutzer und Nutzerinnen des HPC-Service Daten im Home-Verzeichnis selbst wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zum Verzeichnis lautet &amp;lt;code&amp;gt;/home/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Lustre ====&lt;br /&gt;
Als temporärer Datenspeicher steht ein Lustre-Dateisystem under &amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; zu Verfügung, mit einer Gesamtgeröße von 1.5PB.&lt;br /&gt;
&lt;br /&gt;
Nach einem erfolgreichen Verbdindungsaufbau werden automatisch Ordern mit einer Dateistsruktur ähnlich dem Home-Verzeichnis angelegt und solten im Normalfall auch so genutzt werden. Bei Gruppenübergreifender Arbeit, lohnt es sich eventuell dedizierte Ordner auf der Fakultätsebene anzulegen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zulm Verzeichnis lautet &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Berechnungen die große Datenmengen erfordern oder bei denen Daten auch nach Ende des Jobs zu Verfügung stehenn sollen, ist das Lustre Dateisystem zu bevorzugen.&lt;br /&gt;
&lt;br /&gt;
==== Lokaler Scratch ====&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/lustre/fachbereich/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=101</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=101"/>
		<updated>2024-12-04T09:23:48Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Lokaler Scratch */  Anpassung des Pfades&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|20GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
==== Home ====&lt;br /&gt;
Die Home-Verzeichnisse liegen im Netzwerk der Universität. Aus diesem Grund sind die Verzeichnisse auf eine Quota von 20GB pro Nutzer beschränkt und sollten im Normalfall nicht als Arbeitsverzeichnisse bei HPC Berechnungen genutzt werden. Vom Home-Verzeichnis werden so-genannte Snapshots erstellt - effektiv ein Backup. Einmal zu jeder Stunde, zur Minute null (bis zu 168 Snapshots, 1 Woche), dann jeden Tag um 00:00 Uhr (bis zu 30 Snapshots). Diese finden sich, in jedem Ordner, innerhalb eines unsichtbaren Ordners &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt;. Dieser wird allerdings nicht über &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt; angezeigt. Allerdings ist es möglich in den Ordner hinein zu navigieren, &amp;lt;code&amp;gt;cd .snapshot&amp;lt;/code&amp;gt; oder sich die Inhalte anzeigen zu lassen &amp;lt;code&amp;gt;ls .snapshot&amp;lt;/code&amp;gt;. Dadurch lassen sich für die Nutzer und Nutzerinnen des HPC-Service Daten im Home-Verzeichnis selbst wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zum Verzeichnis lautet &amp;lt;code&amp;gt;/home/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Lustre ====&lt;br /&gt;
Als temporärer Datenspeicher steht ein Lustre-Dateisystem under &amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; zu Verfügung, mit einer Gesamtgeröße von 1.5PB.&lt;br /&gt;
&lt;br /&gt;
Nach einem erfolgreichen Verbdindungsaufbau werden automatisch Ordern mit einer Dateistsruktur ähnlich dem Home-Verzeichnis angelegt und solten im Normalfall auch so genutzt werden. Bei Gruppenübergreifender Arbeit, lohnt es sich eventuell dedizierte Ordner auf der Fakultätsebene anzulegen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zulm Verzeichnis lautet &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Lokaler Scratch ====&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/lustre/fachbereich/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=100</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=100"/>
		<updated>2024-11-20T11:34:23Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Hinzufügen von Gaussian&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- Gaussian 16&lt;br /&gt;
&lt;br /&gt;
- A.03&lt;br /&gt;
&lt;br /&gt;
- GaussView&lt;br /&gt;
&lt;br /&gt;
- 6.0.16&lt;br /&gt;
&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=99</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=99"/>
		<updated>2024-10-31T09:39:40Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Programmiersprachen und Compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=98</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=98"/>
		<updated>2024-10-28T12:49:17Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* OpenMP mit OpenMPI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter [[Modules &amp;amp; Verfûgbare Software]] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenzbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie eventuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwendig bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei idealerweise schnell das Problem aufzeigen können, das bekannte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;br /&gt;
&lt;br /&gt;
== OpenMP mit OpenMPI ==&lt;br /&gt;
Grundsätzlich soll die Nutzung von OpenMP in Kombination mit OpenMPI Môglich sein. Dadurch lassen sich das geringere &amp;quot;Overhead&amp;quot; von &amp;quot;Shared Memory Processing&amp;quot; (Threading) mit der Skalierung des MPI-Multi-Process-Asatz kombinieren.&lt;br /&gt;
&lt;br /&gt;
In einem uns bekannten Fall gab es Probleme bei der Verwaltung der Threads in einem OpenSource Fortran-Programm.&lt;br /&gt;
&lt;br /&gt;
Sollten unerwartet Probleme auftreten, sind folgenden Variablen/Parameter zu überprüfen:&lt;br /&gt;
&lt;br /&gt;
Die Variable&amp;lt;code&amp;gt;OMP_NUM_THREADS&amp;lt;/code&amp;gt; welche die Anzahl der OpenMP-Threads festlegt sollte exportiert werden, sowie die Option &amp;lt;code&amp;gt;--bind-to none&amp;lt;/code&amp;gt; beim Aufruf mit OpenMPI genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Ein Aufruf in einem Script sähe dann für 4 Threads und zwei Prozesse wie folgt aus:&lt;br /&gt;
 export OMP_NUM_THREADS=4&lt;br /&gt;
 mpirun --bind-to none -np 2 meine_Software&lt;br /&gt;
&lt;br /&gt;
== Zeilenterminierung ==&lt;br /&gt;
Wenn Textdateien unter Windows erstellt werden, kann dies mitunter in einigen Fällen unter Linux zu einem Problem führen.&lt;br /&gt;
&lt;br /&gt;
Textdateien unter unter Windows werden mit &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt; terminiert, &amp;quot;return carriage&amp;quot; (&amp;lt;code&amp;gt;\r&amp;lt;/code&amp;gt;) &amp;quot;neline&amp;quot; (&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;), wḧarend Textdateien unter Linux nur mit einem &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, &amp;quot;newline&amp;quot; terminiert werden. Dies kann dann zu teilweise unverständlichen Fehlermeldungen führen. Unter Windows wird darum die Nutzung von Notepad++ ( &amp;lt;nowiki&amp;gt;https://notepad-plus-plus.org/downloads&amp;lt;/nowiki&amp;gt; ) empfohlen, da in diesem Editor die Zeilenterminierung eingestellt werden kann und diese auch in der Statusleiste angezeigt wird. Alternativ können Textdateien auch über das Tool &amp;lt;code&amp;gt;dos2unix&amp;lt;/code&amp;gt; konvertiert werden, dieses steht auf den Login-Knoten zu Verfügung.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=97</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=97"/>
		<updated>2024-10-28T12:48:43Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* OpenMP mit OpenMPI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter [[Modules &amp;amp; Verfûgbare Software]] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenzbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie eventuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwendig bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei idealerweise schnell das Problem aufzeigen können, das beaknnte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;br /&gt;
&lt;br /&gt;
== OpenMP mit OpenMPI ==&lt;br /&gt;
Grundsätzlich soll die Nutzung von OpenMP in Kombination mit OpenMPI Môglich sein. Dadurch lassen sich das geringere &amp;quot;Overheaded&amp;quot; von &amp;quot;Shared Memory Processing&amp;quot; (Threading) mit der Skallierung des MPI-Multi-Process-Asatz kombinieren.&lt;br /&gt;
&lt;br /&gt;
In einem uns bekannten Fall gab es Probleme bei der Verwaltung der Threads in einem OpenSource Fortran-Programm.&lt;br /&gt;
&lt;br /&gt;
Sollten unerwartet Probleme auftreten, sind folgenden Variablen/Parameter zu überprüfen:&lt;br /&gt;
&lt;br /&gt;
Die Variable&amp;lt;code&amp;gt;OMP_NUM_THREADS&amp;lt;/code&amp;gt; welche die Anzahl der OpenMP-Threads festlegt sollte exportiert werden, sowie die Option &amp;lt;code&amp;gt;--bind-to none&amp;lt;/code&amp;gt; beim Aufruf mit OpenMPI genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Ein Aufruf in einem Script sähe dann für 4 Threads und zwei Prozesse wie folgt aus:&lt;br /&gt;
 export OMP_NUM_THREADS=4&lt;br /&gt;
 mpirun --bind-to none -np 2 meine_Software&lt;br /&gt;
&lt;br /&gt;
== Zeilenterminierung ==&lt;br /&gt;
Wenn Textdateien unter Windows erstellt werden, kann dies mitunter in einigen Fällen unter Linux zu einem Problem führen.&lt;br /&gt;
&lt;br /&gt;
Textdateien unter unter Windows werden mit &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt; terminiert, &amp;quot;return carriage&amp;quot; (&amp;lt;code&amp;gt;\r&amp;lt;/code&amp;gt;) &amp;quot;neline&amp;quot; (&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;), wḧarend Textdateien unter Linux nur mit einem &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, &amp;quot;newline&amp;quot; terminiert werden. Dies kann dann zu teilweise unverständlichen Fehlermeldungen führen. Unter Windows wird darum die Nutzung von Notepad++ ( &amp;lt;nowiki&amp;gt;https://notepad-plus-plus.org/downloads&amp;lt;/nowiki&amp;gt; ) empfohlen, da in diesem Editor die Zeilenterminierung eingestellt werden kann und diese auch in der Statusleiste angezeigt wird. Alternativ können Textdateien auch über das Tool &amp;lt;code&amp;gt;dos2unix&amp;lt;/code&amp;gt; konvertiert werden, dieses steht auf den Login-Knoten zu Verfügung.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=96</id>
		<title>Containerisierung</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=96"/>
		<updated>2024-10-15T07:04:04Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Erweiterung der Beschreibung um Containerisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Während im HPC-Bereich Software traditionnel direkt auf den Compute-Nodes ausgeführt wird, hat sich in den letzten Jahren auch die Nutzung eine Containerumgebung für bestimmte Anwendungsfâlle etabliert. Ein bekanntes Problem auf Compute-Clustern ist der Bedarf an einer neuerern glibc-Standardbibliothek welche durch Ihre tiefe Verwurzelung in Linux nicht ohne Weiteres angeboten werden kann. Die Containeriesrung kann es ermöglichen Software auszuführen welche sonst nicht gebaut werden kann oder nicht lauffähig ist.&lt;br /&gt;
&lt;br /&gt;
Docker als bekannteste Conainerisierung ist hierbei im HPC aufgrund der Root-Rechte auf einem von Nutzern geteilten HPC Cluster problematisch. Darum wurde eine Containerisierung am Lawrence Berkeley National Laboratory Entwickelt welche nur im Userspace läuft, heute unter dem Namen Apptainer bekannt ( &amp;lt;nowiki&amp;gt;https://apptainer.org/&amp;lt;/nowiki&amp;gt; ) - diese bieten wir den Nutzern auf unseren Ressourcen an. (Anmerkung: das Projekt startete ursprünglich unter dem Namen Singularity, Apptainer ist mit Singularity. SingularityCE its ein alternativer Fork.)&lt;br /&gt;
&lt;br /&gt;
Container für Apptainer können in Apptainer selbst gebaut werden, oder aber auch in Docker und dann konvertiert werden. Wer sich Container über die Docker-Route selbst bauen möchte, benötigt hierfür seinen eigenen Computer. Alternativ kann Apptainer auch Images direkt vom Docker-Hub herunterladen sofern ein Image zu VerFûgung steht.&lt;br /&gt;
&lt;br /&gt;
Wichtig is hierbei dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; zum Einstellen des Cache-Ordners so gewählt wird, dass sich dieses auf dem Lustre-Dateisystem befindet. Zum Bespiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein Minimales openSUSE 15.6 als glibc Overlay ===&lt;br /&gt;
Bei einem unserer Nutzer befindet sich ein minimales openSUSE 15.6 als Overlay im Testbetrieb um eine neuere glibc anzubieten.&lt;br /&gt;
&lt;br /&gt;
Dazu wird ein Docker-Container mit openSUSE Leap 15.6 aufgesetzt, in welchem zusätlzich noch lua-lmod installiert wird. Letzteres wird benötigt um die Modules-Umgebung zu unterstützen. Wichtige Anmerkung, damit zypper korrekt funktioniert, benötigt es ein &amp;quot;clean&amp;quot; sowie &amp;quot;refresh&amp;quot;. Dies ist mit dem folgenden Dockerfile möglich:&lt;br /&gt;
 # syntax=docker/dockerfile:1&lt;br /&gt;
 &lt;br /&gt;
 # use  Leap as a basis to reduce differences&lt;br /&gt;
 FROM opensuse/leap:15.6&lt;br /&gt;
 &lt;br /&gt;
 RUN zypper clean --all&lt;br /&gt;
 RUN zypper ref&lt;br /&gt;
 &lt;br /&gt;
 # the container needs to bring its own lmod along&lt;br /&gt;
 RUN zypper -n install lua-lmod&lt;br /&gt;
 &lt;br /&gt;
 RUN bash&lt;br /&gt;
Danach kann der Container mit &amp;lt;code&amp;gt;docker build . -t opensuse-15.6&amp;lt;/code&amp;gt; gebaut werden.&lt;br /&gt;
&lt;br /&gt;
Ist der Docker-Container lokal aufgesetzt, kann dieser in eine Apptainer sif-Datei umgewandelt werden, und zwar wie folg:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer build opensuse-15.6.sif docker-daemon://opensuse-15.6:latest&amp;lt;/code&amp;gt;&lt;br /&gt;
Hier ist es wichtig entweder den Tag (fals vorhanden) oder &amp;lt;code&amp;gt;:latest&amp;lt;/code&amp;gt; anzugeben, sonst wird die Datei nicht erstellt.&lt;br /&gt;
&lt;br /&gt;
Beim bauen des Container, wird &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; im RAM gemounted. Sollte der Container etwas größer sein, ist es möglich dass der vorhanden Platz nicht ausreicht, und das Bauen eines Apptainer-Containers dadurch fehlschlägt. In diesem Fall kann ein expliziter Pfad für &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; über eine Umgebungsvariable gesetzt werden. Danach ist man nicht auf den verfügbaren oder zugewiesenen RAM beschränkt.&lt;br /&gt;
&lt;br /&gt;
Dies sähe dann wie folgt aus:&lt;br /&gt;
 &amp;lt;code&amp;gt;APPTAINER_TMPDIR=&amp;quot;/tmp&amp;quot; apptainer build opensuse-15.6.sif docker-daemon://opensuse-15.6:latest&amp;lt;/code&amp;gt;&lt;br /&gt;
Die nun erstellte Datei ist der Container welcher sich nun in einer HPC-Umgebung - mit Nutzerrechtne - verwenden lässt. In einer interaktiven Session würde der Container mit &amp;lt;code&amp;gt;apptainer run opensuse-15.6.sif&amp;lt;/code&amp;gt; ausgeführt. Dies ist an sich zuerst nicht besonders nützlich da nur das Home-Verzeichnis benutzbar ist. Allerdings können weitere Verzeichnisse über &amp;lt;code&amp;gt;--bind&amp;lt;/code&amp;gt; eingebunden werden, wodurch sich im Container die gleichen Pfade wie außerhalb nutzen lassen. Das wäre hier:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Allerdings kann der Container dabei im Zweifelsfall nicht auf systemseitig angebotene Software oder Bibliotheken zugreifen. Diese lassen sich über einen Workaround ebenfalls einbinden. Der Pfad wird umgeschrieben und über die Umgebungsvariablen eingespielt. Hierbei ist es wichtig dass der Pfad zu der Systemsoftware ans Ende gehängt wird, denn die Pfade innerhalb des Containers sollen privilegiert werden.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel liese sich der Container wie folgt starten:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Und danach könne die Umgebungsvariablen mit den folgenden Befehelen gesetzt werden:&lt;br /&gt;
 ## add the base software back in via path:&lt;br /&gt;
 export PATH=$PATH:/usr_base/local/bin:/usr_base/bin:/bin_base&lt;br /&gt;
 ## ensure base OS libraries are included&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr_base/lib:/usr_base/lib64&lt;br /&gt;
Dies geht so natürlich nur in einer interaktiven Session.&lt;br /&gt;
&lt;br /&gt;
Soll ein Job über SLURM eingereicht werden, so muss dies automatisch geschehen. Dazu kannn &amp;lt;code&amp;gt;apptainer exec&amp;lt;/code&amp;gt; genutzt werden. Es wird ein Bash-Script geschrieben welcher die Umgebungsvariablen exportiert (zum erweitern der Pfade) und benötigte Module lädt und dann eventuellen Code ausführt. Das Script muss hierbei ausführbar sein, woraus sich ein Aufruf wie folgt ergibt: &amp;lt;code&amp;gt;apptainer exec --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif executable_script.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein minimaler Container mit openSUSE 15.6 ist unter &amp;lt;code&amp;gt;/software/containers/opensuse-15.6.sif&amp;lt;/code&amp;gt; verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Bereitgestellte Container ===&lt;br /&gt;
Manche Programme werden von den Entwicklern bereits containerisiert angeboten. In diesem Fall sollte zuerst sichergestellt werden dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; gesetzt ist, idealerweise mit einem Verweis auf das Lustre wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
Viele Container werden als Docker-Image bereitgestellt und können direkt verwendet werden. Als Beispiel wird hier Reaction Mechanism Generator vom MIT genutzt.&lt;br /&gt;
&lt;br /&gt;
Auf der Docker-Hub Seite des Projekts wird folgender Befehl für die Nutzung von Docker bereitgestellt: ( &amp;lt;nowiki&amp;gt;https://hub.docker.com/r/reactionmechanismgenerator/rmg&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;docker pull reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;br /&gt;
Da wir Apptainer anbieten ist der Aufruf üb er die Befehlszeile nicht identisch, aber sehr ähnlich: ( &amp;lt;nowiki&amp;gt;https://apptainer.org/docs/user/main/cli/apptainer_pull.html&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer pull docker://reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=95</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=95"/>
		<updated>2024-10-08T06:26:42Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: update der Softwareliste&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- 14.2.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- coreutils&lt;br /&gt;
&lt;br /&gt;
- 9.5&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libaec &lt;br /&gt;
&lt;br /&gt;
- 1.1.3 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.5 gcc/14.2.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=94</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=94"/>
		<updated>2024-09-03T18:01:16Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Pfad für Home und Ausführung bezüglich des Lustre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|20GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
==== Home ====&lt;br /&gt;
Die Home-Verzeichnisse liegen im Netzwerk der Universität. Aus diesem Grund sind die Verzeichnisse auf eine Quota von 20GB pro Nutzer beschränkt und sollten im Normalfall nicht als Arbeitsverzeichnisse bei HPC Berechnungen genutzt werden. Vom Home-Verzeichnis werden so-genannte Snapshots erstellt - effektiv ein Backup. Einmal zu jeder Stunde, zur Minute null (bis zu 168 Snapshots, 1 Woche), dann jeden Tag um 00:00 Uhr (bis zu 30 Snapshots). Diese finden sich, in jedem Ordner, innerhalb eines unsichtbaren Ordners &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt;. Dieser wird allerdings nicht über &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt; angezeigt. Allerdings ist es möglich in den Ordner hinein zu navigieren, &amp;lt;code&amp;gt;cd .snapshot&amp;lt;/code&amp;gt; oder sich die Inhalte anzeigen zu lassen &amp;lt;code&amp;gt;ls .snapshot&amp;lt;/code&amp;gt;. Dadurch lassen sich für die Nutzer und Nutzerinnen des HPC-Service Daten im Home-Verzeichnis selbst wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zum Verzeichnis lautet &amp;lt;code&amp;gt;/home/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Lustre ====&lt;br /&gt;
Als temporärer Datenspeicher steht ein Lustre-Dateisystem under &amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; zu Verfügung, mit einer Gesamtgeröße von 1.5PB.&lt;br /&gt;
&lt;br /&gt;
Nach einem erfolgreichen Verbdindungsaufbau werden automatisch Ordern mit einer Dateistsruktur ähnlich dem Home-Verzeichnis angelegt und solten im Normalfall auch so genutzt werden. Bei Gruppenübergreifender Arbeit, lohnt es sich eventuell dedizierte Ordner auf der Fakultätsebene anzulegen.&lt;br /&gt;
&lt;br /&gt;
Der individuelle Pfad zulm Verzeichnis lautet &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzernmae&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Lokaler Scratch ====&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=93</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=93"/>
		<updated>2024-09-03T07:00:03Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Updates zum Home Directories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|20GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
==== Home ====&lt;br /&gt;
Die Home-Verzeichnisse liegen im Netzwerk der Universität. Aus diesem Grund sind die Verzeichnisse auf eine Quota von 20GB pro Nutzer beschränkt und sollten im Normalfall nicht als Arbeitsverzeichnisse bei HPC Berechnungen genutzt werden. Vom Home-Verzeichnis werden so-genannte Snapshots erstellt - effektiv ein Backup. Einmal zu jeder Stunde, zur Minute null (bis zu 168 Snapshots, 1 Woche), dann jeden Tag um 00:00 Uhr (bis zu 30 Snapshots). Diese finden sich, in jedem Ordner, innerhalb eines unsichtbaren Ordners &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt;. Dieser wird allerdings nicht über &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt; angezeigt. Allerdings ist es möglich in den Ordner hinein zu navigieren, &amp;lt;code&amp;gt;cd .snapshot&amp;lt;/code&amp;gt; oder sich die Inhalte anzeigen zu lassen &amp;lt;code&amp;gt;ls .snapshot&amp;lt;/code&amp;gt;. Dadurch lassen sich für die Nutzer und Nutzerinnen des HPC-Service Daten im Home-Verzeichnis selbst wiederherstellen.&lt;br /&gt;
&lt;br /&gt;
==== Lokaler Scratch ====&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=92</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=92"/>
		<updated>2024-09-03T06:44:50Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|800GB&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|20GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=91</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=91"/>
		<updated>2024-08-30T11:29:03Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: quota für home eingeführt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|800GB&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|25GB pro Nutzer&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=90</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=90"/>
		<updated>2024-08-22T13:56:21Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Hinzufügen des Textes über die Zeilenterminierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter [[Modules &amp;amp; Verfûgbare Software]] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenzbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie eventuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwendig bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei idealerweise schnell das Problem aufzeigen können, das beaknnte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;br /&gt;
&lt;br /&gt;
== OpenMP mit OpenMPI ==&lt;br /&gt;
Grundsätzlich soll die Nutzung von OpenMP in Kombination mit OpenMPI Môglich sein. Dadurch lassen sich das geringere &amp;quot;Overheaded&amp;quot; von &amp;quot;Shared Memory Processing&amp;quot; (Threading) mit der Skallierung des MPI-Multi-Process-Asatz kombinieren.&lt;br /&gt;
&lt;br /&gt;
In einem uns bekannten Fall gab es Probleme bei der Verwaltung der Threads in einem OpenSource Fortran-Programm.&lt;br /&gt;
&lt;br /&gt;
Sollten unerwartet Probleme auftreten, sind folgenden Variablen/Parameter zu überprüfen:&lt;br /&gt;
&lt;br /&gt;
Die Variable&amp;lt;code&amp;gt;OMP_NUM_THREADS&amp;lt;/code&amp;gt; welche die Anzahl der OpenMP-Threads festlegt sollte exportiert werden, sowie die Option &amp;lt;code&amp;gt;--bind-to none&amp;lt;/code&amp;gt; beim Aufruf mit OpenMPI genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Ein Aufruf in einem Script sähe dann für 4 Threads und zwei Prozesse wie folgt aus:&lt;br /&gt;
 &amp;lt;export OMP_NUM_THREADS=4&lt;br /&gt;
 mpirun --bind-to none -np 2 meine_Software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zeilenterminierung ==&lt;br /&gt;
Wenn Textdateien unter Windows erstellt werden, kann dies mitunter in einigen Fällen unter Linux zu einem Problem führen.&lt;br /&gt;
&lt;br /&gt;
Textdateien unter unter Windows werden mit &amp;lt;code&amp;gt;\r\n&amp;lt;/code&amp;gt; terminiert, &amp;quot;return carriage&amp;quot; (&amp;lt;code&amp;gt;\r&amp;lt;/code&amp;gt;) &amp;quot;neline&amp;quot; (&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;), wḧarend Textdateien unter Linux nur mit einem &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;, &amp;quot;newline&amp;quot; terminiert werden. Dies kann dann zu teilweise unverständlichen Fehlermeldungen führen. Unter Windows wird darum die Nutzung von Notepad++ ( &amp;lt;nowiki&amp;gt;https://notepad-plus-plus.org/downloads&amp;lt;/nowiki&amp;gt; ) empfohlen, da in diesem Editor die Zeilenterminierung eingestellt werden kann und diese auch in der Statusleiste angezeigt wird. Alternativ können Textdateien auch über das Tool &amp;lt;code&amp;gt;dos2unix&amp;lt;/code&amp;gt; konvertiert werden, dieses steht auf den Login-Knoten zu Verfügung.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=89</id>
		<title>Containerisierung</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=89"/>
		<updated>2024-08-20T09:03:00Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Während im HPC-Bereich Software traditionnel direkt auf den Compute-Nodes ausgeführt wird, hat sich in den letzten Jahren auch die Nutzung eine Containerumgebung für bestimmte Anwendungsfâlle etabliert. Ein bekanntes Problem auf Compute-Clustern ist der Bedarf an einer neuerern glibc-Standardbibliothek welche durch Ihre tiefe Verwurzelung in Linux nicht ohne Weiteres angeboten werden kann. Die Containeriesrung kann es ermöglichen Software auszuführen welche sonst nicht gebaut werden kann oder nicht lauffähig ist.&lt;br /&gt;
&lt;br /&gt;
Docker als bekannteste Conainerisierung ist hierbei im HPC aufgrund der Root-Rechte auf einem von Nutzern geteilten HPC Cluster problematisch. Darum wurde eine Containerisierung am Lawrence Berkeley National Laboratory Entwickelt welche nur im Userspace läuft, heute unter dem Namen Apptainer bekannt ( &amp;lt;nowiki&amp;gt;https://apptainer.org/&amp;lt;/nowiki&amp;gt; ) - diese bieten wir den Nutzern auf unseren Ressourcen an. (Anmerkung: das Projekt startete ursprünglich unter dem Namen Singularity, Apptainer ist mit Singularity. SingularityCE its ein alternativer Fork.)&lt;br /&gt;
&lt;br /&gt;
Container für Apptainer können in Apptainer selbst gebaut werden, oder aber auch in Docker und dann konvertiert werden. Wer sich Container über die Docker-Route selbst bauen möchte, benötigt hierfür seinen eigenen Computer. Alternativ kann Apptainer auch Images direkt vom Docker-Hub herunterladen sofern ein Image zu VerFûgung steht.&lt;br /&gt;
&lt;br /&gt;
Wichtig is hierbei dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; zum Einstellen des Cache-Ordners so gewählt wird, dass sich dieses auf dem Lustre-Dateisystem befindet. Zum Bespiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein Minimales openSUSE 15.6 als glibc Overlay ===&lt;br /&gt;
Bei einem unserer Nutzer befindet sich ein minimales openSUSE 15.6 als Overlay im Testbetrieb um eine neuere glibc anzubieten.&lt;br /&gt;
&lt;br /&gt;
Dazu wird ein Docker-Container mit openSUSE Leap 15.6 aufgesetzt, in welchem zusätlzich noch lua-lmod installiert wird. Letzteres wird benötigt um die Modules-Umgebung zu unterstützen. Wichtige Anmerkung, damit zypper korrekt funktioniert, benötigt es ein &amp;quot;clean&amp;quot; sowie &amp;quot;refresh&amp;quot;. Dies ist mit dem folgenden Dockerfile möglich:&lt;br /&gt;
 # syntax=docker/dockerfile:1&lt;br /&gt;
 &lt;br /&gt;
 # use  Leap as a basis to reduce differences&lt;br /&gt;
 FROM opensuse/leap:15.6&lt;br /&gt;
 &lt;br /&gt;
 RUN zypper clean --all&lt;br /&gt;
 RUN zypper ref&lt;br /&gt;
 &lt;br /&gt;
 # the container needs to bring its own lmod along&lt;br /&gt;
 RUN zypper -n install lua-lmod&lt;br /&gt;
 &lt;br /&gt;
 RUN bash&lt;br /&gt;
Danach kann der Container mit &amp;lt;code&amp;gt;docker build . -t opensuse-15.6&amp;lt;/code&amp;gt; gebaut werden.&lt;br /&gt;
&lt;br /&gt;
Ist der Docker-Container lokal aufgesetzt, kann dieser in eine Apptainer sif-Datei umgewandelt werden, und zwar wie folg: &amp;lt;code&amp;gt;apptainer build opensuse-15.6.sif docker-daemon://opensuse-15.6:latest&amp;lt;/code&amp;gt; Hier ist es wichtig entweder den Tag (fals vorhanden) oder &amp;lt;code&amp;gt;:latest&amp;lt;/code&amp;gt; anzugeben, sonst wird die Datei nicht erstellt.&lt;br /&gt;
&lt;br /&gt;
Die nun erstellte Datei ist der Container welcher sich nun in einer HPC-Umgebung - mit Nutzerrechtne - verwenden lässt. In einer interaktiven Session würde der Container mit &amp;lt;code&amp;gt;apptainer run opensuse-15.6.sif&amp;lt;/code&amp;gt; ausgeführt. Dies ist an sich zuerst nicht besonders nützlich da nur das Home-Verzeichnis benutzbar ist. Allerdings können weitere Verzeichnisse über &amp;lt;code&amp;gt;--bind&amp;lt;/code&amp;gt; eingebunden werden, wodurch sich im Container die gleichen Pfade wie außerhalb nutzen lassen. Das wäre hier:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Allerdings kann der Container dabei im Zweifelsfall nicht auf systemseitig angebotene Software oder Bibliotheken zugreifen. Diese lassen sich über einen Workaround ebenfalls einbinden. Der Pfad wird umgeschrieben und über die Umgebungsvariablen eingespielt. Hierbei ist es wichtig dass der Pfad zu der Systemsoftware ans Ende gehängt wird, denn die Pfade innerhalb des Containers sollen privilegiert werden.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel liese sich der Container wie folgt starten:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Und danach könne die Umgebungsvariablen mit den folgenden Befehelen gesetzt werden:&lt;br /&gt;
 ## add the base software back in via path:&lt;br /&gt;
 export PATH=$PATH:/usr_base/local/bin:/usr_base/bin:/bin_base&lt;br /&gt;
 ## ensure base OS libraries are included&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr_base/lib:/usr_base/lib64&lt;br /&gt;
Dies geht so natürlich nur in einer interaktiven Session.&lt;br /&gt;
&lt;br /&gt;
Soll ein Job über SLURM eingereicht werden, so muss dies automatisch geschehen. Dazu kannn &amp;lt;code&amp;gt;apptainer exec&amp;lt;/code&amp;gt; genutzt werden. Es wird ein Bash-Script geschrieben welcher die Umgebungsvariablen exportiert (zum erweitern der Pfade) und benötigte Module lädt und dann eventuellen Code ausführt. Das Script muss hierbei ausführbar sein, woraus sich ein Aufruf wie folgt ergibt: &amp;lt;code&amp;gt;apptainer exec --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif executable_script.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein minimaler Container mit openSUSE 15.6 ist unter &amp;lt;code&amp;gt;/software/containers/opensuse-15.6.sif&amp;lt;/code&amp;gt; verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Bereitgestellte Container ===&lt;br /&gt;
Manche Programme werden von den Entwicklern bereits containerisiert angeboten. In diesem Fall sollte zuerst sichergestellt werden dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; gesetzt ist, idealerweise mit einem Verweis auf das Lustre wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
Viele Container werden als Docker-Image bereitgestellt und können direkt verwendet werden. Als Beispiel wird hier Reaction Mechanism Generator vom MIT genutzt.&lt;br /&gt;
&lt;br /&gt;
Auf der Docker-Hub Seite des Projekts wird folgender Befehl für die Nutzung von Docker bereitgestellt: ( &amp;lt;nowiki&amp;gt;https://hub.docker.com/r/reactionmechanismgenerator/rmg&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;docker pull reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;br /&gt;
Da wir Apptainer anbieten ist der Aufruf üb er die Befehlszeile nicht identisch, aber sehr ähnlich: ( &amp;lt;nowiki&amp;gt;https://apptainer.org/docs/user/main/cli/apptainer_pull.html&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer pull docker://reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=88</id>
		<title>Containerisierung</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=88"/>
		<updated>2024-08-19T13:25:54Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Während im HPC-Bereich Software traditionnel direkt auf den Compute-Nodes ausgeführt wird, hat sich in den letzten Jahren auch die Nutzung eine Containerumgebung für bestimmte Anwendungsfâlle etabliert. Ein bekanntes Problem auf Compute-Clustern ist der Bedarf an einer neuerern glibc-Standardbibliothek welche durch Ihre tiefe Verwurzelung in Linux nicht ohne Weiteres angeboten werden kann. Die Containeriesrung kann es ermöglichen Software auszuführen welche sonst nicht gebaut werden kann oder nicht lauffähig ist.&lt;br /&gt;
&lt;br /&gt;
Docker als bekannteste Conainerisierung ist hierbei im HPC aufgrund der Root-Rechte auf einem von Nutzern geteilten HPC Cluster problematisch. Darum wurde eine Containerisierung am Lawrence Berkeley National Laboratory Entwickelt welche nur im Userspace läuft, heute unter dem Namen Apptainer bekannt ( &amp;lt;nowiki&amp;gt;https://apptainer.org/&amp;lt;/nowiki&amp;gt; ) - diese bieten wir den Nutzern auf unseren Ressourcen an. (Anmerkung: das Projekt startete ursprünglich unter dem Namen Singularity, Apptainer ist mit Singularity. SingularityCE its ein alternativer Fork.)&lt;br /&gt;
&lt;br /&gt;
Container für Apptainer können in Apptainer selbst gebaut werden, oder aber auch in Docker und dann konvertiert werden. Wer sich Container über die Docker-Route selbst bauen möchte, benötigt hierfür seinen eigenen Computer. Alternativ kann Apptainer auch Images direkt vom Docker-Hub herunterladen sofern ein Image zu VerFûgung steht.&lt;br /&gt;
&lt;br /&gt;
Wichtig is hierbei dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; zum Einstellen des Cache-Ordners so gewählt wird, dass sich dieses auf dem Lustre-Dateisystem befindet. Zum Bespiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein Minimales openSUSE 15.6 als glibc Overlay ===&lt;br /&gt;
Bei einem unserer Nutzer befindet sich ein minimales openSUSE 15.6 als Overlay im Testbetrieb um eine neuere glibc anzubieten.&lt;br /&gt;
&lt;br /&gt;
Dazu wird ein Docker-Container mit openSUSE Leap 15.6 aufgesetzt, in welchem zusätlzich noch lua-lmod installiert wird. Letzteres wird benötigt um die Modules-Umgebung zu unterstützen. Wichtige Anmerkung, damit zypper korrekt funktioniert, benötigt es ein &amp;quot;clean&amp;quot; sowie &amp;quot;refresh&amp;quot;. Dies ist mit dem folgenden Dockerfile möglich:&lt;br /&gt;
 &amp;lt;# syntax=docker/dockerfile:1&lt;br /&gt;
 &lt;br /&gt;
 # use  Leap as a basis to reduce differences&lt;br /&gt;
 FROM opensuse/leap:15.6&lt;br /&gt;
 &lt;br /&gt;
 RUN zypper clean --all&lt;br /&gt;
 RUN zypper ref&lt;br /&gt;
 &lt;br /&gt;
 # the container needs to bring its own lmod along&lt;br /&gt;
 RUN zypper -n install lua-lmod&lt;br /&gt;
 &lt;br /&gt;
 RUN bash&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Container mit &amp;lt;code&amp;gt;docker build . -t opensuse-15.6&amp;lt;/code&amp;gt; gebaut werden.&lt;br /&gt;
&lt;br /&gt;
Ist der Docker-Container lokal aufgesetzt, kann dieser in eine Apptainer sif-Datei umgewandelt werden, und zwar wie folg: &amp;lt;code&amp;gt;apptainer build opensuse-15.6.sif docker-daemon://opensuse-15.6:latest&amp;lt;/code&amp;gt; Hier ist es wichtig entweder den Tag (fals vorhanden) oder &amp;lt;code&amp;gt;:latest&amp;lt;/code&amp;gt; anzugeben, sonst wird die Datei nicht erstellt.&lt;br /&gt;
&lt;br /&gt;
Die nun erstellte Datei ist der Container welcher sich nun in einer HPC-Umgebung - mit Nutzerrechtne - verwenden lässt. In einer interaktiven Session würde der Container mit &amp;lt;code&amp;gt;apptainer run opensuse-15.6.sif&amp;lt;/code&amp;gt; ausgeführt. Dies ist an sich zuerst nicht besonders nützlich da nur das Home-Verzeichnis benutzbar ist. Allerdings können weitere Verzeichnisse über &amp;lt;code&amp;gt;--bind&amp;lt;/code&amp;gt; eingebunden werden, wodurch sich im Container die gleichen Pfade wie außerhalb nutzen lassen. Das wäre hier:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Allerdings kann der Container dabei im Zweifelsfall nicht auf systemseitig angebotene Software oder Bibliotheken zugreifen. Diese lassen sich über einen Workaround ebenfalls einbinden. Der Pfad wird umgeschrieben und über die Umgebungsvariablen eingespielt. Hierbei ist es wichtig dass der Pfad zu der Systemsoftware ans Ende gehängt wird, denn die Pfade innerhalb des Containers sollen privilegiert werden.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel liese sich der Container wie folgt starten:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Und danach könne die Umgebungsvariablen mit den folgenden Befehelen gesetzt werden:&lt;br /&gt;
 &amp;lt;## add the base software back in via path:&lt;br /&gt;
 export PATH=$PATH:/usr_base/local/bin:/usr_base/bin:/bin_base&lt;br /&gt;
 ## ensure base OS libraries are included&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr_base/lib:/usr_base/lib64&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies geht so natürlich nur in einer interaktiven Session.&lt;br /&gt;
&lt;br /&gt;
Soll ein Job über SLURM eingereicht werden, so muss dies automatisch geschehen. Dazu kannn &amp;lt;code&amp;gt;apptainer exec&amp;lt;/code&amp;gt; genutzt werden. Es wird ein Bash-Script geschrieben welcher die Umgebungsvariablen exportiert (zum erweitern der Pfade) und benötigte Module lädt und dann eventuellen Code ausführt. Das Script muss hierbei ausführbar sein, woraus sich ein Aufruf wie folgt ergibt: &amp;lt;code&amp;gt;apptainer exec --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif executable_script.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein minimaler Container mit openSUSE 15.6 ist unter &amp;lt;code&amp;gt;/software/containers/opensuse-15.6.sif&amp;lt;/code&amp;gt; verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Bereitgestellte Container ===&lt;br /&gt;
Manche Programme werden von den Entwicklern bereits containerisiert angeboten. In diesem Fall sollte zuerst sichergestellt werden dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; gesetzt ist, idealerweise mit einem Verweis auf das Lustre wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
Viele Container werden als Docker-Image bereitgestellt und können direkt verwendet werden. Als Beispiel wird hier Reaction Mechanism Generator vom MIT genutzt.&lt;br /&gt;
&lt;br /&gt;
Auf der Docker-Hub Seite des Projekts wird folgender Befehl für die Nutzung von Docker bereitgestellt: ( &amp;lt;nowiki&amp;gt;https://hub.docker.com/r/reactionmechanismgenerator/rmg&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;docker pull reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;br /&gt;
Da wir Apptainer anbieten ist der Aufruf üb er die Befehlszeile nicht identisch, aber sehr ähnlich: ( &amp;lt;nowiki&amp;gt;https://apptainer.org/docs/user/main/cli/apptainer_pull.html&amp;lt;/nowiki&amp;gt; )&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer pull docker://reactionmechanismgenerator/rmg&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=87</id>
		<title>Containerisierung</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Containerisierung&amp;diff=87"/>
		<updated>2024-08-13T10:57:30Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Containerisierung - erste Version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Während im HPC-Bereich Software traditionnel direkt auf den Compute-Nodes ausgeführt wird, hat sich in den letzten Jahren auch die Nutzung eine Containerumgebung für bestimmte Anwendungsfâlle etabliert. Ein bekanntes Problem auf Compute-Clustern ist der Bedarf an einer neuerern glibc-Standardbibliothek welche durch Ihre tiefe Verwurzelung in Linux nicht ohne Weiteres angeboten werden kann. Die Containeriesrung kann es ermöglichen Software auszuführen welche sonst nicht gebaut werden kann oder nicht lauffähig ist.&lt;br /&gt;
&lt;br /&gt;
Docker als bekannteste Conainerisierung ist hierbei im HPC aufgrund der Root-Rechte auf einem von Nutzern geteilten HPC Cluster problematisch. Darum wurde eine Containerisierung am Lawrence Berkeley National Laboratory Entwickelt welche nur im Userspace läuft, heute unter dem Namen Apptainer bekannt ( &amp;lt;nowiki&amp;gt;https://apptainer.org/&amp;lt;/nowiki&amp;gt; ) - diese bieten wir den Nutzern auf unseren Ressourcen an. (Anmerkung: das Projekt startete ursprünglich unter dem Namen Singularity, Apptainer ist mit Singularity. SingularityCE its ein alternativer Fork.)&lt;br /&gt;
&lt;br /&gt;
Container für Apptainer können in Apptainer selbst gebaut werden, oder aber auch in Docker und dann konvertiert werden. Wer sich Container über die Docker-Route selbst bauen möchte, benötigt hierfür seinen eigenen Computer. Alternativ kann Apptainer auch Images direkt vom Docker-Hub herunterladen sofern ein Image zu VerFûgung steht.&lt;br /&gt;
&lt;br /&gt;
Wichtig is hierbei dass die Umgebungsvariable &amp;lt;code&amp;gt;APPTAINER_CACHEDIR&amp;lt;/code&amp;gt; zum Einstellen des Cache-Ordners so gewählt wird, dass sich dieses auf dem Lustre-Dateisystem befindet. Zum Bespiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;export APPTAINER_CACHEDIR=/lustre/department/username/apptainer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein Minimales openSUSE 15.6 als glibc Overlay ===&lt;br /&gt;
Bei einem unserer Nutzer befindet sich ein minimales openSUSE 15.6 als Overlay im Testbetrieb um eine neuere glibc anzubieten.&lt;br /&gt;
&lt;br /&gt;
Dazu wird ein Docker-Container mit openSUSE Leap 15.6 aufgesetzt, in welchem zusätlzich noch lua-lmod installiert wird. Letzteres wird benötigt um die Modules-Umgebung zu unterstützen. Wichtige Anmerkung, damit zypper korrekt funktioniert, benötigt es ein &amp;quot;clean&amp;quot; sowie &amp;quot;refresh&amp;quot;. Dies ist mit dem folgenden Dockerfile möglich:&lt;br /&gt;
 &amp;lt;code&amp;gt;# syntax=docker/dockerfile:1&lt;br /&gt;
 &lt;br /&gt;
 # use  Leap as a basis to reduce differences&lt;br /&gt;
 FROM opensuse/leap:15.6&lt;br /&gt;
 &lt;br /&gt;
 RUN zypper clean --all&lt;br /&gt;
 RUN zypper ref&lt;br /&gt;
 &lt;br /&gt;
 # the container needs to bring its own lmod along&lt;br /&gt;
 RUN zypper -n install lua-lmod&lt;br /&gt;
 &lt;br /&gt;
 RUN bash&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Container mit &amp;lt;code&amp;gt;docker build . -t opensuse-15.6&amp;lt;/code&amp;gt; gebaut werden.&lt;br /&gt;
&lt;br /&gt;
Ist der Docker-Container lokal aufgesetzt, kann dieser in eine Apptainer sif-Datei umgewandelt werden, und zwar wie folg: &amp;lt;code&amp;gt;apptainer build opensuse-15.6.sif docker-daemon://opensuse-15.6:latest&amp;lt;/code&amp;gt; Hier ist es wichtig entweder den Tag (fals vorhanden) oder &amp;lt;code&amp;gt;:latest&amp;lt;/code&amp;gt; anzugeben, sonst wird die Datei nicht erstellt.&lt;br /&gt;
&lt;br /&gt;
Die nun erstellte Datei ist der Container welcher sich nun in einer HPC-Umgebung - mit Nutzerrechtne - verwenden lässt. In einer interaktiven Session würde der Container mit &amp;lt;code&amp;gt;apptainer run opensuse-15.6.sif&amp;lt;/code&amp;gt; ausgeführt. Dies ist an sich zuerst nicht besonders nützlich da nur das Home-Verzeichnis benutzbar ist. Allerdings können weitere Verzeichnisse über &amp;lt;code&amp;gt;--bind&amp;lt;/code&amp;gt; eingebunden werden, wodurch sich im Container die gleichen Pfade wie außerhalb nutzen lassen. Das wäre hier:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Allerdings kann der Container dabei im Zweifelsfall nicht auf systemseitig angebotene Software oder Bibliotheken zugreifen. Diese lassen sich über einen Workaround ebenfalls einbinden. Der Pfad wird umgeschrieben und über die Umgebungsvariablen eingespielt. Hierbei ist es wichtig dass der Pfad zu der Systemsoftware ans Ende gehängt wird, denn die Pfade innerhalb des Containers sollen privilegiert werden.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel liese sich der Container wie folgt starten:&lt;br /&gt;
 &amp;lt;code&amp;gt;apptainer run --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif&amp;lt;/code&amp;gt;&lt;br /&gt;
Und danach könne die Umgebungsvariablen mit den folgenden Befehelen gesetzt werden:&lt;br /&gt;
 &amp;lt;code&amp;gt;## add the base software back in via path:&lt;br /&gt;
 export PATH=$PATH:/usr_base/local/bin:/usr_base/bin:/bin_base&lt;br /&gt;
 ## ensure base OS libraries are included&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr_base/lib:/usr_base/lib64&amp;lt;/code&amp;gt;&lt;br /&gt;
Dies geht so natürlich nur in einer interaktiven Session.&lt;br /&gt;
&lt;br /&gt;
Soll ein Job über SLURM eingereicht werden, so muss dies automatisch geschehen. Dazu kannn &amp;lt;code&amp;gt;apptainer exec&amp;lt;/code&amp;gt; genutzt werden. Es wird ein Bash-Script geschrieben welcher die Umgebungsvariablen exportiert (zum erweitern der Pfade) und benötigte Module lädt und dann eventuellen Code ausführt. Das Script muss hierbei ausführbar sein, woraus sich ein Aufruf wie folgt ergibt: &amp;lt;code&amp;gt;apptainer exec --bind /bin:/bin_base,/usr:/usr_base,/lustre,/software opensuse-15.6.sif executable_script.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein minimaler Container mit openSUSE 15.6 ist unter &amp;lt;code&amp;gt;/software/containers/opensuse-15.6.sif&amp;lt;/code&amp;gt; verfügbar.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=86</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=86"/>
		<updated>2024-08-13T10:56:46Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */  - Containerisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfügbare Software]]&lt;br /&gt;
* [[Containerisierung]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Jobs_einreichen_mit_SLURM&amp;diff=85</id>
		<title>Jobs einreichen mit SLURM</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Jobs_einreichen_mit_SLURM&amp;diff=85"/>
		<updated>2024-08-06T11:40:44Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Interaktive Sessions hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Einführung ====&lt;br /&gt;
Der Queue-Manager für HPC@HU ist SLURM ( siehe https://slurm.schedmd.com/quickstart.html )&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel kann wie folgt aussehen:&lt;br /&gt;
 &amp;lt;code&amp;gt;#!/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --ntasks=1                    # Run on a single CPU&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --mem=1gb                     # Job memory request&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --time=00:05:00               # Time limit hrs:min:sec&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --partition=std&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;#SBATCH --account=nutzername&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;&lt;br /&gt;
Hier steht hostname beispielhaft für einen Script oder die Ausführung einer Software für Berechnungen.&lt;br /&gt;
&lt;br /&gt;
Sollten im Script Variablen gesetzt werden, ist es wichtig dass dies erst nach der Definition des Jobs für SLURM geschieht.&lt;br /&gt;
&lt;br /&gt;
Nennt sich der Scirpt  &amp;lt;code&amp;gt;submit.bash&amp;lt;/code&amp;gt; , lässt sich dieser dann über &lt;br /&gt;
 sbatch submit.bash &lt;br /&gt;
beim Scheduler einreichen.&lt;br /&gt;
&lt;br /&gt;
Der aktuelle Status lässt sich über &lt;br /&gt;
 squeue &lt;br /&gt;
oder &lt;br /&gt;
 squeue -u Nutzername &lt;br /&gt;
abfragen.&lt;br /&gt;
&lt;br /&gt;
==== Parallelisierung mit mehreren Compute-Knoten: ====&lt;br /&gt;
Es ist möglich Berechnungen über mehrere Compute-Knoten laufen zu lassen. Hierbei sollte bedacht werden, dass Abhängig von den Virtuellen Maschinen in der aktuellen Konfiguration, die Kommunikation lokal auf einem Server oder über 100GBit/s Ethernet stattfindet.&lt;br /&gt;
&lt;br /&gt;
Hierbei ist die Integration von openMPI und SLURM von der Nutzerseite einfach zu handhaben. &lt;br /&gt;
&lt;br /&gt;
Um eine Berechnung über 2 Compute-Knoten laufen zu lassen, definiere ich zum Beispiel meine Anzahl an Threads sowie die Anzahl der Knoten:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=40                    # Run 40 threads/processes&lt;br /&gt;
 #SBATCH --ntasks-per-node=20           # Run 20 per compute node&lt;br /&gt;
 #SBATCH --nodes=2                      # Run on 2 nodes&lt;br /&gt;
 #SBATCH --mem=80gb                     # Job memory needed per node (per node is important!!)&lt;br /&gt;
 #SBATCH --time=96:00:00                # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=&amp;lt;user account&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach rufe ich mein Programm ganz gewöhnlich über mpirun auf. &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Ein Punkt den es zu beachten gibt, ist dass es notwendig ist die zulässigen Ports für die Kommunikation zwischen Nodes zu definieren, vor allem der minimale Port scheint hier wichtig zu sein. &lt;br /&gt;
&lt;br /&gt;
Dadurch sieht der Aufruf des Programms (hier xhpl) dann wie folgt aus:&lt;br /&gt;
 mpirun -np 40 --mca btl_tcp_port_min_v4 60001 --mca oob_tcp_dynamic_ports 60001-63000 xhpl&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Der Aufruf des Programms (hier xhpl) sieht dann wie folgt aus:&lt;br /&gt;
 mpirun -np 40 xhpl&lt;br /&gt;
&lt;br /&gt;
=== Interaktive Sessions ===&lt;br /&gt;
Es ist möglich interaktive Sessions auf den Compute Knoten zu starten. Hierbei müsse die Ressourcen direkt auf der Befehlszeile angefordert werden, zum Beispiel wie folgt:&lt;br /&gt;
 &amp;lt;code&amp;gt;srun --nodes=1 --exclusive --pty bash -i&amp;lt;/code&amp;gt;&lt;br /&gt;
oder auch&lt;br /&gt;
 &amp;lt;code&amp;gt;srun --nodes=1 --ntasks-per-node=1 --time=01:00:00 --pty bash -i&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Ressourcen: ====&lt;br /&gt;
Aktuell eingerichtete virtuelle Maschinen verfügen über je:&lt;br /&gt;
* 64 Threads (ûber 32 Kerne)&lt;br /&gt;
* 256GB Arbeitsspeicher&lt;br /&gt;
* knapp 1,5TB lokalen scratch&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=84</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=84"/>
		<updated>2024-08-01T07:13:14Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Erweiterung des FAQ, OpenMP mit openMPI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter [[Modules &amp;amp; Verfûgbare Software]] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenzbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie eventuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwendig bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei idealerweise schnell das Problem aufzeigen können, das beaknnte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;br /&gt;
&lt;br /&gt;
== OpenMP mit OpenMPI ==&lt;br /&gt;
Grundsätzlich soll die Nutzung von OpenMP in Kombination mit OpenMPI Môglich sein. Dadurch lassen sich das geringere &amp;quot;Overheaded&amp;quot; von &amp;quot;Shared Memory Processing&amp;quot; (Threading) mit der Skallierung des MPI-Multi-Process-Asatz kombinieren.&lt;br /&gt;
&lt;br /&gt;
In einem uns bekannten Fall gab es Probleme bei der Verwaltung der Threads in einem OpenSource Fortran-Programm.&lt;br /&gt;
&lt;br /&gt;
Sollten unerwartet Probleme auftreten, sind folgenden Variablen/Parameter zu überprüfen:&lt;br /&gt;
&lt;br /&gt;
Die Variable&amp;lt;code&amp;gt;OMP_NUM_THREADS&amp;lt;/code&amp;gt; welche die Anzahl der OpenMP-Threads festlegt sollte exportiert werden, sowie die Option &amp;lt;code&amp;gt;--bind-to none&amp;lt;/code&amp;gt; beim Aufruf mit OpenMPI genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Ein Aufruf in einem Script sähe dann für 4 Threads und zwei Prozesse wie folgt aus:&lt;br /&gt;
 &amp;lt;code&amp;gt;export OMP_NUM_THREADS=4&lt;br /&gt;
 mpirun --bind-to none -np 2 meine_Software&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=83</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=83"/>
		<updated>2024-07-31T13:22:31Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Programmiersprachen und Compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- AMD aocc&lt;br /&gt;
&lt;br /&gt;
- 4.2.0&lt;br /&gt;
&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=82</id>
		<title>Modules &amp; Verfügbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BCgbare_Software&amp;diff=82"/>
		<updated>2024-07-31T12:17:40Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Die Seite wurde neu angelegt: „==== Übersicht &amp;amp; Grundlagen zur Nuzung ==== Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.  HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.  Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.  (Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )  Wi…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=81</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=81"/>
		<updated>2024-07-31T12:17:28Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfügbare Software]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=80</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=80"/>
		<updated>2024-07-31T12:16:49Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfûgbare Software|Modules &amp;amp; Verfügbare Software]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=79</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=79"/>
		<updated>2024-07-29T11:18:13Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Link eingefügt, Korrektion von Rechtschreibfehlern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter [[Modules &amp;amp; Verfûgbare Software]] vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenzbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie eventuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwendig bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei idealerweise schnell das Problem aufzeigen können, das beaknnte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=78</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=FAQ&amp;diff=78"/>
		<updated>2024-07-29T11:15:51Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Erste Einträge im FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das zukünftige FAQ - welches sich, folgend der Erfahrung mit Nutzeranfragen, im Aufbau befindet:&lt;br /&gt;
&lt;br /&gt;
== Wie fordere Ich Software an ==&lt;br /&gt;
Dem Nutzer werden eine ganze Reihe von Bibliotheken sowie Software über die Modules-Umgebung zu Verfügung gestellt. Diese werden unter Modules und Verfügbare Software vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Sollte eine erwünschte Software oder Bibliothek fehlen, können wir diese (je nach Lizenbedingungen) nach einer Anfrage zu Verfügung stellen. Dies ist im großen und ganzen über eine formlose Email an hpc-support@hu-berlin.de möglich.&lt;br /&gt;
&lt;br /&gt;
Hierbei sind Links zu der Software hilfreich, sowie envetuell vorhandene Test-Jobs mit denen sich die Funktionalität testen lässt, inklusive der nötigen Befehle um die Software auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Wie melde Ich ein Softwareproblem ==&lt;br /&gt;
In den meisten Fällen werden Software und Bibliotheken mit Standardeinstellungen kompiliert und bereitgestellt. Dies ist häufig ausreichend.&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es allerdings notwending bestimmte Argumente oder &amp;quot;Flags&amp;quot; zu setzen, zum Beispiel um zum Beispiel CUDA-Support zu aktivieren. In solch einem Fall würde das Ausführen einer Bibliothek ohne CUDA-Support mit CUDA zu einem Fehler führen. (CUDA wird hier nur beispielhaft genutzt.)&lt;br /&gt;
&lt;br /&gt;
Sollte ein Fehler auftreten, sollte dieser möglichst vollumfänglich kopiert werde. Ferner sind die Eingaben von Interesse: wie wurde eine Software/Bibliothek genutzt, welche ist es, welche Argumente wurden genutzt. Idealerweise sollte auch eine Testdatei zu Verfügung gestellt werden damit das Problem nachvolzogen und reproduziert werden kann. Hierbei sollte die Testdatei ideallerweise schnell das Problem ausfzeigen können, das beaknnte &amp;quot;minimum working example&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dies kann dann über eine formlose Email an hpc-support@hu-berlin.de geschickt werden.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=77</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=77"/>
		<updated>2024-07-25T13:31:57Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */ Zusammenfassung von Datenspeicher und Dateistruktur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfûgbare Software]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=76</id>
		<title>Datenspeicher &amp; Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Datenspeicher_%26_Dateistruktur&amp;diff=76"/>
		<updated>2024-07-25T13:31:35Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Zusammenfassung der Seiten mit den Größen der Luafwerke sowie den Pfaden und Rechten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf dem Slurm-Cluster stehen auf jeder Maschine (Login- &amp;amp; Exec-Server) folgende Verzeichnisse zur Verfügung.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pfad&lt;br /&gt;
!Größe&lt;br /&gt;
!Sichtbarkeit&lt;br /&gt;
!Dauer&lt;br /&gt;
!Besonderheit&lt;br /&gt;
|-&lt;br /&gt;
|$HOME&lt;br /&gt;
|800GB&lt;br /&gt;
|global**&lt;br /&gt;
|unlimited&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|/tmp&lt;br /&gt;
|1.5TB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/dev/shm&lt;br /&gt;
|128GB&lt;br /&gt;
|local (Job)&lt;br /&gt;
|job-time&lt;br /&gt;
|autotmp_fs***&lt;br /&gt;
|-&lt;br /&gt;
|/lustre&lt;br /&gt;
|1.5PB&lt;br /&gt;
|global&lt;br /&gt;
|unlimited*&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Die Daten werden zur Zeit erst bei sehr hoher Belegung gelöscht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;Die Verzeichnisse sind über NFS gemountet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt;Die Verzeichnisse werden für jeden Job angelegt und gemountet. Andere Jobs sehen den Inhalt nicht. Verzeichnisse werden nach Job-Ende gelöscht.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Anforderungen bitten wir darum per Mail mit dem HPC-Support Kontakt aufzunehmen.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (&amp;lt;nowiki&amp;gt;https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /tmp erreichbar ist (sowie /var/tm und /dev/shm ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 &amp;lt;code&amp;gt;#!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zugriffsrechte: ==&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
 &amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: &amp;lt;nowiki&amp;gt;https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt;). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall bitten wir darum dass mit dem HPC-Team unter hpc-suppport@hu-berlin.de Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
== Externer Zugriff: ==&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( &amp;lt;nowiki&amp;gt;https://winscp.net/&amp;lt;/nowiki&amp;gt; ) möglich - auch in Verbindung mit putty ( &amp;lt;nowiki&amp;gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&amp;lt;/nowiki&amp;gt; ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=75</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Hauptseite&amp;diff=75"/>
		<updated>2024-07-25T13:30:47Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Slurm Cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Der Service &#039;&#039;&#039;&amp;quot;HPC@HU&#039;&#039;&#039;&amp;quot; stellt folgende Dienste zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
# Zentraler Slurm-Cluster&lt;br /&gt;
# Azimuth-Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beide Services bieten die Möglichkeit, die HPC-Infrastruktur der HU zu nutzen. Dabei bietet der Slurm-Cluster eine Vielzahl an Softwarepaketen und ist direkt mit dem HU-Account nutzbar, wohingegen der Azimuth-Service größere Flexibilität ermöglicht und u.a. auch andere Platformen wie JupyterHub zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
== Slurm Cluster ==&lt;br /&gt;
Der zentrale Slurm-Cluster ist nach Anmeldung per Mail direkt mit dem HU-Account nutzbar. Der Zugang erfolgt über ein Login-Knoten, &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen:&lt;br /&gt;
&lt;br /&gt;
* [[Erste Verbindung/Einloggen]]&lt;br /&gt;
* [[Slurm - Datenspeicher|Datenspeicher]]&lt;br /&gt;
* [[Testbetrieb - Dateistruktur]]&lt;br /&gt;
* [[Datenspeicher &amp;amp; Dateistruktur]]&lt;br /&gt;
* [[Modules &amp;amp; Verfûgbare Software]]&lt;br /&gt;
* [[Jobs einreichen mit SLURM]]&lt;br /&gt;
* [[Mailingliste und Support]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Azimuth ==&lt;br /&gt;
Azimuth bietet die Möglichkeit, verschiedene Plattformen, die man auch dem HPC-Bereich kennt, zu erstellen und zu verwalten. Dazu gehört u.a.:&lt;br /&gt;
&lt;br /&gt;
# Slurm-Cluster&lt;br /&gt;
# JupyterHub&lt;br /&gt;
# HPC-Workstation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die NutzerInnen können nach der Erstellung, die gewählte Plattform selbständig verwalten und erweitern. Dazu bekommen sie einen Administratorenzugang. Zur Zeit ist die Lebensdauer der  Plattform nicht begrenzt. &lt;br /&gt;
&lt;br /&gt;
Der Zugang zum Azimuth-Service erfolgt über den DV-Beauftragten der Einrichtung. &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki wurde installiert.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Verwendung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsparameter]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Häufige Fragen zu MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Mailingliste zu neuen Versionen von MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=74</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=74"/>
		<updated>2024-07-24T09:01:10Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Übersicht &amp;amp; Grundlagen zur Nuzung */  Update der Sektion Python, Hinzufügen des Textes über persönliche Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python, Anaconda, Conda, Mamba ====&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 &amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 &amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
===== Anaconda, Conda, Mamba =====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
 &amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Persönliche Module ====&lt;br /&gt;
Es ist möglich eigene Module in &amp;lt;code&amp;gt;lmod&amp;lt;/code&amp;gt; einzubinden, wie in der Dokumentation beschrieben: &amp;lt;nowiki&amp;gt;https://lmod.readthedocs.io/en/latest/020_advanced.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Môglichkeit besteht in dem Befehl &amp;lt;code&amp;gt;module use /path/to/personal/modulefiles&amp;lt;/code&amp;gt;, alternativ kann der Pfad zu privaten Moduldateien auch gleich zur Variable &amp;lt;code&amp;gt;$MODULEPATH&amp;lt;/code&amp;gt; hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen bezüglich des Aufbaus der Moduldateien finden sich in der lmod-Dokumentation auf der Webseite. Ebenso können die bereitgestellten Module unter &amp;lt;code&amp;gt;/software/modules&amp;lt;/code&amp;gt; als Inspiration dienen.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=73</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=73"/>
		<updated>2024-07-24T08:46:23Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Python */  update python section to be in line with internal documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da pip oder pip3 Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: &amp;lt;nowiki&amp;gt;https://docs.python.org/3/library/venv.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip3 install --target /Pfad/zum/ZielOrdner&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach kann der Ordner zur Variable PYTHONPATH hinzugefügt werden und wird dann von der Python-Umgebung erkannt.&lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
==== Anaconda, Conda, Mamba ====&lt;br /&gt;
Eine weitere Alternative ist die Nutzung einer Packetverwaltung in Python, so wie diese über Anaconda/conda/mamba angeboten wird, bei dieser ist der Funktionsumfang dann auch größer als be pip.&lt;br /&gt;
&lt;br /&gt;
Hierbei werden Nutzer und Nutzerinnen angehalten die Nutzungsbedingungen von vor allem Anaconda und Miniconda zu beachten. Aktuell (Juli 2024) wird Miniforge unter der BSD Lizenz angeboten und ist in in Bezug auf die Nutzung.&lt;br /&gt;
&lt;br /&gt;
Während eine zentrale Installation von conda und mamba über miniforge3 bereitgestellt wird, haben normale Nutzer keine Schreibrechte in dem zentralen Installationsordner. Standardmäßig wird conda/mamba daraufhin versuchen einen Ordner im Home-Verzeichnis anzulegen, alternativ kann ein expliziter Prefix wie folgt angegeben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;conda create --prefix /Pfad/zur/neuen/conda_Umgebung&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für typische Nutzertools wird darum empfohlen eine eigene Installation von miniforge aufzusetzen und eigene Umgebungen zu verwalten. Bei der Einrichtung muss dann nur darauf geachtet werden dass der Installationspfad korrekt eingegeben wird. Da eine solche Installation mit der Zeit recht groß werden kann, wird empfohlen dass lustre Dateisystem zu nutzen, der Pfad würde dementsprechend &amp;lt;code&amp;gt;/lustre/&amp;lt;Fakultät&amp;gt;/&amp;lt;Benutzername&amp;gt;&amp;lt;/code&amp;gt; lauten.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die Umgebung initiialisiert und die .bashrc Datei angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben (!!!). Dies ist beim benutzen von mehreren Versionen potenziell problematisch und erfordert eine manuelle Anpassung der Skripte sowie potenziell deren Auslagerung in individuelle Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Für Nutzer: ====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=72</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=72"/>
		<updated>2024-07-24T08:44:43Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Programmiersprachen und Compiler */  remove miniconda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: https://docs.python.org/3/library/venv.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 pip3 install --target /Pfad/zum/ZielOrdner&lt;br /&gt;
Danach kann der Order zur Variable &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; hinzugefügt werden und wird dann von der Python-Umgebung erkannt. &lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Alternative ist die Nutzung von &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt;, welches in der Form von miniconda angeboten wird. Mit &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt; lässt sich ebenfalls eine Umgebung erstellen, wobei der Funktionsumfang umfangreicher als bei &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; ist, für eine Umgebung in einem bestimmten Pfad lautet der Befehl dann wir folgt:&lt;br /&gt;
 conda create --prefix /Pfad/zur/neuen/conda_Umgebung&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die umgebund initiialisiert und die .bashrc Datei wird angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben &#039;&#039;&#039;(!!!)&#039;&#039;&#039;. Dies ist beim benutzen von mehreren Versionen potenziell problematisch.&lt;br /&gt;
&lt;br /&gt;
Wenn von Nutzerseite ein conda-Ordner angelegt wird, sollte bedacht werden, dass diese im Laufe der Zeit mit der Installation von Paketen recht groß werden können.&lt;br /&gt;
&lt;br /&gt;
===== Für Nutzer: =====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=71</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=71"/>
		<updated>2024-07-24T07:52:48Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Übersicht &amp;amp; Grundlagen zur Nuzung */ Link zu weiterer Dokumentation für Nutzer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniconda3&lt;br /&gt;
&lt;br /&gt;
  - 24.3.0-0&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: https://docs.python.org/3/library/venv.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 pip3 install --target /Pfad/zum/ZielOrdner&lt;br /&gt;
Danach kann der Order zur Variable &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; hinzugefügt werden und wird dann von der Python-Umgebung erkannt. &lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Alternative ist die Nutzung von &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt;, welches in der Form von miniconda angeboten wird. Mit &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt; lässt sich ebenfalls eine Umgebung erstellen, wobei der Funktionsumfang umfangreicher als bei &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; ist, für eine Umgebung in einem bestimmten Pfad lautet der Befehl dann wir folgt:&lt;br /&gt;
 conda create --prefix /Pfad/zur/neuen/conda_Umgebung&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die umgebund initiialisiert und die .bashrc Datei wird angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben &#039;&#039;&#039;(!!!)&#039;&#039;&#039;. Dies ist beim benutzen von mehreren Versionen potenziell problematisch.&lt;br /&gt;
&lt;br /&gt;
Wenn von Nutzerseite ein conda-Ordner angelegt wird, sollte bedacht werden, dass diese im Laufe der Zeit mit der Installation von Paketen recht groß werden können.&lt;br /&gt;
&lt;br /&gt;
===== Für Nutzer: =====&lt;br /&gt;
Für Nutzer von HPC@HU finden sich unter &amp;lt;code&amp;gt;/software/modules/software.md&amp;lt;/code&amp;gt; weitere Informationen über die verfügbare Software und wie diese gebaut/konfiguriert wurde.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=70</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=70"/>
		<updated>2024-07-24T07:12:44Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Programmiersprachen */  Update der Liste von verfügbarer Software&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen und Compiler =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- costa&lt;br /&gt;
&lt;br /&gt;
2.2.2&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- gsl&lt;br /&gt;
&lt;br /&gt;
- 2.8&lt;br /&gt;
&lt;br /&gt;
- hdf5&lt;br /&gt;
&lt;br /&gt;
- 1.14.4.3&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- libunwind&lt;br /&gt;
&lt;br /&gt;
- 1.8.1&lt;br /&gt;
&lt;br /&gt;
- libxc&lt;br /&gt;
&lt;br /&gt;
- 6.6.2&lt;br /&gt;
&lt;br /&gt;
- magma&lt;br /&gt;
&lt;br /&gt;
- 2.8.8&lt;br /&gt;
&lt;br /&gt;
- miniconda3&lt;br /&gt;
&lt;br /&gt;
  - 24.3.0-0&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- sirius&lt;br /&gt;
&lt;br /&gt;
- 7.5.2&lt;br /&gt;
&lt;br /&gt;
- spla&lt;br /&gt;
&lt;br /&gt;
- 1.6.1&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
- szip&lt;br /&gt;
&lt;br /&gt;
- 2.1.1&lt;br /&gt;
&lt;br /&gt;
- umpire&lt;br /&gt;
&lt;br /&gt;
- 2024.02.01&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: https://docs.python.org/3/library/venv.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 pip3 install --target /Pfad/zum/ZielOrdner&lt;br /&gt;
Danach kann der Order zur Variable &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; hinzugefügt werden und wird dann von der Python-Umgebung erkannt. &lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Alternative ist die Nutzung von &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt;, welches in der Form von miniconda angeboten wird. Mit &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt; lässt sich ebenfalls eine Umgebung erstellen, wobei der Funktionsumfang umfangreicher als bei &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; ist, für eine Umgebung in einem bestimmten Pfad lautet der Befehl dann wir folgt:&lt;br /&gt;
 conda create --prefix /Pfad/zur/neuen/conda_Umgebung&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die umgebund initiialisiert und die .bashrc Datei wird angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben &#039;&#039;&#039;(!!!)&#039;&#039;&#039;. Dies ist beim benutzen von mehreren Versionen potenziell problematisch.&lt;br /&gt;
&lt;br /&gt;
Wenn von Nutzerseite ein conda-Ordner angelegt wird, sollte bedacht werden, dass diese im Laufe der Zeit mit der Installation von Paketen recht groß werden können.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=69</id>
		<title>Modules &amp; Verfûgbare Software</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Modules_%26_Verf%C3%BBgbare_Software&amp;diff=69"/>
		<updated>2024-07-22T13:56:29Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Programmiersprachen */ update software list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Übersicht &amp;amp; Grundlagen zur Nuzung ====&lt;br /&gt;
Die bereitgestellten Compute-Knoten nutzen Linux, genaugenommen ein OpenSUSE.&lt;br /&gt;
&lt;br /&gt;
HPC-typisch wird zentral Software bereitgestellt. Verfügbare Software wird über eine Modulumgebung geladen.&lt;br /&gt;
&lt;br /&gt;
Welche Software verfügbar ist, lässt sich über &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;module spider &amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; in Erfahrung bringen.&lt;br /&gt;
&lt;br /&gt;
(Online Anleitung für lmod https://lmod.readthedocs.io/en/latest/010_user.html )&lt;br /&gt;
&lt;br /&gt;
Wir bieten aktuell drei Gruppe von Software an:&lt;br /&gt;
&lt;br /&gt;
# /hu &amp;quot;Von Uns&amp;quot; kompilierte Software welche zentral bereitgestellt wird.&lt;br /&gt;
# /all Über EasyBuild ( siehe http://docs.easybuild.io/what-is-easybuild/ ) bereitgestellte Software&lt;br /&gt;
# /intel Software welche mit Installer ausgeliefert wurde (wie zum Beispiel Intel OneAPI) &lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl von Software sollte darauf geachtet werden dass die Groß- und Kleinschreibung von Bedeutung ist, sprich gcc ist nicht gleich GCC.&lt;br /&gt;
&lt;br /&gt;
Die finalen Pfade sind aktuell auch nicht endgültig festgelegt und können sich noch verändern.&lt;br /&gt;
&lt;br /&gt;
Ferner wird empfohlen sich nicht auf die Defaults zu verlassen und die Version einer Software explizit auszuwählen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anwendungsbeispiel:&lt;br /&gt;
&lt;br /&gt;
Die verfügbaren openmpi Versionen lassen sich mit dem Befehl &lt;br /&gt;
 module spider openmpi&lt;br /&gt;
erfragen&lt;br /&gt;
&lt;br /&gt;
Ist daraufhin die Version erwünscht, lässt sich diese mit dem Befehl &lt;br /&gt;
 module load openmpi/5.0.3-gcc14.1.0&lt;br /&gt;
laden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aktuell geladene Module lassen sich mit &lt;br /&gt;
 module list&lt;br /&gt;
anzeigen, während &lt;br /&gt;
 module purge&lt;br /&gt;
alle geladenen Module &amp;quot;entlädt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird die verfügbare Software noch ausgebaut, wodurch sich die Liste relativ schnell entwickelt. Für einen Überblick der aktuell verfügbaren Software wird gebeten diese direkt auf dem System abzufragen. Vor allem mit EasyBuild installierte Software bringt standardmäßig sehr viele kleine Abhängigkeiten mit.&lt;br /&gt;
&lt;br /&gt;
Einen ersten Überblick über einige der wichtigeren Pakete (als Eigenkompilation) bietet die folgende Liste:&lt;br /&gt;
&lt;br /&gt;
==== Verfügbare Software ====&lt;br /&gt;
&lt;br /&gt;
===== Programmiersprachen =====&lt;br /&gt;
- gcc&lt;br /&gt;
&lt;br /&gt;
  -  9.5.0&lt;br /&gt;
&lt;br /&gt;
  - 10.5.0&lt;br /&gt;
&lt;br /&gt;
  - 11.4.0&lt;br /&gt;
&lt;br /&gt;
  - 12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 14.1.0&lt;br /&gt;
&lt;br /&gt;
- Julia&lt;br /&gt;
&lt;br /&gt;
  - 1.10.3&lt;br /&gt;
&lt;br /&gt;
- python&lt;br /&gt;
&lt;br /&gt;
  - 3.8.19&lt;br /&gt;
&lt;br /&gt;
  - 3.9.19&lt;br /&gt;
&lt;br /&gt;
  - 3.10.14&lt;br /&gt;
&lt;br /&gt;
  - 3.11.9&lt;br /&gt;
&lt;br /&gt;
  - 3.12.3&lt;br /&gt;
&lt;br /&gt;
- QT (opensource)&lt;br /&gt;
&lt;br /&gt;
  - 5.15.14&lt;br /&gt;
&lt;br /&gt;
- R&lt;br /&gt;
&lt;br /&gt;
  - 4.4.0&lt;br /&gt;
&lt;br /&gt;
- ruby&lt;br /&gt;
&lt;br /&gt;
- 3.3&lt;br /&gt;
&lt;br /&gt;
===== Bibliotheken und Tools =====&lt;br /&gt;
- AMD AOCL&lt;br /&gt;
&lt;br /&gt;
- 4.2.0 gcc &lt;br /&gt;
&lt;br /&gt;
- 4.2.0 aocl&lt;br /&gt;
&lt;br /&gt;
- apache-maven&lt;br /&gt;
&lt;br /&gt;
- 3.9.8&lt;br /&gt;
&lt;br /&gt;
- bash&lt;br /&gt;
&lt;br /&gt;
- 5.2.21&lt;br /&gt;
&lt;br /&gt;
- bc&lt;br /&gt;
&lt;br /&gt;
- 1.0.7&lt;br /&gt;
&lt;br /&gt;
- bison&lt;br /&gt;
&lt;br /&gt;
  - 3.8.2&lt;br /&gt;
&lt;br /&gt;
- BLIS&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- block2&lt;br /&gt;
&lt;br /&gt;
  - p0.5.3rc13 openmpi/5.0.3 gcc/14.1.0 OpenBLAS/0.3.26&lt;br /&gt;
&lt;br /&gt;
- boost&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 1.85 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- Catch2&lt;br /&gt;
&lt;br /&gt;
- 3.6.0 cmake/3.29.3&lt;br /&gt;
&lt;br /&gt;
- cmake&lt;br /&gt;
&lt;br /&gt;
- 3.16.9&lt;br /&gt;
&lt;br /&gt;
- 3.20.6&lt;br /&gt;
&lt;br /&gt;
- 3.27.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.2&lt;br /&gt;
&lt;br /&gt;
- 3.29.3&lt;br /&gt;
&lt;br /&gt;
- cuda&lt;br /&gt;
&lt;br /&gt;
- 10&lt;br /&gt;
&lt;br /&gt;
- 11&lt;br /&gt;
&lt;br /&gt;
- 12.0&lt;br /&gt;
&lt;br /&gt;
- 12&lt;br /&gt;
&lt;br /&gt;
- 12.1&lt;br /&gt;
&lt;br /&gt;
- 12.2&lt;br /&gt;
&lt;br /&gt;
- 12.3&lt;br /&gt;
&lt;br /&gt;
- 12.4&lt;br /&gt;
&lt;br /&gt;
- 12.4.1&lt;br /&gt;
&lt;br /&gt;
- crest&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc13.2.0 openmpi/5.0.3-gcc13.2.0 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 3.0.1 cmake/3.29.3 OpenBLAS/0.3.26-gcc14.1.0 openmpi/5.0.3-gcc14.1.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
fftw&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- flex &lt;br /&gt;
&lt;br /&gt;
- 2.6.4 &lt;br /&gt;
&lt;br /&gt;
- fmt &lt;br /&gt;
&lt;br /&gt;
- 10.2.1&lt;br /&gt;
&lt;br /&gt;
- Intel OneApi&lt;br /&gt;
&lt;br /&gt;
- 2024.1&lt;br /&gt;
&lt;br /&gt;
- lapack&lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 3.12.0 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- libflame&lt;br /&gt;
&lt;br /&gt;
  - 4.2.0&lt;br /&gt;
&lt;br /&gt;
- miniconda3&lt;br /&gt;
&lt;br /&gt;
  - 24.3.0-0&lt;br /&gt;
&lt;br /&gt;
- miniforge3&lt;br /&gt;
&lt;br /&gt;
- 24.1.2-0&lt;br /&gt;
&lt;br /&gt;
- mpich&lt;br /&gt;
&lt;br /&gt;
  - 3.2.0 gcc/12.3.0&lt;br /&gt;
&lt;br /&gt;
  - 3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.1.3 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 4.2.1 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenBLAS&lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/13.2.0 &lt;br /&gt;
&lt;br /&gt;
  - 0.3.26 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenCoarrays&lt;br /&gt;
&lt;br /&gt;
  - 2.9.3 mpich/3.3.0 gcc/12.3.0 &lt;br /&gt;
&lt;br /&gt;
  - 2.10.2 openmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- OpenMPI&lt;br /&gt;
&lt;br /&gt;
  - 4.1.6 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
-  patch&lt;br /&gt;
&lt;br /&gt;
- 2.7.6&lt;br /&gt;
&lt;br /&gt;
- proj&lt;br /&gt;
&lt;br /&gt;
  - 9.4.1 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- scalapack&lt;br /&gt;
&lt;br /&gt;
- 2.2.0&lt;br /&gt;
&lt;br /&gt;
- spglib&lt;br /&gt;
&lt;br /&gt;
  - 2.4.0 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- swig&lt;br /&gt;
&lt;br /&gt;
  - 4.2.1&lt;br /&gt;
&lt;br /&gt;
===== Software =====&lt;br /&gt;
- gdal&lt;br /&gt;
&lt;br /&gt;
  - 3.9.0 gcc/14.1.0 proj/9.4.1 swig/4.2.1 python/3.12.3&lt;br /&gt;
&lt;br /&gt;
- hadoopp&lt;br /&gt;
&lt;br /&gt;
- 3.4.0&lt;br /&gt;
&lt;br /&gt;
- hpl&lt;br /&gt;
&lt;br /&gt;
  - v2.3&lt;br /&gt;
&lt;br /&gt;
- ior&lt;br /&gt;
&lt;br /&gt;
  - 4.0.0 openmpi/5.0.3 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
- ncdu&lt;br /&gt;
&lt;br /&gt;
  - 1.20&lt;br /&gt;
&lt;br /&gt;
- OpenFOAM&lt;br /&gt;
&lt;br /&gt;
  - 11&lt;br /&gt;
&lt;br /&gt;
  - v2312&lt;br /&gt;
&lt;br /&gt;
- ORCA&lt;br /&gt;
&lt;br /&gt;
  - 5.0.4&lt;br /&gt;
&lt;br /&gt;
- quantum-espresso&lt;br /&gt;
&lt;br /&gt;
  - 7.3.1 OpenBLAS/0.3.26 fftw/3.3.10 penmpi/5.0.3 gcc/14.1.0 &lt;br /&gt;
&lt;br /&gt;
- xtb&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/13.2.0&lt;br /&gt;
&lt;br /&gt;
  - 6.7.0 lapack/3.12 OpenBLAS/0.3.26 gcc/14.1.0&lt;br /&gt;
&lt;br /&gt;
===== Fehlt was? =====&lt;br /&gt;
Da es sich beim HPC um ein Linux System handelt, ist es möglich eigene Software zu entwickeln. Die Einbindung von Software findet überwiegend über zwei grundlegende Variablen statt. &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; für ausführbare Binärdateien sowie &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; für verlinkte Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
Über ein &amp;lt;code&amp;gt;export PATH=/new/path:$PATH&amp;lt;/code&amp;gt; sowie &amp;lt;code&amp;gt;export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt; lassen sich beide erweitern. Diese Änderung gilt bis zum verlassen der Shell - oder ist &amp;quot;semi-permanent&amp;quot; wenn der Export in die .profile oder .bashrc Datei eingetragen wird.&lt;br /&gt;
&lt;br /&gt;
Hierbei gilt es ferner zu beachten dass die Reihenfolge der Auflistung der verschiedenen Pfade von Bedeutung ist: die zuerst gefundene Variante wird genommen.&lt;br /&gt;
&lt;br /&gt;
Obschon es möglich ist eine Software zu kompilieren, bitten wir darum bei fehlender freier Software nach Möglichkeit zuerst eine Anfrage an [mailto:hpc-support@hu-berlin.de hpc-support@hu-berlin.de] zu schicken, damit diese zentral für Alle zugänglich ist.&lt;br /&gt;
&lt;br /&gt;
Bei Anfragen zu kommerzieller Software, internen Eigenentwicklungen oder anderweitig speziell lizenzierter Software stehen wir ebenfalls gerne zu Verfügung.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
Python wird in vielen Projekten eingesetzt. Die Nutzung von Python ist nicht immer problemfrei, darum gibt es folgend einige Empfehlungen für die Nutzung von Python, welche das Risiko von Problemen sowie die Problembeseitigung erleichtern.&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen sollten Python Anwendungen in einer virtuellen Umgebung entwickelt und ausgeführt werden. Diese wird nativ von Python unterstützt und ermöglicht es Pakete auf einer bestimmten Version zu halten sowie eventuelle Inkompatibilitäten zwischen verschiedenen Projekten zu vermeiden. Ferner ist es möglich bei Problemen eine virtuelle Umgebung zu löschen und dadurch alte Pakete Rückstandslos zu entfernen. Das ist vor allem interessant da &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt; Abhängigkeiten installieren kann, aber im Gegensatz zu typischen Linux-Paketmanagern Abhängigkeiten nicht automatisch deinstallieren kann.&lt;br /&gt;
&lt;br /&gt;
Eine virtuelle Umgebung kann wie folgt erstellt werden (mit einem relativen oder absoluten Pfad):&lt;br /&gt;
 python -m venv /Pfad/zur/neuen/virtuellen_Umgebung&lt;br /&gt;
Mehr dazu auf in der Dokumentation von Python: https://docs.python.org/3/library/venv.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sollte es aus bestimmten Gründen nicht möglich sein eine virtuelle Umgebung zu nutzen, kann man mit pip Pakete in einem bestimmten Ordner installieren.&lt;br /&gt;
 pip3 install --target /Pfad/zum/ZielOrdner&lt;br /&gt;
Danach kann der Order zur Variable &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; hinzugefügt werden und wird dann von der Python-Umgebung erkannt. &lt;br /&gt;
&lt;br /&gt;
Die virtuellen Umgebungen sind im Allgemeinen jedoch zu präferieren.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Alternative ist die Nutzung von &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt;, welches in der Form von miniconda angeboten wird. Mit &amp;lt;code&amp;gt;conda&amp;lt;/code&amp;gt; lässt sich ebenfalls eine Umgebung erstellen, wobei der Funktionsumfang umfangreicher als bei &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; ist, für eine Umgebung in einem bestimmten Pfad lautet der Befehl dann wir folgt:&lt;br /&gt;
 conda create --prefix /Pfad/zur/neuen/conda_Umgebung&lt;br /&gt;
Mit &amp;lt;code&amp;gt;conda init&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;mamba init&amp;lt;/code&amp;gt; wird die umgebund initiialisiert und die .bashrc Datei wird angepasst. Dabei werden eventuell existierende conda/mamba Konfigurationen überschrieben &#039;&#039;&#039;(!!!)&#039;&#039;&#039;. Dies ist beim benutzen von mehreren Versionen potenziell problematisch.&lt;br /&gt;
&lt;br /&gt;
Wenn von Nutzerseite ein conda-Ordner angelegt wird, sollte bedacht werden, dass diese im Laufe der Zeit mit der Installation von Paketen recht groß werden können.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Erste_Verbindung/Einloggen&amp;diff=68</id>
		<title>Erste Verbindung/Einloggen</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Erste_Verbindung/Einloggen&amp;diff=68"/>
		<updated>2024-07-22T10:11:53Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: Verweis darauf dass der Login Knoten eine geteilte Ressource darstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
HPC@HU ist aktuell in Entwicklung im Testbetrieb eingeschränkt nutzbar.&lt;br /&gt;
&lt;br /&gt;
Benutzerkonten für Forschende können von den EDV-Beauftragten der einzelnen Fachbereiche über hpc-support@hu-berlin.de angefordert werden.&lt;br /&gt;
&lt;br /&gt;
Sobald ein Nutzer für den HPC-Testbetrieb freigeschaltet wurde, ist es möglich sich über den HU-Account per SSH einzuloggen.&lt;br /&gt;
&lt;br /&gt;
Der Login Knoten befindet sich im Humboldt Universität internen Netz unter der IP-Adresse &amp;lt;code&amp;gt;172.28.105.227&amp;lt;/code&amp;gt; und ein Login sähe damit wie folgt aus:&lt;br /&gt;
 ssh -C AccountName@172.28.105.227&lt;br /&gt;
Daraufhin wird zur Eingabe der Passworts aufgefordert. Typisch für SSH ist die Eingabe nicht sichtbar und lässt sich bei einem Fehler mit &amp;lt;code&amp;gt;strg+u&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;ctrl+u&amp;lt;/code&amp;gt;) löschen.&lt;br /&gt;
&lt;br /&gt;
Nach dem ersten Login mit einem Benutzernamen  und Passwort wird das home-Verzeichnis erstellt und es ist möglich einen SSH-Schlüssel für zukünftige Verbindungen zu hinterlegen.&lt;br /&gt;
&lt;br /&gt;
Beim mobilen Arbeiten ist der Zugriff nur über das virtuelle private Netzwerk (VPN) der Humboldt Universität möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es ist anzumerken dass der Login-Knoten eine &amp;quot;shared ressource&amp;quot; darstellt, dessen Aufgabe darin besteht Nutzern eine Schnittstelle fûr das Einreichen an Jobs beim Scheduler zu bieten, sowie eine Möglichkeit bieten relativ einfach und schnell Programme zu kompilieren oder Ergebnisse zu visualisieren.. Der Login-Knoten soll nicht für langlaufende Berechnungen genutzt werden, welche Nutzer und Nutzerinnen der HPC-Ressourcen beeinträchtigt. Sollten langlaufende Berechnungen auf dem Login Knoten gestartet werden, werden diese gegebenenfalls von dem Administrations-Team beendet.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=67</id>
		<title>Testbetrieb - Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=67"/>
		<updated>2024-07-22T07:47:28Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Zugriffsrechte: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Dateistruktur: ====&lt;br /&gt;
Im Rahmen des Testbetriebs sind die endgültigen Dateipfade sowie die endgültigen Dateisysteme noch nicht vollständig konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Langfristig wird ein Lustre als zentrales &amp;quot;scratch&amp;quot; bereitgestellt, dieses ist aber aktuell noch nicht verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Testbetrieb sind folgende Laufwerke verfügbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; als lokaler scratch, über &#039;auto_tmpdir&#039;, etwa 1TB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; als geteiltes zentrales Netzwerklaufwerk mit etwa 1.5PB auf das alle Knoten direkt zugreifen können. Es werden automatisch Unterordner für Fachbereiche und Nutzer, ähnlich &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; angelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/home/&amp;lt;Fachbereich&amp;gt;/&amp;lt;UserID&amp;gt;&amp;lt;/code&amp;gt; für &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; als zentrales &amp;quot;home directory&amp;quot; auf das per NFS zugegriffen wird. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;code&amp;gt;/scratch&amp;lt;/code&amp;gt; als lokaler scratch (1TB, bitte nicht &#039;zumüllen&#039; und das Löschen von temporären Dateien im Script einplanen!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/globalscratch&amp;lt;/code&amp;gt; als Netzwerklaufwerk welches von mehreren Virtuellen Maschinen gleichzeitig erreicht werden kann (langsame Leistung)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen im Testbetrieb das lokale Laufwerk zu privilegieren. Auch im Regelbetrieb dürfte dies aufgrund von Latenzen der bevorzugte Pfad sein.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /&amp;lt;code&amp;gt;tmp&amp;lt;/code&amp;gt; erreichbar ist (sowie &amp;lt;code&amp;gt;/var/tm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/dev/shm&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
===== Zugriffsrechte: =====&lt;br /&gt;
&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;nfs4_getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;nf4_setfacl&amp;lt;/code&amp;gt; setzen und über &amp;lt;code&amp;gt;nfs4_editfacl&amp;lt;/code&amp;gt; editieren.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich die Rechte über den Benutzernamen zu setzen, dabei muss dieser als &amp;lt;code&amp;gt;benutzername@localdomain&amp;lt;/code&amp;gt; eingegeben werden.--&amp;gt;&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Alternativ kann die ID des Nutzers oder einer Gruppe genutzt werden, welche sich über &amp;lt;code&amp;gt;id -u benutzername&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;getent group gruppenname&amp;lt;/code&amp;gt; abfragen lassen.&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 nfs4_setfacl -a &amp;quot;A::benutzername@localdomain:RX&amp;quot; test-datei&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind, mit den Optionen &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; werden die Zugriffsrechte auf neu erstellte Dateien und Unterverzeichnisse vererbt.&lt;br /&gt;
 nfs4_setfacl -R -a &amp;quot;A:df:benutzername@localdomain:rx&amp;quot; pfad-zur/test-datei&lt;br /&gt;
Weiterführende Informationen zu  Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: https://www.osc.edu/book/export/html/4523--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu  Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&amp;lt;!-- Übersicht: https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (500) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (700). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall  bitten wir darum dass mit dem HPC-Team unter [mailto:hpc-suppport@hu-berlin.de hpc-suppport@hu-berlin.de] Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
==== Externer Zugriff: ====&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( https://winscp.net/ ) möglich - auch in Verbindung mit putty ( https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=66</id>
		<title>Testbetrieb - Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=66"/>
		<updated>2024-07-22T07:47:10Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Zugriffsrechte: */  - Umstellung von nfs4 acl auf posix acl welche nun angewendet werden sollten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Dateistruktur: ====&lt;br /&gt;
Im Rahmen des Testbetriebs sind die endgültigen Dateipfade sowie die endgültigen Dateisysteme noch nicht vollständig konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Langfristig wird ein Lustre als zentrales &amp;quot;scratch&amp;quot; bereitgestellt, dieses ist aber aktuell noch nicht verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Testbetrieb sind folgende Laufwerke verfügbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; als lokaler scratch, über &#039;auto_tmpdir&#039;, etwa 1TB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; als geteiltes zentrales Netzwerklaufwerk mit etwa 1.5PB auf das alle Knoten direkt zugreifen können. Es werden automatisch Unterordner für Fachbereiche und Nutzer, ähnlich &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; angelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/home/&amp;lt;Fachbereich&amp;gt;/&amp;lt;UserID&amp;gt;&amp;lt;/code&amp;gt; für &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; als zentrales &amp;quot;home directory&amp;quot; auf das per NFS zugegriffen wird. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;code&amp;gt;/scratch&amp;lt;/code&amp;gt; als lokaler scratch (1TB, bitte nicht &#039;zumüllen&#039; und das Löschen von temporären Dateien im Script einplanen!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/globalscratch&amp;lt;/code&amp;gt; als Netzwerklaufwerk welches von mehreren Virtuellen Maschinen gleichzeitig erreicht werden kann (langsame Leistung)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen im Testbetrieb das lokale Laufwerk zu privilegieren. Auch im Regelbetrieb dürfte dies aufgrund von Latenzen der bevorzugte Pfad sein.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /&amp;lt;code&amp;gt;tmp&amp;lt;/code&amp;gt; erreichbar ist (sowie &amp;lt;code&amp;gt;/var/tm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/dev/shm&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
===== Zugriffsrechte: =====&lt;br /&gt;
&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;setfacl&amp;lt;/code&amp;gt; setzen oder modifizieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;nfs4_getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;nf4_setfacl&amp;lt;/code&amp;gt; setzen und über &amp;lt;code&amp;gt;nfs4_editfacl&amp;lt;/code&amp;gt; editieren.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich die Rechte über den Benutzernamen zu setzen, dabei muss dieser als &amp;lt;code&amp;gt;benutzername@localdomain&amp;lt;/code&amp;gt; eingegeben werden.--&amp;gt;&lt;br /&gt;
Die access control lists werden für den jeweiligen Benutzernamen gesetzt, welcher hier die User-ID des HU-Accounts ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Alternativ kann die ID des Nutzers oder einer Gruppe genutzt werden, welche sich über &amp;lt;code&amp;gt;id -u benutzername&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;getent group gruppenname&amp;lt;/code&amp;gt; abfragen lassen.&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 nfs4_setfacl -a &amp;quot;A::benutzername@localdomain:RX&amp;quot; test-datei&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind, mit den Optionen &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; werden die Zugriffsrechte auf neu erstellte Dateien und Unterverzeichnisse vererbt.&lt;br /&gt;
 nfs4_setfacl -R -a &amp;quot;A:df:benutzername@localdomain:rx&amp;quot; pfad-zur/test-datei&lt;br /&gt;
Weiterführende Informationen zu  Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: https://www.osc.edu/book/export/html/4523--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:benutzername:r test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind.&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -Rm u:benutzername:r pfad-zur/test-datei&amp;lt;/code&amp;gt;&lt;br /&gt;
Weiterführende Informationen zu  Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls/howto_use_posix_acl&lt;br /&gt;
&amp;lt;!-- Übersicht: https://www.osc.edu/resources/getting_started/howto/howto_manage_access_control_list_acls --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (500) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (700). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall  bitten wir darum dass mit dem HPC-Team unter [mailto:hpc-suppport@hu-berlin.de hpc-suppport@hu-berlin.de] Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
==== Externer Zugriff: ====&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( https://winscp.net/ ) möglich - auch in Verbindung mit putty ( https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
	<entry>
		<id>https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=65</id>
		<title>Testbetrieb - Dateistruktur</title>
		<link rel="alternate" type="text/html" href="https://wikis.hu-berlin.de/hpc/w/index.php?title=Testbetrieb_-_Dateistruktur&amp;diff=65"/>
		<updated>2024-07-19T14:41:27Z</updated>

		<summary type="html">&lt;p&gt;Mielczad: /* Zugriffsrechte: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Dateistruktur: ====&lt;br /&gt;
Im Rahmen des Testbetriebs sind die endgültigen Dateipfade sowie die endgültigen Dateisysteme noch nicht vollständig konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Langfristig wird ein Lustre als zentrales &amp;quot;scratch&amp;quot; bereitgestellt, dieses ist aber aktuell noch nicht verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Testbetrieb sind folgende Laufwerke verfügbar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; als lokaler scratch, über &#039;auto_tmpdir&#039;, etwa 1TB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/lustre&amp;lt;/code&amp;gt; als geteiltes zentrales Netzwerklaufwerk mit etwa 1.5PB auf das alle Knoten direkt zugreifen können. Es werden automatisch Unterordner für Fachbereiche und Nutzer, ähnlich &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; angelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/home/&amp;lt;Fachbereich&amp;gt;/&amp;lt;UserID&amp;gt;&amp;lt;/code&amp;gt; für &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; als zentrales &amp;quot;home directory&amp;quot; auf das per NFS zugegriffen wird. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;code&amp;gt;/scratch&amp;lt;/code&amp;gt; als lokaler scratch (1TB, bitte nicht &#039;zumüllen&#039; und das Löschen von temporären Dateien im Script einplanen!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/globalscratch&amp;lt;/code&amp;gt; als Netzwerklaufwerk welches von mehreren Virtuellen Maschinen gleichzeitig erreicht werden kann (langsame Leistung)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen im Testbetrieb das lokale Laufwerk zu privilegieren. Auch im Regelbetrieb dürfte dies aufgrund von Latenzen der bevorzugte Pfad sein.&lt;br /&gt;
&lt;br /&gt;
Um die Nutzung des lokalen scratch zu unterstützen wird das Plugin &amp;quot;auto_tmpdir&amp;quot; der University of Delaware genutzt (https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir/tree/master).&lt;br /&gt;
&lt;br /&gt;
Dieses Plugin erstellt einen dedizierten Ordner für einen ausgeführten job welcher dann unter /&amp;lt;code&amp;gt;tmp&amp;lt;/code&amp;gt; erreichbar ist (sowie &amp;lt;code&amp;gt;/var/tm&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/dev/shm&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Der Vorteil des Plugins ist, dass sich dieses um de Erstellung der Mounts sowie dem Löschen der Mounts und Dateien kümmert. Da die Dateien nach Ende des Jobs gelöscht werden, ist es wichtig die Ausgabe anderweitig zu &amp;quot;streamen&amp;quot; oder das Endergebnis zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Exemplarisch könnte ein Script für die Nutzung wie folgt aussehen:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH --ntasks=1                    # Run on a single CPU&lt;br /&gt;
 #SBATCH --mem=1gb                     # Job memory request&lt;br /&gt;
 #SBATCH --time=00:05:00               # Time limit hrs:min:sec&lt;br /&gt;
 #SBATCH --partition=std&lt;br /&gt;
 #SBATCH --account=nutzername&lt;br /&gt;
 &lt;br /&gt;
 ## set path to root of job data&lt;br /&gt;
 basedir=/globalscratch/nutzername/myjob&lt;br /&gt;
 &lt;br /&gt;
 ## copy job data&lt;br /&gt;
 cp -r $basedir/* /tmp&lt;br /&gt;
 ## change to working director&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 &lt;br /&gt;
 ## do the work&lt;br /&gt;
 hostname &amp;gt; $basedir/result.log&lt;br /&gt;
 &lt;br /&gt;
 ## copy the results if they are required&lt;br /&gt;
 cp -r /tmp/* $basedir&lt;br /&gt;
&lt;br /&gt;
===== Zugriffsrechte: =====&lt;br /&gt;
&#039;&#039;&#039;NOTE TO DO: Update auf lustre access control lists -&#039;&#039;&#039; Lustre hat seine eigenen Einstellungen für Access Control lists, dieser Abschnitt muss entsprechend überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
Typisch für ein klassisches SLURM cluster, werden die regulären UNIX Rechte und Gruppen eingesetzt. Diese ermöglichen es Ordner auf dem geteilten Laufwerk nur für bestimmte Nutzer und Gruppen freizugeben. Allerdings ist die regulären Linux Rechteverwaltung hier in Bezug auf eine detaillierte Rechteverteilung stak eingeschränkt. (Da es nicht praktisch möglich ist für alle möglichen Kombinationen dedizierte Gruppen anzulegen.)&lt;br /&gt;
&lt;br /&gt;
Eine feinere Rechteverwaltung, sofern notwendig ist über Access Control Lists (ACL) möglich.&lt;br /&gt;
&lt;br /&gt;
In der der aktuellen Implementierung lassen sich diese über &amp;lt;code&amp;gt;nfs4_getfacl&amp;lt;/code&amp;gt; in Erfahrung bringen, über &amp;lt;code&amp;gt;nf4_setfacl&amp;lt;/code&amp;gt; setzen und über &amp;lt;code&amp;gt;nfs4_editfacl&amp;lt;/code&amp;gt; editieren. &lt;br /&gt;
&lt;br /&gt;
Es ist möglich die Rechte über den Benutzernamen zu setzen, dabei muss dieser als &amp;lt;code&amp;gt;benutzername@localdomain&amp;lt;/code&amp;gt; eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann die ID des Nutzers oder einer Gruppe genutzt werden, welche sich über &amp;lt;code&amp;gt;id -u benutzername&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;getent group gruppenname&amp;lt;/code&amp;gt; abfragen lassen.&lt;br /&gt;
&lt;br /&gt;
Leserechte für eine Datei liesen sich wie folgt setzen:&lt;br /&gt;
 nfs4_setfacl -a &amp;quot;A::benutzername@localdomain:RX&amp;quot; test-datei&lt;br /&gt;
Rechte lassen sich ebenfalls rekursiv setzen, wodurch alle Dateien und Ordner abgedeckt sind, mit den Optionen &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; werden die Zugriffsrechte auf neu erstellte Dateien und Unterverzeichnisse vererbt.&lt;br /&gt;
 nfs4_setfacl -R -a &amp;quot;A:df:benutzername@localdomain:rx&amp;quot; pfad-zur/test-datei&lt;br /&gt;
Weiterführende Informationen zu  Access Control Lists inklusive einer Erklärung der &amp;quot;flags&amp;quot; finden sich auf der Seite des Ohio Supercomputing Centre: https://www.osc.edu/book/export/html/4523&lt;br /&gt;
&lt;br /&gt;
Sollte es notwendig sein die Zugriffsrechte auf spezifische Benutzer (und nicht nur einen Fachbereich) zu begrenzen wird folgender Vorgang empfohlen:&lt;br /&gt;
&lt;br /&gt;
Die regulären UNIX/POSIX-Rechte werden auf den Eigentümer reduziert, ohne Zugriffsrechte für die Gruppe oder Welt. Dies entspräche einem &amp;lt;code&amp;gt;r-x------&amp;lt;/code&amp;gt; (500) oder &amp;lt;code&amp;gt;rwx------&amp;lt;/code&amp;gt; (700). Das Aufzeigen von Inhalten in Ordnern erfordert hierbei die Ausführungsrechte (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). Für Dateien welche nicht ausgeführt werden reichen Lese- und Schreibrechte (&amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ).&lt;br /&gt;
&lt;br /&gt;
Im nächsten Schritt werden berechtigen Nutzern über die ACLs Zugriffsrechte eingeräumt - der Gruppe bleibt hierbei weiter der Zugriff auf der POSIX-Basis verwehrt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Sollte die Vertraulichkeit von Daten eine Einschränkung der Zugriffsrechte erfordern, sollte im Allgemeinen minimalste Rechte eingeräumt werden. So wenige wie möglich, so viele wie erforderlich. Andererseits ist ein konventionelles HPC-Cluster nicht für hochsensible Daten ausgelegt. In diesem Fall  bitten wir darum dass mit dem HPC-Team unter [mailto:hpc-suppport@hu-berlin.de hpc-suppport@hu-berlin.de] Kontakt aufgenommen wird um eventuelle Lösungsansätze zu besprechen.&lt;br /&gt;
&lt;br /&gt;
==== Externer Zugriff: ====&lt;br /&gt;
Der Zugriff auf das Dateisystem erfolgt über sftp (ftp ûber ssh) aus dem Netz der Humboldt Universität heraus.&lt;br /&gt;
&lt;br /&gt;
Die ist unter Windows mit WinScp ( https://winscp.net/ ) möglich - auch in Verbindung mit putty ( https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ) für die Befehlszeile - und wird unter Linux im Plasma Desktop nativ von Dolphin unterstützt.&lt;/div&gt;</summary>
		<author><name>Mielczad</name></author>
	</entry>
</feed>