<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=H+Schumacher</id>
	<title>bwHPC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=H+Schumacher"/>
	<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/e/Special:Contributions/H_Schumacher"/>
	<updated>2026-06-07T00:11:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16123</id>
		<title>Registration/bwForCluster/Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16123"/>
		<updated>2026-06-03T15:07:33Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: broadened the scope of the second issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Steps A + B in the [[Registration/bwForCluster | registration process]] must be finished. &lt;br /&gt;
&lt;br /&gt;
== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
# Visit the bwForCluster Helix &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de registration page bwServices]&#039;&#039;&#039;.&lt;br /&gt;
#: [[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
# &#039;&#039;&#039;Select your home organization&#039;&#039;&#039; from the list on the main page and click Proceed/Fortfahren. You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization.&lt;br /&gt;
# Enter the &#039;&#039;&#039;username and password&#039;&#039;&#039; of your home organization (usually these credentials are also used for other services like email) and click Login/Einloggen.&lt;br /&gt;
# When you log in to bwServices for the first time, an overview will appear, with the account information that your home institution submits to the system. Please verify that all data is valid and then click &#039;&#039;Continue/Weiter&#039;&#039;.&lt;br /&gt;
#  You will be redirected back to the bwServices main page. It shows all the statewide services you have access to. Click &#039;&#039;&#039;Register/Registrieren&#039;&#039;&#039; under the field labeled &#039;&#039;bwForCluster Helix&#039;&#039;.&lt;br /&gt;
#: [[File:BwIDM-reg.png|center|frame|Register for Helix]]&lt;br /&gt;
# bwForCluster Helix uses a &#039;&#039;&#039;2-factor authentication&#039;&#039;&#039; (2FA) mechanism to increase security.&lt;br /&gt;
#: If you have never registered a 2FA token on bwIDM, the following error message will appear:&lt;br /&gt;
#: [[File:Bwidm-3-red.png|center|600px|thumb|Second factor missing.]]&lt;br /&gt;
#: Use this &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de/user/twofa.xhtml link]&#039;&#039;&#039; or select &#039;&#039;&#039;My Tokens&#039;&#039;&#039; in the main menu.&lt;br /&gt;
#: To register a new token, please follow these &#039;&#039;&#039;[[Registration/2FA|instructions]]&#039;&#039;&#039;.&lt;br /&gt;
#: Please complete this step before continuing.&lt;br /&gt;
# Read the Terms of Use / Nutzungsbedingungen, place a check mark next to &#039;&#039;I have read and accepted the terms of use&#039;&#039; and click &#039;&#039;Register/Registrieren&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Set a service password&#039;&#039;&#039; for bwForCluster Helix and click &#039;&#039;Save/Speichern&#039;&#039;.&lt;br /&gt;
#: Be sure to use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
[[File:BwIDM-passwd.png|center|600px|thumb|Set service password]]&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:70%; margin: auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
The service password is your private password for accessing the bwForCluster Helix. Don&#039;t ever share it with anyone!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Registration Website bwServices ==&lt;br /&gt;
The registration website &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de bwServices]&#039;&#039;&#039; offers the following functionality: &lt;br /&gt;
* Register for the service.&lt;br /&gt;
* Set or change your service password.&lt;br /&gt;
* Review your registration details under &amp;quot;Registry Info&amp;quot;. This includes your account status (active/lost_access).&lt;br /&gt;
* bwServices triggers an update of your user information upon login.&lt;br /&gt;
* Registering an [[Registration/SSH | SSH key]]. It can be used for login to &#039;&#039;bwForCluster Helix&#039;&#039;. &lt;br /&gt;
* Creating tokens for logins that need 2-factor authentication ([[Registration/2FA |2FA]]) like &#039;&#039;bwForCluster Helix&#039;&#039; and &#039;&#039;bwVisu&#039;&#039;.&lt;br /&gt;
* De-register from the service.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting with the Help of bwServices ===&lt;br /&gt;
When encountering connection issues with a service, the bwServices website is a good starting point for troubleshooting: &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Expired contract&#039;&#039;&#039; or inactive student id: &lt;br /&gt;
** No access to state services like the bwHPC clusters or SDS@hd is possible.&lt;br /&gt;
** You can see that this is the issue when the login to bwServices via your identity provider is not possible. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Recently (re)activated uni-id or other user data changes:&#039;&#039;&#039; Your id at your home organization was (re)activated a short time ago or your email address changed (or sth. similar) but this change didn&#039;t get through to the bwHPC cluster or SDS@hd service. &lt;br /&gt;
** Login to bwServices. This triggers an update of your user information. Some minutes later, the connection to the service should work again. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Entitlement / RV missing:&#039;&#039;&#039; Prerequisites like entitlement ownership or RV membership aren&#039;t met (anymore). &lt;br /&gt;
** You can see the concrete issue and advice on how to move forward when looking at the registry info of the service on the bwServices website.&lt;br /&gt;
** When the issue is solved, the account status changes from LOST_ACCESS to ACTIVE. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Service Password:&#039;&#039;&#039; When trying to connect to the service, the service password is not accepted. &lt;br /&gt;
** Set a [[#Setting_a_New_Service_Password | new password]].&lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; OTP:&#039;&#039;&#039; In the case of login issues with a service that uses 2FA, you can check if you&#039;re OTP is working by going in the menu to &#039;&#039;Index&#039;&#039; -&amp;gt; &#039;&#039;My Tokens&#039;&#039;. &lt;br /&gt;
** If you&#039;re token is not working, you might have had too many failed login attempts. You can request a reset of the error counter from the support. &lt;br /&gt;
** If the token needs to be reset, please follow the instructions for a [[Helix/Login#Troubleshooting | Lost Token]].&lt;br /&gt;
&lt;br /&gt;
=== Setting a New Service Password === &lt;br /&gt;
&lt;br /&gt;
At any time, you can set a new service password via [https://bwservices.uni-heidelberg.de/ bwServices] by carrying out the following steps:&lt;br /&gt;
# Visit [https://bwservices.uni-heidelberg.de/ bwServices] and select your home organization. &lt;br /&gt;
# Authenticate yourself via your home-organizational user id / username and your home-organizational password.&lt;br /&gt;
# Find your service and select &#039;&#039;&#039;Set Service Password&#039;&#039;&#039;.&lt;br /&gt;
# Set new service password, repeat it and click the &#039;&#039;&#039;Save&#039;&#039;&#039; button. Use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
# The page answers e.g. &amp;quot;password has been changed&amp;quot;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16117</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16117"/>
		<updated>2026-06-02T15:30:40Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added instructions for adding rclone to path on windows.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. high performance clusters, data and cloud storage systems, archiving services). &amp;lt;/br&amp;gt;&lt;br /&gt;
Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Data can be piped between two completely remote locations. When moving data within the same system and the data transfer protocol allows for server side copy, no local download is necessary. &amp;lt;/br&amp;gt;&lt;br /&gt;
One advantage is that the transfer is multithreaded and it operates on a file level basis.&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; When using Rclone with 2FA it is necessary to connect via ssh key instead of a password. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable (&amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt;).&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
*: To use rclone after the installation, you have to open a terminal (cmd or PowerShell) in the folder where the rclone.exe file is. This can be done with a right click in the empty space wihin the rclone folder and then choosing &amp;quot;open in terminal&amp;quot;. Then run all commands with a leading &#039;./&#039; (for example &amp;lt;code&amp;gt;./rclone config&amp;lt;/code&amp;gt;. To be able to simply use &amp;quot;rclone&amp;quot; anywhere, you can add it to your path. For instructions see the [[Data_Transfer/Rclone#Troubleshooting | Troubleshooting]] section. &lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all elements in the folder XX:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone lsf &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
# List elements from subfolders as well:&lt;br /&gt;
rclone lsf --max-depth 2 &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp] first.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;# mount under drive letter X (or any other free letter)&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; X:&lt;br /&gt;
# or provide the path to a nonexisting folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; &amp;lt;C:\path\parentDir\nonexistingFoldername&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To unmount, the command can be stopped in the terminal with the key combination CTRL+C. Alternatively, a mounted drive can be unmounted by making a right click on the drive name in the file explorer and choose &amp;quot;Eject&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
# Windows: Adding rclone to the path&lt;br /&gt;
#: Needed information: path to the rclone.exe file. If you chose to install via &#039;winget&#039;, the path is &amp;quot;C:\Users\&amp;lt;user&amp;gt;\AppData\Local\Microsoft\WinGet\Packages\Rclone.Rclone_Microsoft.Winget.Source.... . Please look up the exact path. &lt;br /&gt;
#:* Option 1: Add the rclone.exe file to a folder that is already in the path. You can move it to &amp;quot;C:\Windows\System32\&amp;quot;. Then open a new terminal window and test if the command &amp;quot;rclone config&amp;quot; works.&lt;br /&gt;
#:* Option 2: Add the path of the rclone.exe file to your Windows Path variable:&lt;br /&gt;
#:*: Open the Start Search and type env. Choose &amp;quot;Edit environment variables&amp;quot;&lt;br /&gt;
#:*: Click the &amp;quot;Environment Variables&amp;quot; button. &lt;br /&gt;
#:*: Edit the user variables and add the path to your rclone.exe file.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=16115</id>
		<title>Helix/Login</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=16115"/>
		<updated>2026-06-01T14:04:28Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added token deletion step, changed it-service link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
* The three [[registration/bwForCluster|bwForCluster registration]] steps are completed &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;and&amp;lt;/span&amp;gt; still valid.&lt;br /&gt;
* Your IP address is within the [https://www.belwue.de BelWü] network which connects universities and other scientific institutions in Baden-Württemberg. If your computer is in your university network (e.g. at your office), you should be able to connect to bwForCluster Helix without restrictions. If you are outside the BelWü network (e.g. at home), a VPN (virtual private network) connection to your University network must be established first. Please consult the VPN documentation of your university.&lt;br /&gt;
* As credentials you need your Helix [[Helix/Login#Username|username]], [[Registration/Password|service password]] and [[Registration/2FA|2FA token]].&lt;br /&gt;
* If you encounter any issues, please have a look at the [[Helix/Login#Troubleshooting|Troubleshooting]] section.&lt;br /&gt;
&lt;br /&gt;
= Login to bwForCluster Helix =&lt;br /&gt;
&lt;br /&gt;
Login to bwForCluster Helix is only possible with a Secure Shell (SSH) client for which you must know your bwForCluster Helix credentials and the hostname of the login nodes.&lt;br /&gt;
For more general information on SSH clients, visit the [[Registration/Login/Client|SSH clients Guide]].&lt;br /&gt;
&lt;br /&gt;
== Username ==&lt;br /&gt;
&lt;br /&gt;
Your username on bwForCluster Helix consists of a prefix and your local username.&lt;br /&gt;
For prefixes please refer to the [[Registration/Login/Username|Username Guide]].&lt;br /&gt;
&lt;br /&gt;
Example: If your local username at your University is &amp;lt;code&amp;gt;ab123&amp;lt;/code&amp;gt; and you are a user from Heidelberg University, your username on the cluster is: &amp;lt;code&amp;gt;hd_ab123&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Hostnames ==&lt;br /&gt;
&lt;br /&gt;
bwForCluster Helix has two login nodes. In general, you should stay with automatic node selection, so that the connections are evenly distributed between the login nodes. To do this, we use so-called DNS round-robin scheduling which takes care of the node balancing. This means, if you open multiple SSH sessions, these sessions may run on different login nodes. Therefore, processes started in one session might not be visible in other sessions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Hostname !! Destination&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;helix.bwservices.uni-heidelberg.de&#039;&#039;&#039; || one of the two login nodes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Login with SSH command (Linux, Mac, Windows) ==&lt;br /&gt;
&lt;br /&gt;
Most Unix and Unix-like operating systems such as Linux and Mac OS as well as newer versions of MS Windows (10 and 11), have a built-in SSH client provided by the OpenSSH project.&lt;br /&gt;
If you want to use the full set of Linux commands on Windows (10 or 11), you can also install the [https://docs.microsoft.com/en-us/windows/wsl/install Windows Subsystem for Linux] (WSL).&lt;br /&gt;
&lt;br /&gt;
For login use one of the following ssh commands in a commandline (i.e. cmd, terminal, PowerShell):&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
 ssh -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
To run graphical applications on the cluster, you need to enable X11 forwarding with the &amp;lt;code&amp;gt;-X&amp;lt;/code&amp;gt; flag:&lt;br /&gt;
&lt;br /&gt;
 ssh -X -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the login process faster, tell the command that no ssh key authentication is used by adding an additional parameter: &lt;br /&gt;
&lt;br /&gt;
  ssh -o PubkeyAuthentication=no &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
== Login with graphical SSH client (Windows) ==&lt;br /&gt;
&lt;br /&gt;
For Windows we suggest using [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]] for login and file transfer.&lt;br /&gt;
 &lt;br /&gt;
Start MobaXterm and fill in the following fields:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Remote name              : helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Specify user name        : &amp;lt;username&amp;gt;&lt;br /&gt;
Port                     : 22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that click on &#039;ok&#039;. Then a terminal will open where you can enter your credentials.&lt;br /&gt;
&lt;br /&gt;
== Login with SSH key ==&lt;br /&gt;
&lt;br /&gt;
To set up a SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
To login by using the ssh key, use the following command: &lt;br /&gt;
&lt;br /&gt;
  ssh -o IdentitiesOnly=yes -i &amp;lt;path_to_private_key&amp;gt; &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de &lt;br /&gt;
&lt;br /&gt;
== Login Example ==&lt;br /&gt;
&lt;br /&gt;
To login to bwForCluster Helix, proceed as follows:&lt;br /&gt;
# Login with SSH command or MoabXterm as shown above.&lt;br /&gt;
# The system will ask for a one-time password &amp;lt;code&amp;gt;Your OTP&amp;lt;/code&amp;gt; (= Smartphone Token / TAN list element/ ...) . Please enter your OTP and confirm it with Enter/Return. The OTP is not displayed when typing. If you do not have a second factor yet, please create one (see [[Registration/2FA]]).&lt;br /&gt;
# The system will ask you for your service password &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt;. Please enter it and confirm it with Enter/Return. The password is not displayed when typing. If you do not have a service password yet or have forgotten it, please create one (see [[Registration/Password]]).&lt;br /&gt;
# You will be greeted by the cluster with the message of the day, followed by a shell.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -l hd_ab123 helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Your OTP:&lt;br /&gt;
Password: &lt;br /&gt;
&lt;br /&gt;
********************************************************************************&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                     Baden-Wuerttemberg HPC Cluster for                       *&lt;br /&gt;
*              Structural and Systems Biology, Medical Science,                *&lt;br /&gt;
*                 Soft Matter, Computational Humanities, and                   *&lt;br /&gt;
*                      Mathematics and Computer Science                        *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                bwForCluster                                  *&lt;br /&gt;
*                        _    _          _   _                                 *&lt;br /&gt;
*                       | |  | |        | | (_)                                *&lt;br /&gt;
*                       | |__| |   ___  | |  _  __  __                         *&lt;br /&gt;
*                       |  __  |  / _ \ | | | | \ \/ /                         *&lt;br /&gt;
*                       | |  | | |  __/ | | | |  &amp;gt;  &amp;lt;                          *&lt;br /&gt;
*                       |_|  |_|  \___| |_| |_| /_/\_\                         *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                   (xCAT 2.16.4 / RHEL 8.8 / GPFS 5.1.8)                      *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*        bwHPC Wiki : https://wiki.bwhpc.de/e/Helix                            *&lt;br /&gt;
*     Ticket System : https://www.bwhpc.de/supportportal                       *&lt;br /&gt;
*    Job Monitoring : https://helix-monitoring.bwservices.uni-heidelberg.de    *&lt;br /&gt;
*        E-learning : https://training.bwhpc.de/                               *&lt;br /&gt;
*                     -&amp;gt; &#039;Introduction to bwForCluster Helix&#039;                  *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
********************************************************************************&lt;br /&gt;
&lt;br /&gt;
Last login: ...&lt;br /&gt;
[hd_ab123@login ~]$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Allowed Activities on Login Nodes =&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
To guarantee usability for all users you must not run your compute jobs on the login nodes.&lt;br /&gt;
Compute jobs must be submitted as batch jobs.&lt;br /&gt;
Any compute job running on the login nodes will be terminated without notice.&lt;br /&gt;
Long-running compilation or long-running pre- or post-processing tasks must also be submitted as batch jobs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The login nodes are the access points to the compute system, your &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; directory and your workspaces.&lt;br /&gt;
These nodes are shared with all users. Hence, your activities on the login nodes are primarily limited to setting up your batch jobs.&lt;br /&gt;
Your activities may also be:&lt;br /&gt;
* quick compilation of program code or&lt;br /&gt;
* quick pre- and post-processing of results from batch jobs.&lt;br /&gt;
&lt;br /&gt;
We advise to use [[Helix/Slurm#Interactive_Jobs|interactive batch jobs]] for compute and memory intensive compilation and pre- and post-processing tasks.&lt;br /&gt;
&lt;br /&gt;
= Related Information =&lt;br /&gt;
&lt;br /&gt;
* If you want to register a new token for the two factor authentication (2FA), consult the [[Registration/2FA|2FA Guide]].&lt;br /&gt;
* If you want to de-register, consult the [[Registration/Deregistration|De-registration Guide]].&lt;br /&gt;
* If you need an SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
* Configuring your shell: [[.bashrc Do&#039;s and Don&#039;ts]]&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Login Problems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you encounter login problems, please double check the prerequisites. If those are valid, it is fastest to first check the following points before contacting the support at the [https://www.bwhpc.de/supportportal.php|bwhpc Suppport Portal].&lt;br /&gt;
If there are known issues with the cluster, we&#039;ll inform you via e-mail or in the message of the day at the cluster.&lt;br /&gt;
&lt;br /&gt;
* Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
* Do [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | troubleshooting with bwServices]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lost Token&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# To reset your token you have to (virtually) visit the IT Service at the University of Heidelberg to validate your identity. You can find the information for a virtual or in person visit in the &amp;quot;How to contact us&amp;quot; section here: https://www.urz.uni-heidelberg.de/en/support/it-service. It is recommended to use the Chrome browser for doing the video call.&lt;br /&gt;
# Please have an official identification ready (e.g. Führerschein / Personalausweis) and mention that you want a reset of your Helix 2FA token. It is important to emphasize that the token reset is for bwForCluster Helix to avoid confusion with the token that is specific to members/students of the university of Heidelberg.&lt;br /&gt;
# After the IT Service deactivated the token, you can delete the token yourself, reload the page and create a new one. &lt;br /&gt;
Hint: To be on the safe side, it is advised to create a [[Registration/2FA#Backup_TAN_List|backup TAN list]] additionally to the smartphone token.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16112</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16112"/>
		<updated>2026-05-31T13:42:21Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: corrected information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. high performance clusters, data and cloud storage systems, archiving services). &amp;lt;/br&amp;gt;&lt;br /&gt;
Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Data can be piped between two completely remote locations. When moving data within the same system and the data transfer protocol allows for server side copy, no local download is necessary. &amp;lt;/br&amp;gt;&lt;br /&gt;
One advantage is that the transfer is multithreaded and it operates on a file level basis.&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; When using Rclone with 2FA it is necessary to connect via ssh key instead of a password. &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable (&amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt;).&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all elements in the folder XX:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone lsf &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
# List elements from subfolders as well:&lt;br /&gt;
rclone lsf --max-depth 2 &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp] first.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;# mount under drive letter X (or any other free letter)&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; X:&lt;br /&gt;
# or provide the path to a nonexisting folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; &amp;lt;C:\path\parentDir\nonexistingFoldername&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To unmount, the command can be stopped in the terminal with the key combination CTRL+C. Alternatively, a mounted drive can be unmounted by making a right click on the drive name in the file explorer and choose &amp;quot;Eject&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=16108</id>
		<title>SDS@hd/Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=16108"/>
		<updated>2026-05-27T16:06:37Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: added &amp;#039;domain&amp;#039; as additional bullet point to avoid confusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an overview on how to access data served by SDS@hd. To get an introduction to data transfer in general, see [[Data_Transfer|data transfer]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notation:&#039;&#039;&#039; Please replace all placeholder contents within guillemets &amp;lt;code&amp;gt;&amp;lt; &amp;gt;&amp;lt;/code&amp;gt; with the actual value. For example, replace &#039;&#039;&amp;lt;name_of_my_dog&amp;gt;&#039;&#039; with &#039;&#039;Fluffy&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* You need to be [[SDS@hd/Registration|registered]].&lt;br /&gt;
* You need to be in the belwue-Network. This means you have to use the VPN Service of your HomeOrganization, if you want to access SDS@hd from outside the bwHPC-Clusters (e.g. via eduroam or from your personal notebook).&lt;br /&gt;
&lt;br /&gt;
== Needed Information, independent of the chosen tool ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Username:&#039;&#039;&#039; You can look it up under your user data at [https://bwservices.uni-heidelberg.de/user/index.xhtml bwServices]. The username is &#039;&#039;&amp;lt;localPrimaryGroup&amp;gt;_&amp;lt;eduPersonPrincipalName&amp;gt;&#039;&#039; . (It is the same as for the bwHPC Clusters. Example: &#039;&#039;hd_ab123&#039;&#039;.)&lt;br /&gt;
* &#039;&#039;&#039;Password:&#039;&#039;&#039; The Service Password that you set at bwServices in the [[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service|registration step]].&lt;br /&gt;
* &#039;&#039;&#039;SV-Acronym:&#039;&#039;&#039; Use the lower case version of the acronym for all access options.&lt;br /&gt;
* &#039;&#039;&#039;Hostname:&#039;&#039;&#039; The hostname depends on the chosen network protocol:&lt;br /&gt;
** For [[Data_Transfer/SSHFS|SSHFS]] and [[Data_Transfer/SFTP|SFTP]]: &#039;&#039;lsdf02-sshfs.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[SDS@hd/Access/SMB|SMB]] and [[SDS@hd/Access/NFS|NFS]]: &#039;&#039;lsdf02.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[Data_Transfer/WebDAV|WebDAV]] the url is: &#039;&#039;https://lsdf02-webdav.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain is &#039;&#039;BWSERVICESAD&#039;&#039; (needed for smb and nfs connections).&lt;br /&gt;
&lt;br /&gt;
== Recommended Setup ==&lt;br /&gt;
The following graphic shows the recommended way for accessing SDS@hd via Windows/Mac/Linux. The table provides an overview of the most important access options and links to the related pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have various use cases, it is recommended to use [[Data_Transfer/Rclone|Rclone]]. You can copy, sync and mount with it. Thanks to its multithreading capability Rclone is a good fit for transferring big data.&amp;lt;br /&amp;gt;&lt;br /&gt;
For an overview of all connection possibilities, please have a look at [[Data_Transfer/All_Data_Transfer_Routes|all data transfer routes]].&lt;br /&gt;
&lt;br /&gt;
[[File:Data_transfer_diagram_simple.jpg|center|500px]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Figure 1: SDS@hd main transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
! Use Case&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac&lt;br /&gt;
! Linux&lt;br /&gt;
! Possible Bandwith&lt;br /&gt;
! Firewall Ports&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/Rclone|Rclone]] + &amp;lt;protocol&amp;gt;&lt;br /&gt;
| copy, sync and mount, multithreading&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/SMB|SMB]]&lt;br /&gt;
| mount as network drive in file explorer or usage via Rclone&lt;br /&gt;
| [[SDS@hd/Access/SMB#Windows|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Mac|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 139 (netbios), 135 (rpc), 445 (smb)&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/WebDAV|WebDAV]]&lt;br /&gt;
| go to solution for restricted networks&lt;br /&gt;
| [✓]&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| up to 100GBit/sec&lt;br /&gt;
| 80 (http), 443 (https)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]]&lt;br /&gt;
| Graphical User Interface (GUI)&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|✓]]&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
| mount for multi-user environments&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| [[SDS@hd/Access/NFS|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| -&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SSHFS|SSHFS]]&lt;br /&gt;
| mount, needs stable internet connection&lt;br /&gt;
| ☓&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SFTP|SFTP]]&lt;br /&gt;
| interactive shell, better usability when used together with Rclone&lt;br /&gt;
| [[Data_Transfer/SFTP#Windows|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 22 (ssh)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Table 1: SDS@hd transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access from a bwHPC Cluster ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t mount to your $HOME directory but you can create a mount under $TMPDIR by following the instructions for [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]]. It is advised to wait a couple of seconds (&amp;lt;code&amp;gt;sleep 5&amp;lt;/code&amp;gt;) before trying to use the mounted directory. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes. The prerequisites are: &lt;br /&gt;
* The SV responsible has enabled the SV on BinAC 2 once by writing to [mailto:sds-hd-support@urz.uni-heidelberg.de sds-hd-support@urz.uni-heidelberg.de]&lt;br /&gt;
* You have a valid kerberos ticket, which can be fetched with &amp;lt;code&amp;gt;kinit &amp;lt;userID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can mount your SDS@hd SV on the cluster yourself by using [[Data_Transfer/Rclone | Rclone]] with the [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]] command. As transfer protocol you can use WebDAV or sftp. For a full overview please have a look at [[Data_Transfer/All_Data_Transfer_Routes | All Data Transfer Routes]].&lt;br /&gt;
&lt;br /&gt;
=== Access via Webbrowser (read-only) ===&lt;br /&gt;
&lt;br /&gt;
Visit [https://lsdf02-webdav.urz.uni-heidelberg.de/ lsdf02-webdav.urz.uni-heidelberg.de] and login with your SDS@hd username and service password. Here you can get an overview of the data in your &amp;amp;quot;Speichervorhaben&amp;amp;quot; and download single files. To be able to do more, like moving data, uploading new files, or downloading complete folders, a suitable client is needed as described above.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Managing access rights&#039;&#039;&#039;&lt;br /&gt;
** When the SV is mounted on Windows, access rights can be adjusted in the file/folder properties menu. (Users from Heidelberg without Windows can use the [https://www.urz.uni-heidelberg.de/de/service-katalog/desktop-und-arbeitsplatz/windows-terminalserver Windows terminal server]). &lt;br /&gt;
** bwForCluster Helix users can change the access rights via Helix by using [[Workspace#Regular_Unix_Permissions | unix permissions]] or [[Workspace#ACLs:_Access_Control_Lists | access control lists]]. On non native mounts ACL changes won&#039;t work. &lt;br /&gt;
** Additionally to the already mentioned options, the SVV can take over ownership of files by opening a [[Data_Transfer/SFTP|SFTP]] shell and running &amp;lt;code&amp;gt;chown -R &amp;lt;userID&amp;gt; &amp;lt;path/to/folder&amp;gt;&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Multiuser environment&#039;&#039;&#039; &amp;lt;br /&amp;gt; &amp;amp;rarr; Use [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the News section at the SDS@hd start page in the wiki. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The credentials aren&#039;t accepted &lt;br /&gt;
*: Check if your credentials work in general by trying the access via webbrowser: [https://lsdf02-webdav.urz.uni-heidelberg.de/].&lt;br /&gt;
*: If this doesn&#039;t work: &lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/Login/Username| Check your Username]]&lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | Troubleshooting with bwServices]]&lt;br /&gt;
* &#039;&#039;&#039;Other Issue&#039;&#039;&#039;&lt;br /&gt;
** If available, follow the troubleshooting guide of your specific connection method.&lt;br /&gt;
** Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
** If you have an institutional account, make sure to be a fully active member of your institution.&lt;br /&gt;
If these suggestions didn&#039;t help, write to the [mailto:sds-hd-support@urz.uni-heidelberg.de support]. Provide the following information: &lt;br /&gt;
* Your operating system&lt;br /&gt;
* Does the access via webbrowser work? &lt;br /&gt;
*: If yes, provide us with detailed information on how you tried to access your SV (used access method, username, ...).&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16107</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16107"/>
		<updated>2026-05-27T16:01:30Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: improved Windows instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. cloud storage systems). Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. Data can be piped between two completely remote locations, sometimes without local download. One advantage is that the transfer is multithreaded and it operates on a file level basis.  &lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; You can&#039;t use Rclone with 2FA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable, &amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt; on Windows, from the archive.&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all elements in the folder XX:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone lsf &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
# List elements from subfolders as well:&lt;br /&gt;
rclone lsf --max-depth 2 &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp] first.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;# mount under drive letter X (or any other free letter)&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; X:&lt;br /&gt;
# or provide the path to a nonexisting folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:&amp;lt;path/to/remote/files&amp;gt; &amp;lt;C:\path\parentDir\nonexistingFoldername&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To unmount, the command can be stopped in the terminal with the key combination CTRL+C. Alternatively, a mounted drive can be unmounted by making a right click on the drive name in the file explorer and choose &amp;quot;Eject&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;lt;remote-name&amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16106</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16106"/>
		<updated>2026-05-27T09:44:49Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. cloud storage systems). Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. Data can be piped between two completely remote locations, sometimes without local download. One advantage is that the transfer is multithreaded and it operates on a file level basis.  &lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; You can&#039;t use Rclone with 2FA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable, &amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt; on Windows, from the archive.&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all elements in the folder XX:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone lsf &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
# List elements from subfolders as well:&lt;br /&gt;
rclone lsf --max-depth 2 &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp]. To mount on drive letter X or a nonexistent subdirectory, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files X:&lt;br /&gt;
rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files C:\path\parent\mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16078</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16078"/>
		<updated>2026-05-18T16:11:02Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: changed lsd to lsf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. cloud storage systems). Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. Data can be piped between two completely remote locations, sometimes without local download. One advantage is that the transfer is multithreaded and it operates on a file level basis.  &lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; You can&#039;t use Rclone with 2FA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable, &amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt; on Windows, from the archive.&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[https://wiki.bwhpc.de/e/Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all elements in the folder XX:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone lsf &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
# List elements from subfolders as well:&lt;br /&gt;
rclone lsf --max-depth 2 &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp]. To mount on drive letter X or a nonexistent subdirectory, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files X:&lt;br /&gt;
rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files C:\path\parent\mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16076</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16076"/>
		<updated>2026-05-13T14:49:46Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Reordered remote setup options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. cloud storage systems). Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. Data can be piped between two completely remote locations, sometimes without local download. One advantage is that the transfer is multithreaded and it operates on a file level basis.  &lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; You can&#039;t use Rclone with 2FA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable, &amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt; on Windows, from the archive.&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
** If Rclone shall be used together with sftp, the [[https://wiki.bwhpc.de/e/Data_Transfer/SSHFS#Installation | sshfs installation]] instructions must be followed after installing Rclone. &lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote as described in the following sections. It&#039;s enough to choose one of those. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Open a terminal and define all parameters in one command. If a ssh key shall be used instead of a password, it might be easier to adjust the config file directly as described in the next section.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Open the file and use one of the following snippets as template for your connection:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-key-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;rclone config&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. It&#039;s quite helpful for checking out which options there are and what the config file looks like after setting values that deviate from the default values. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
To see all configured remotes: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;rclone config&lt;br /&gt;
# Exit with &#039;q&#039;. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all directories/containers/buckets in the folder XX.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone lsd &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&amp;lt;/br&amp;gt;&lt;br /&gt;
More detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp]. To mount on drive letter X or a nonexistent subdirectory, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files X:&lt;br /&gt;
rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files C:\path\parent\mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer&amp;diff=16075</id>
		<title>Data Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer&amp;diff=16075"/>
		<updated>2026-05-13T14:42:13Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added ssh key info.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Data transfer is the exchange of files between two systems. Before data transfer can happen, you need to go through the following steps:&lt;br /&gt;
&lt;br /&gt;
# Choose the two [[#Data_Storage_Systems|data storage systems]] that shall exchange data.&lt;br /&gt;
# Choose the top level ways of transfer ([[#Ways of Transfer:_Copy,_Sync,_Mount|copy, sync or mount]]) by considering your specific use case.&lt;br /&gt;
# Choose a [[#Network_Protocols_&amp;amp;_Transfer_Tools|network protocol or transfer tool]] to use for the communication between the systems.&lt;br /&gt;
&lt;br /&gt;
The recommended setup already includes these three steps. For a full overview, you can reference the tables that show [[Data_Transfer/All_Data_Transfer_Routes|all transfer routes]]. Those include all possible combinations between systems, top level way of transfer and network protocol / transfer tool.&lt;br /&gt;
&lt;br /&gt;
=== Data Storage Systems ===&lt;br /&gt;
&lt;br /&gt;
Data transfer can happen between a variety of systems. For example:&lt;br /&gt;
&lt;br /&gt;
* [[File:Notebook.svg|x20px]] Local computer or VM (virtual machine)&lt;br /&gt;
* [[File:Microscope.svg|x20px]] &amp;lt;span style=&amp;quot;margin-left:10px;&amp;quot;&amp;gt;Data producing machine (sequencer, microscope, ...)&amp;lt;span&amp;gt;&lt;br /&gt;
* [[File:Clusternodes.svg|x20px]] &amp;lt;span style=&amp;quot;margin-left:8px;&amp;quot;&amp;gt;HPC system&amp;lt;span&amp;gt;&lt;br /&gt;
* [[File:Storage_small.svg|x15px]] &amp;lt;span style=&amp;quot;margin-left:8px;&amp;quot;&amp;gt;Storage space (SDS@hd, institute server, ...)&amp;lt;span&amp;gt;&lt;br /&gt;
* [[File:Cloud.svg|x15px]] &amp;lt;span style=&amp;quot;margin-left:3px;&amp;quot;&amp;gt;Cloud resource&amp;lt;span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ways of Transfer: Copy, Sync, Mount ===&lt;br /&gt;
&lt;br /&gt;
The top level ways of transfer are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Copy:&#039;&#039;&#039; A simple copy command is the most basic way to transfer data. This is most efficient for very big data files that shall be retrieved from or moved to a remote location. And it can be most convenient, if you prefer moving your files via commandline instead of using a file browser. &amp;lt;br&amp;gt;Examples: [[Data_Transfer/SCP|scp]], [[Data_Transfer/SFTP|sftp]]&lt;br /&gt;
* &#039;&#039;&#039;Sync:&#039;&#039;&#039; If the data is intended to be kept on both systems and undergoes change on only one of the systems, it makes sense to use a synchronization command instead. This way, only the changed files in one location are updated in the other location. Good use cases are backups or data transfers that go mostly in one direction like moving data from a sequencer to a storage space. A disadvantage is that the data needs storage space on both systems. &amp;lt;br&amp;gt;Example: [[Data_Transfer/Rsync|rsync]]&lt;br /&gt;
* &#039;&#039;&#039;Mount:&#039;&#039;&#039; If the data undergoes change on both systems or is too big to store locally, then mounting is the most convenient solution. This allows you to see and work with the data as if it were stored locally on your computer while it is still placed on the remote system. All changes that you implement happen directly on the original data so that you don&#039;t need to copy or synchronize anything. Additionally, you&#039;ll see all changes that another party does to the data with just a very short delay. Disadvantages are that you need defined edit sessions starting with a mount and ending with a clean unmount of your files and with a stable network connection during the session. Also, file operations on the remote system become much slower via a remotely sshfs-mounted system. &amp;lt;br&amp;gt;Example: [[Data_Transfer/SSHFS|sshfs]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: left;&amp;quot;&amp;gt;[[File:CopySyncMount.png|x250px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: left; font-size: small; margin-top: 10px; margin-left: 255px;&amp;quot;&amp;gt;Figure 1: Top level transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Protocols &amp;amp; Transfer Tools ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! Basic Network Protocol&lt;br /&gt;
! Used By Network Protocol&lt;br /&gt;
|-&lt;br /&gt;
| ssh&lt;br /&gt;
| [[Data_Transfer/SCP | scp]], [[Data_Transfer/SFTP | sftp]], [[Data_Transfer/Rsync | rsync]]&lt;br /&gt;
|-&lt;br /&gt;
| http(s)&lt;br /&gt;
| [[Data_Transfer/WebDAV | WebDAV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/SMB | smb]]&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/NFS | NFS]]&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
For every data transfer a network protocol to use for the communication between the systems must be chosen. The basic network protocols and the network protocols that build directly upon those are shown in the table on the right. These protocols can either be used rather directly or through tools that provide the protocol together with additional features. A tool can either mean a command line tool or a tool with a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
A comprehensive overview of all transfer options (network protocols and tools) can be found on the page [[Data_Transfer/All_Data_Transfer_Routes|all data transfer routes]].&lt;br /&gt;
&lt;br /&gt;
== Recommended Setup ==&lt;br /&gt;
[[File:Bwhpc diagram simplenobox.jpg|thumb|Main routes for mounting|x150px]]&lt;br /&gt;
When you are working with a development environment that allows remote connections, this is the first choice. Otherwise, the main tools/protocols for transferring data are as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;: &#039;&#039;&#039;[[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]]&#039;&#039;&#039; is a graphical user interface that allows logging in to the cluster with ssh as well as transferring data via a file browser or using command line tools for the transfer.&lt;br /&gt;
* &amp;lt;u&amp;gt;MacOS and Linux&amp;lt;/u&amp;gt;: &lt;br /&gt;
** &#039;&#039;&#039;[[Data_Transfer/SSHFS|sshfs]]&#039;&#039;&#039; is quickly set up for mounting under stable connections. &lt;br /&gt;
** &#039;&#039;&#039;[[Data_Transfer/Rclone|Rclone]]&#039;&#039;&#039; for mount, copy and sync. An [[Registration/SSH | ssh key]] is needed when used with 2FA.&lt;br /&gt;
* &amp;lt;u&amp;gt;SDS@hd&amp;lt;/u&amp;gt;: See the [[SDS@hd/Access|SDS@hd Access]] page.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Strong firewall restrictions&#039;&#039;&#039;&amp;lt;br /&amp;gt; -&amp;gt; Use ssh or http(s) based protocols, for example [[Data_Transfer/WebDAV|&#039;&#039;&#039;WebDav&#039;&#039;&#039;]] and [[Data_Transfer/SFTP|sftp]]. For very strict facilities, ssh based protocols might not be allowed.&lt;br /&gt;
* &#039;&#039;&#039;Share data with collaborators...&#039;&#039;&#039;&lt;br /&gt;
** ...outside of Baden-Württemberg&amp;lt;br /&amp;gt; -&amp;amp;gt; Use the [[SDS@hd|SDS@hd]] storage.&lt;br /&gt;
** ...that are less comfortable with the command line&amp;lt;br /&amp;gt; -&amp;amp;gt; Let them mount the folder.&lt;br /&gt;
* &#039;&#039;&#039;Transfer many small files&#039;&#039;&#039;&amp;lt;br /&amp;gt; -&amp;amp;gt; Compress the files to one.&lt;br /&gt;
&lt;br /&gt;
For advanced topics see [[Data_Transfer/Advanced_Data_Transfer|Advanced Data Transfer]].&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/SSHFS&amp;diff=16074</id>
		<title>Data Transfer/SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/SSHFS&amp;diff=16074"/>
		<updated>2026-05-13T14:10:07Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Rclone link for 2fa cases.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sshfs is a network protocol for mounting data. It uses [[Data Transfer/SFTP|sftp]] under the hood.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the necessary installations follow this link:&amp;lt;br /&amp;gt; [https://linuxize.com/post/how-to-use-sshfs-to-mount-remote-directories-over-ssh/ How to use SSHFS to Mount Remote Directories over SSH].&amp;lt;br /&amp;gt;&lt;br /&gt;
a) &#039;&#039;&#039;MacOS after the installation&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
To enable sshfs on your Mac go to: System Preferences -&amp;amp;gt; General tab -&amp;amp;gt; Allow Extensions button&amp;lt;br /&amp;gt;&lt;br /&gt;
Then follow the instructions that pop up (make sure that you remember the instructions before shutting down your computer).&amp;lt;br /&amp;gt;&lt;br /&gt;
b) &#039;&#039;&#039;Linux installation short commands&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Debian/Ubuntu: &amp;lt;code&amp;gt;apt-get install sshfs&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CentOS/RedHat: &amp;lt;code&amp;gt;dnf install fuse-sshfs&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you want to use /etc/fstab, you can do this with the following entry:&lt;br /&gt;
&amp;lt;pre&amp;gt;sshfs#&amp;amp;lt;username&amp;amp;gt;@&amp;amp;lt;hostname&amp;amp;gt;:    &amp;amp;lt;your_local_mountpoint&amp;amp;gt;   fuse   defaults,user,noauto,exec,reconnect        0       0 &amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&#039;&#039;Caution: sshfs on Windows doesn&#039;t work with 2FA. An alternative is [[Data_Transfer/Rclone | Rclone with sftp]] + [[Registration/SSH | ssh key]].&#039;&#039;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to &amp;amp;quot;This PC&amp;amp;quot; and select &amp;amp;quot;Connect network drive&amp;amp;quot; (&amp;amp;quot;Netzlaufwerk verbinden&amp;amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select a drive (W:) and click on &amp;amp;quot;connect with webpage on which you can save documents and images&amp;amp;quot; (Verbindung mit website herstellen, auf der Sie Dokumente und Bilder speichern können)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the following as address, to connect to the home or root folder:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;\sshfs\&amp;lt;username&amp;gt;@&amp;lt;hostname&amp;gt;/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you would want to go two folders up, you would add “&#039;&#039;../../&#039;&#039;” at the end.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create an empty directory. The cluster/storage folder is going to be mounted to this directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mount a folder from the cluster/storage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Home folder&lt;br /&gt;
sshfs -o reconnect &amp;lt;username&amp;gt;@&amp;lt;hostname&amp;gt;: &amp;lt;localPath&amp;gt;&lt;br /&gt;
# subfolderX&lt;br /&gt;
sshfs -o reconnect &amp;lt;username&amp;gt;@&amp;lt;hostname&amp;gt;:subfolderX &amp;lt;localPath&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Undo mounting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MacOS &amp;amp; Linux:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
If the connection to the cluster broke and you want to remount, you often have to use umount first. Try to remember to always unmount first before retrying. Otherwise it can happen that unmounting is not possible anymore by cmd. Usually the error message in this case tells you that the process is currently busy and therefore cannot umount. In this case, you have to restart the notebook which automatically unmounts everything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;```bash&lt;br /&gt;
umount -f &amp;amp;lt;localPath&amp;amp;gt;&lt;br /&gt;
# For example&lt;br /&gt;
umount -f /Users/&amp;amp;lt;username&amp;amp;gt;/Documents/mounted&lt;br /&gt;
# or use&lt;br /&gt;
fusermount -u &amp;amp;lt;localPath&amp;amp;gt;&lt;br /&gt;
```&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=16073</id>
		<title>SDS@hd/Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=16073"/>
		<updated>2026-05-13T13:46:42Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Clarified username and password.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an overview on how to access data served by SDS@hd. To get an introduction to data transfer in general, see [[Data_Transfer|data transfer]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notation:&#039;&#039;&#039; Please replace all placeholder contents within guillemets &amp;lt;code&amp;gt;&amp;lt; &amp;gt;&amp;lt;/code&amp;gt; with the actual value. For example, replace &#039;&#039;&amp;lt;name_of_my_dog&amp;gt;&#039;&#039; with &#039;&#039;Fluffy&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* You need to be [[SDS@hd/Registration|registered]].&lt;br /&gt;
* You need to be in the belwue-Network. This means you have to use the VPN Service of your HomeOrganization, if you want to access SDS@hd from outside the bwHPC-Clusters (e.g. via eduroam or from your personal notebook).&lt;br /&gt;
&lt;br /&gt;
== Needed Information, independent of the chosen tool ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Username:&#039;&#039;&#039; You can look it up under your user data at [https://bwservices.uni-heidelberg.de/user/index.xhtml bwServices]. The username is &#039;&#039;&amp;lt;localPrimaryGroup&amp;gt;_&amp;lt;eduPersonPrincipalName&amp;gt;&#039;&#039; . (It is the same as for the bwHPC Clusters. Example: &#039;&#039;hd_ab123&#039;&#039;.)&lt;br /&gt;
* &#039;&#039;&#039;Password:&#039;&#039;&#039; The Service Password that you set at bwServices in the [[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service|registration step]].&lt;br /&gt;
* &#039;&#039;&#039;SV-Acronym:&#039;&#039;&#039; Use the lower case version of the acronym for all access options.&lt;br /&gt;
* &#039;&#039;&#039;Hostname:&#039;&#039;&#039; The hostname depends on the chosen network protocol:&lt;br /&gt;
** For [[Data_Transfer/SSHFS|SSHFS]] and [[Data_Transfer/SFTP|SFTP]]: &#039;&#039;lsdf02-sshfs.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[SDS@hd/Access/SMB|SMB]] and [[SDS@hd/Access/NFS|NFS]]: &#039;&#039;lsdf02.urz.uni-heidelberg.de&#039;&#039;. The domain is &#039;&#039;BWSERVICESAD&#039;&#039;.&lt;br /&gt;
** For [[Data_Transfer/WebDAV|WebDAV]] the url is: &#039;&#039;https://lsdf02-webdav.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Recommended Setup ==&lt;br /&gt;
The following graphic shows the recommended way for accessing SDS@hd via Windows/Mac/Linux. The table provides an overview of the most important access options and links to the related pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have various use cases, it is recommended to use [[Data_Transfer/Rclone|Rclone]]. You can copy, sync and mount with it. Thanks to its multithreading capability Rclone is a good fit for transferring big data.&amp;lt;br /&amp;gt;&lt;br /&gt;
For an overview of all connection possibilities, please have a look at [[Data_Transfer/All_Data_Transfer_Routes|all data transfer routes]].&lt;br /&gt;
&lt;br /&gt;
[[File:Data_transfer_diagram_simple.jpg|center|500px]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Figure 1: SDS@hd main transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
! Use Case&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac&lt;br /&gt;
! Linux&lt;br /&gt;
! Possible Bandwith&lt;br /&gt;
! Firewall Ports&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/Rclone|Rclone]] + &amp;lt;protocol&amp;gt;&lt;br /&gt;
| copy, sync and mount, multithreading&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/SMB|SMB]]&lt;br /&gt;
| mount as network drive in file explorer or usage via Rclone&lt;br /&gt;
| [[SDS@hd/Access/SMB#Windows|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Mac|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 139 (netbios), 135 (rpc), 445 (smb)&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/WebDAV|WebDAV]]&lt;br /&gt;
| go to solution for restricted networks&lt;br /&gt;
| [✓]&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| up to 100GBit/sec&lt;br /&gt;
| 80 (http), 443 (https)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]]&lt;br /&gt;
| Graphical User Interface (GUI)&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|✓]]&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
| mount for multi-user environments&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| [[SDS@hd/Access/NFS|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| -&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SSHFS|SSHFS]]&lt;br /&gt;
| mount, needs stable internet connection&lt;br /&gt;
| ☓&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SFTP|SFTP]]&lt;br /&gt;
| interactive shell, better usability when used together with Rclone&lt;br /&gt;
| [[Data_Transfer/SFTP#Windows|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 22 (ssh)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Table 1: SDS@hd transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access from a bwHPC Cluster ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t mount to your $HOME directory but you can create a mount under $TMPDIR by following the instructions for [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]]. It is advised to wait a couple of seconds (&amp;lt;code&amp;gt;sleep 5&amp;lt;/code&amp;gt;) before trying to use the mounted directory. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes. The prerequisites are: &lt;br /&gt;
* The SV responsible has enabled the SV on BinAC 2 once by writing to [mailto:sds-hd-support@urz.uni-heidelberg.de sds-hd-support@urz.uni-heidelberg.de]&lt;br /&gt;
* You have a valid kerberos ticket, which can be fetched with &amp;lt;code&amp;gt;kinit &amp;lt;userID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can mount your SDS@hd SV on the cluster yourself by using [[Data_Transfer/Rclone | Rclone]] with the [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]] command. As transfer protocol you can use WebDAV or sftp. For a full overview please have a look at [[Data_Transfer/All_Data_Transfer_Routes | All Data Transfer Routes]].&lt;br /&gt;
&lt;br /&gt;
=== Access via Webbrowser (read-only) ===&lt;br /&gt;
&lt;br /&gt;
Visit [https://lsdf02-webdav.urz.uni-heidelberg.de/ lsdf02-webdav.urz.uni-heidelberg.de] and login with your SDS@hd username and service password. Here you can get an overview of the data in your &amp;amp;quot;Speichervorhaben&amp;amp;quot; and download single files. To be able to do more, like moving data, uploading new files, or downloading complete folders, a suitable client is needed as described above.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Managing access rights&#039;&#039;&#039;&lt;br /&gt;
** When the SV is mounted on Windows, access rights can be adjusted in the file/folder properties menu. (Users from Heidelberg without Windows can use the [https://www.urz.uni-heidelberg.de/de/service-katalog/desktop-und-arbeitsplatz/windows-terminalserver Windows terminal server]). &lt;br /&gt;
** bwForCluster Helix users can change the access rights via Helix by using [[Workspace#Regular_Unix_Permissions | unix permissions]] or [[Workspace#ACLs:_Access_Control_Lists | access control lists]]. On non native mounts ACL changes won&#039;t work. &lt;br /&gt;
** Additionally to the already mentioned options, the SVV can take over ownership of files by opening a [[Data_Transfer/SFTP|SFTP]] shell and running &amp;lt;code&amp;gt;chown -R &amp;lt;userID&amp;gt; &amp;lt;path/to/folder&amp;gt;&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Multiuser environment&#039;&#039;&#039; &amp;lt;br /&amp;gt; &amp;amp;rarr; Use [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the News section at the SDS@hd start page in the wiki. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The credentials aren&#039;t accepted &lt;br /&gt;
*: Check if your credentials work in general by trying the access via webbrowser: [https://lsdf02-webdav.urz.uni-heidelberg.de/].&lt;br /&gt;
*: If this doesn&#039;t work: &lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/Login/Username| Check your Username]]&lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | Troubleshooting with bwServices]]&lt;br /&gt;
* &#039;&#039;&#039;Other Issue&#039;&#039;&#039;&lt;br /&gt;
** If available, follow the troubleshooting guide of your specific connection method.&lt;br /&gt;
** Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
** If you have an institutional account, make sure to be a fully active member of your institution.&lt;br /&gt;
If these suggestions didn&#039;t help, write to the [mailto:sds-hd-support@urz.uni-heidelberg.de support]. Provide the following information: &lt;br /&gt;
* Your operating system&lt;br /&gt;
* Does the access via webbrowser work? &lt;br /&gt;
*: If yes, provide us with detailed information on how you tried to access your SV (used access method, username, ...).&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=16063</id>
		<title>Helix/Login</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=16063"/>
		<updated>2026-05-12T10:39:53Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Replaced some points with the &amp;quot;troubleshooting with bwServices&amp;quot; link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
* The three [[registration/bwForCluster|bwForCluster registration]] steps are completed &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;and&amp;lt;/span&amp;gt; still valid.&lt;br /&gt;
* Your IP address is within the [https://www.belwue.de BelWü] network which connects universities and other scientific institutions in Baden-Württemberg. If your computer is in your university network (e.g. at your office), you should be able to connect to bwForCluster Helix without restrictions. If you are outside the BelWü network (e.g. at home), a VPN (virtual private network) connection to your University network must be established first. Please consult the VPN documentation of your university.&lt;br /&gt;
* As credentials you need your Helix [[Helix/Login#Username|username]], [[Registration/Password|service password]] and [[Registration/2FA|2FA token]].&lt;br /&gt;
* If you encounter any issues, please have a look at the [[Helix/Login#Troubleshooting|Troubleshooting]] section.&lt;br /&gt;
&lt;br /&gt;
= Login to bwForCluster Helix =&lt;br /&gt;
&lt;br /&gt;
Login to bwForCluster Helix is only possible with a Secure Shell (SSH) client for which you must know your bwForCluster Helix credentials and the hostname of the login nodes.&lt;br /&gt;
For more general information on SSH clients, visit the [[Registration/Login/Client|SSH clients Guide]].&lt;br /&gt;
&lt;br /&gt;
== Username ==&lt;br /&gt;
&lt;br /&gt;
Your username on bwForCluster Helix consists of a prefix and your local username.&lt;br /&gt;
For prefixes please refer to the [[Registration/Login/Username|Username Guide]].&lt;br /&gt;
&lt;br /&gt;
Example: If your local username at your University is &amp;lt;code&amp;gt;ab123&amp;lt;/code&amp;gt; and you are a user from Heidelberg University, your username on the cluster is: &amp;lt;code&amp;gt;hd_ab123&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Hostnames ==&lt;br /&gt;
&lt;br /&gt;
bwForCluster Helix has two login nodes. In general, you should stay with automatic node selection, so that the connections are evenly distributed between the login nodes. To do this, we use so-called DNS round-robin scheduling which takes care of the node balancing. This means, if you open multiple SSH sessions, these sessions may run on different login nodes. Therefore, processes started in one session might not be visible in other sessions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Hostname !! Destination&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;helix.bwservices.uni-heidelberg.de&#039;&#039;&#039; || one of the two login nodes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Login with SSH command (Linux, Mac, Windows) ==&lt;br /&gt;
&lt;br /&gt;
Most Unix and Unix-like operating systems such as Linux and Mac OS as well as newer versions of MS Windows (10 and 11), have a built-in SSH client provided by the OpenSSH project.&lt;br /&gt;
If you want to use the full set of Linux commands on Windows (10 or 11), you can also install the [https://docs.microsoft.com/en-us/windows/wsl/install Windows Subsystem for Linux] (WSL).&lt;br /&gt;
&lt;br /&gt;
For login use one of the following ssh commands in a commandline (i.e. cmd, terminal, PowerShell):&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
 ssh -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
To run graphical applications on the cluster, you need to enable X11 forwarding with the &amp;lt;code&amp;gt;-X&amp;lt;/code&amp;gt; flag:&lt;br /&gt;
&lt;br /&gt;
 ssh -X -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the login process faster, tell the command that no ssh key authentication is used by adding an additional parameter: &lt;br /&gt;
&lt;br /&gt;
  ssh -o PubkeyAuthentication=no &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
== Login with graphical SSH client (Windows) ==&lt;br /&gt;
&lt;br /&gt;
For Windows we suggest using [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]] for login and file transfer.&lt;br /&gt;
 &lt;br /&gt;
Start MobaXterm and fill in the following fields:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Remote name              : helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Specify user name        : &amp;lt;username&amp;gt;&lt;br /&gt;
Port                     : 22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that click on &#039;ok&#039;. Then a terminal will open where you can enter your credentials.&lt;br /&gt;
&lt;br /&gt;
== Login with SSH key ==&lt;br /&gt;
&lt;br /&gt;
To set up a SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
To login by using the ssh key, use the following command: &lt;br /&gt;
&lt;br /&gt;
  ssh -o IdentitiesOnly=yes -i &amp;lt;path_to_private_key&amp;gt; &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de &lt;br /&gt;
&lt;br /&gt;
== Login Example ==&lt;br /&gt;
&lt;br /&gt;
To login to bwForCluster Helix, proceed as follows:&lt;br /&gt;
# Login with SSH command or MoabXterm as shown above.&lt;br /&gt;
# The system will ask for a one-time password &amp;lt;code&amp;gt;Your OTP&amp;lt;/code&amp;gt; (= Smartphone Token / TAN list element/ ...) . Please enter your OTP and confirm it with Enter/Return. The OTP is not displayed when typing. If you do not have a second factor yet, please create one (see [[Registration/2FA]]).&lt;br /&gt;
# The system will ask you for your service password &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt;. Please enter it and confirm it with Enter/Return. The password is not displayed when typing. If you do not have a service password yet or have forgotten it, please create one (see [[Registration/Password]]).&lt;br /&gt;
# You will be greeted by the cluster with the message of the day, followed by a shell.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -l hd_ab123 helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Your OTP:&lt;br /&gt;
Password: &lt;br /&gt;
&lt;br /&gt;
********************************************************************************&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                     Baden-Wuerttemberg HPC Cluster for                       *&lt;br /&gt;
*              Structural and Systems Biology, Medical Science,                *&lt;br /&gt;
*                 Soft Matter, Computational Humanities, and                   *&lt;br /&gt;
*                      Mathematics and Computer Science                        *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                bwForCluster                                  *&lt;br /&gt;
*                        _    _          _   _                                 *&lt;br /&gt;
*                       | |  | |        | | (_)                                *&lt;br /&gt;
*                       | |__| |   ___  | |  _  __  __                         *&lt;br /&gt;
*                       |  __  |  / _ \ | | | | \ \/ /                         *&lt;br /&gt;
*                       | |  | | |  __/ | | | |  &amp;gt;  &amp;lt;                          *&lt;br /&gt;
*                       |_|  |_|  \___| |_| |_| /_/\_\                         *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                   (xCAT 2.16.4 / RHEL 8.8 / GPFS 5.1.8)                      *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*        bwHPC Wiki : https://wiki.bwhpc.de/e/Helix                            *&lt;br /&gt;
*     Ticket System : https://www.bwhpc.de/supportportal                       *&lt;br /&gt;
*    Job Monitoring : https://helix-monitoring.bwservices.uni-heidelberg.de    *&lt;br /&gt;
*        E-learning : https://training.bwhpc.de/                               *&lt;br /&gt;
*                     -&amp;gt; &#039;Introduction to bwForCluster Helix&#039;                  *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
********************************************************************************&lt;br /&gt;
&lt;br /&gt;
Last login: ...&lt;br /&gt;
[hd_ab123@login ~]$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Allowed Activities on Login Nodes =&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
To guarantee usability for all users you must not run your compute jobs on the login nodes.&lt;br /&gt;
Compute jobs must be submitted as batch jobs.&lt;br /&gt;
Any compute job running on the login nodes will be terminated without notice.&lt;br /&gt;
Long-running compilation or long-running pre- or post-processing tasks must also be submitted as batch jobs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The login nodes are the access points to the compute system, your &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; directory and your workspaces.&lt;br /&gt;
These nodes are shared with all users. Hence, your activities on the login nodes are primarily limited to setting up your batch jobs.&lt;br /&gt;
Your activities may also be:&lt;br /&gt;
* quick compilation of program code or&lt;br /&gt;
* quick pre- and post-processing of results from batch jobs.&lt;br /&gt;
&lt;br /&gt;
We advise to use [[Helix/Slurm#Interactive_Jobs|interactive batch jobs]] for compute and memory intensive compilation and pre- and post-processing tasks.&lt;br /&gt;
&lt;br /&gt;
= Related Information =&lt;br /&gt;
&lt;br /&gt;
* If you want to register a new token for the two factor authentication (2FA), consult the [[Registration/2FA|2FA Guide]].&lt;br /&gt;
* If you want to de-register, consult the [[Registration/Deregistration|De-registration Guide]].&lt;br /&gt;
* If you need an SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
* Configuring your shell: [[.bashrc Do&#039;s and Don&#039;ts]]&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Login Problems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you encounter login problems, please double check the prerequisites. If those are valid, it is fastest to first check the following points before contacting the support at the [https://www.bwhpc.de/supportportal.php|bwhpc Suppport Portal].&lt;br /&gt;
If there are known issues with the cluster, we&#039;ll inform you via e-mail or in the message of the day at the cluster.&lt;br /&gt;
&lt;br /&gt;
* Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
* Do [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | troubleshooting with bwServices]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lost Token&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To reset your token you have to visit the IT-Service to validate your identity.&lt;br /&gt;
Mention that you want a reset of your Helix 2FA token. It is important to emphasize that the token reset is for bwForCluster Helix to avoid confusion with the token that is specific to members/students of the university of Heidelberg.&lt;br /&gt;
&lt;br /&gt;
You can visit the IT service point of the URZ in person at INF 330, 69120 Heidelberg. Or you can use the video call service. It is recommended to use the Chrome browser for doing the video call. Please have on official identification ready in any case (Führerschein / Personalausweis) .&lt;br /&gt;
For further information please see here: https://it-service.uni-heidelberg.de.&lt;br /&gt;
&lt;br /&gt;
To be on the safe side, it is advised to create a [[Registration/2FA#Backup_TAN_List|backup TAN list]] additionally to the smartphone token.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16062</id>
		<title>Registration/bwForCluster/Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16062"/>
		<updated>2026-05-12T10:34:50Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added too many failed login attempts issue.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Steps A + B in the [[Registration/bwForCluster | registration process]] must be finished. &lt;br /&gt;
&lt;br /&gt;
== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
# Visit the bwForCluster Helix &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de registration page bwServices]&#039;&#039;&#039;.&lt;br /&gt;
#: [[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
# &#039;&#039;&#039;Select your home organization&#039;&#039;&#039; from the list on the main page and click Proceed/Fortfahren. You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization.&lt;br /&gt;
# Enter the &#039;&#039;&#039;username and password&#039;&#039;&#039; of your home organization (usually these credentials are also used for other services like email) and click Login/Einloggen.&lt;br /&gt;
# When you log in to bwServices for the first time, an overview will appear, with the account information that your home institution submits to the system. Please verify that all data is valid and then click &#039;&#039;Continue/Weiter&#039;&#039;.&lt;br /&gt;
#  You will be redirected back to the bwServices main page. It shows all the statewide services you have access to. Click &#039;&#039;&#039;Register/Registrieren&#039;&#039;&#039; under the field labeled &#039;&#039;bwForCluster Helix&#039;&#039;.&lt;br /&gt;
#: [[File:BwIDM-reg.png|center|frame|Register for Helix]]&lt;br /&gt;
# bwForCluster Helix uses a &#039;&#039;&#039;2-factor authentication&#039;&#039;&#039; (2FA) mechanism to increase security.&lt;br /&gt;
#: If you have never registered a 2FA token on bwIDM, the following error message will appear:&lt;br /&gt;
#: [[File:Bwidm-3-red.png|center|600px|thumb|Second factor missing.]]&lt;br /&gt;
#: Use this &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de/user/twofa.xhtml link]&#039;&#039;&#039; or select &#039;&#039;&#039;My Tokens&#039;&#039;&#039; in the main menu.&lt;br /&gt;
#: To register a new token, please follow these &#039;&#039;&#039;[[Registration/2FA|instructions]]&#039;&#039;&#039;.&lt;br /&gt;
#: Please complete this step before continuing.&lt;br /&gt;
# Read the Terms of Use / Nutzungsbedingungen, place a check mark next to &#039;&#039;I have read and accepted the terms of use&#039;&#039; and click &#039;&#039;Register/Registrieren&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Set a service password&#039;&#039;&#039; for bwForCluster Helix and click &#039;&#039;Save/Speichern&#039;&#039;.&lt;br /&gt;
#: Be sure to use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
[[File:BwIDM-passwd.png|center|600px|thumb|Set service password]]&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:70%; margin: auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
The service password is your private password for accessing the bwForCluster Helix. Don&#039;t ever share it with anyone!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Registration Website bwServices ==&lt;br /&gt;
The registration website &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de bwServices]&#039;&#039;&#039; offers the following functionality: &lt;br /&gt;
* Register for the service.&lt;br /&gt;
* Set or change your service password.&lt;br /&gt;
* Review your registration details under &amp;quot;Registry Info&amp;quot;. This includes your account status (active/lost_access).&lt;br /&gt;
* bwServices triggers an update of your user information upon login.&lt;br /&gt;
* Registering an [[Registration/SSH | SSH key]]. It can be used for login to &#039;&#039;bwForCluster Helix&#039;&#039;. &lt;br /&gt;
* Creating tokens for logins that need 2-factor authentication ([[Registration/2FA |2FA]]) like &#039;&#039;bwForCluster Helix&#039;&#039; and &#039;&#039;bwVisu&#039;&#039;.&lt;br /&gt;
* De-register from the service.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting with the Help of bwServices ===&lt;br /&gt;
When encountering connection issues with a service, the bwServices website is a good starting point for troubleshooting: &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Expired contract&#039;&#039;&#039; or inactive student id: &lt;br /&gt;
** No access to state services like the bwHPC clusters or SDS@hd is possible.&lt;br /&gt;
** You can see that this is the issue when the login to bwServices via your identity provider is not possible. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Recently (re)activated uni-id:&#039;&#039;&#039; Your id at your home organization was (re)activated a short time ago but this change didn&#039;t get through to the bwHPC cluster or SDS@hd service. &lt;br /&gt;
** Login to bwServices. This triggers an update of your user information. Some minutes later, the connection to the service should work. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Entitlement / RV missing:&#039;&#039;&#039; Prerequisites like entitlement ownership or RV membership aren&#039;t met (anymore). &lt;br /&gt;
** You can see the concrete issue and advice on how to move forward when looking at the registry info of the service on the bwServices website.&lt;br /&gt;
** When the issue is solved, the account status changes from LOST_ACCESS to ACTIVE. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Service Password:&#039;&#039;&#039; When trying to connect to the service, the service password is not accepted. &lt;br /&gt;
** Set a [[#Setting_a_New_Service_Password | new password]].&lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; OTP:&#039;&#039;&#039; In the case of login issues with a service that uses 2FA, you can check if you&#039;re OTP is working by going in the menu to &#039;&#039;Index&#039;&#039; -&amp;gt; &#039;&#039;My Tokens&#039;&#039;. &lt;br /&gt;
** If you&#039;re token is not working, you might have had too many failed login attempts. You can request a reset of the error counter from the support. &lt;br /&gt;
** If the token needs to be reset, please follow the instructions for a [[Helix/Login#Troubleshooting | Lost Token]].&lt;br /&gt;
&lt;br /&gt;
=== Setting a New Service Password === &lt;br /&gt;
&lt;br /&gt;
At any time, you can set a new service password via [https://bwservices.uni-heidelberg.de/ bwServices] by carrying out the following steps:&lt;br /&gt;
# Visit [https://bwservices.uni-heidelberg.de/ bwServices] and select your home organization. &lt;br /&gt;
# Authenticate yourself via your home-organizational user id / username and your home-organizational password.&lt;br /&gt;
# Find your service and select &#039;&#039;&#039;Set Service Password&#039;&#039;&#039;.&lt;br /&gt;
# Set new service password, repeat it and click the &#039;&#039;&#039;Save&#039;&#039;&#039; button. Use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
# The page answers e.g. &amp;quot;password has been changed&amp;quot;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=16045</id>
		<title>Helix/bwVisu/JupyterLab</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=16045"/>
		<updated>2026-05-07T14:32:03Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added hint to load modules first.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://jupyter.org/ JupyterLab] is an integrated development environment (IDE) that provides a flexible and scalable interface for the Jupyter Notebook system. It supports interactive data science and scientific computing across over 40 programming languages (including Python, Julia, and R).&lt;br /&gt;
&lt;br /&gt;
== Change Python Version ==&lt;br /&gt;
&lt;br /&gt;
The default python version can be seen by running &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt; in the terminal. &lt;br /&gt;
&lt;br /&gt;
A different python version can be installed into a new virtual environment and then registered as IPython kernel for the usage in JupyterLab. This is explained in the chapter [[#Add_packages_via_conda_environments | add packages via conda environments]].&lt;br /&gt;
&lt;br /&gt;
== Install Python Packages ==&lt;br /&gt;
&lt;br /&gt;
Python packages can be added by installing them into a virtual environment and then creating an IPython kernel from the virtual environment. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kernels can be shared&amp;lt;/u&amp;gt;. See the notes below. &amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to move a virtual environment, it is adivsed to recreate it in the new place. Otherwise, dependencies based on relative paths will break. &lt;br /&gt;
&lt;br /&gt;
# Create a virtual environment with...&lt;br /&gt;
#* [[#Add_packages_via_venv_virtual_environments | ...venv]] or&lt;br /&gt;
#* [[#Add_packages_via_Conda_virtual_environments | ...conda]] (choose this option if you want to install a different python version) or &lt;br /&gt;
#* ...[https://docs.astral.sh/uv/getting-started/ uv] if you want to install a different python version but don&#039;t want to use conda. &lt;br /&gt;
# [[#Create_an_IPython_Kernel | Create an IPython kernel]] from the virtual environment&lt;br /&gt;
# Use the kernel within JupyterLab&lt;br /&gt;
#* By default new kernels are saved under &amp;lt;code&amp;gt;~/.local/share/jupyter&amp;lt;/code&amp;gt; and this location is automatically detected. Therefore, new kernels are directly available. &lt;br /&gt;
#*:[[File:BwVisu JuypterLab KernelPath.png|In the JupyterLab job configuration form, a custom kernel path can be provided.|right|thumb|x150px]]&lt;br /&gt;
#* If the kernel is saved somewhere else, the path can be provided in the &amp;quot;Kernel path&amp;quot; field when configuring the JupyterLab job (see image). For a kernel placed under &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter/kernels/my_kernel&amp;lt;/code&amp;gt; the needed &amp;quot;Kernel path&amp;quot; would be &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter&amp;lt;/code&amp;gt;. &lt;br /&gt;
# When the kernel is used the first time, the file &amp;lt;code&amp;gt;notebook_secrets&amp;lt;/code&amp;gt; is created automatically. It can be found under &amp;quot;Kernel path&amp;quot;. For others to use the kernel, they must have read access to this file. The command &amp;lt;code&amp;gt;chmod 750 notebook_secrets&amp;lt;/code&amp;gt; would for example allow the whole SDS@hd SV read access. For the access management in workspaces, please see [[Workspace#Setting_Permissions_for_Sharing_Files| Wokspace Permissions]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Notes regarding the sharing of IPython kernels&amp;lt;/u&amp;gt;&lt;br /&gt;
* The virtual environment and the kernel need to be placed in a shared directory. For example at SDS@hd.&lt;br /&gt;
* There could be a subdirectory for the virtual environments and one for the kernels. &lt;br /&gt;
* The path to the kernels is saved in the environment variable $JUPYTER_DATA_DIR. Jupyter relevant paths can be seen with &amp;lt;code&amp;gt;jupyter --paths&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via &#039;&#039;venv&#039;&#039; virtual environments ===&lt;br /&gt;
More information about venv or other python virtual environments can be found at the [[Development/Python | Python]] page. &lt;br /&gt;
&lt;br /&gt;
Steps for creating a &#039;&#039;&#039;venv&#039;&#039;&#039; virtual environment:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual evironment: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m venv &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;env_parent_dir&amp;lt;/code&amp;gt; is the path to the folder where the virtual environment shall be created. Relative paths can be used.&lt;br /&gt;
* Caution: If you you want to share the environment with others, make sure to already create it in the shared place. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;source &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;/bin/activate&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Update pip and install packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install -U pip --no-user&lt;br /&gt;
# when the environment is installed in home&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt;&lt;br /&gt;
# when the environment is installed somewhere else and shall not have dependencies in home so that others can access it as well&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt; --no-user&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via Conda virtual environments ===&lt;br /&gt;
More information about using conda can be found at the [[Development/Conda | Conda]] page. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the miniforge module by clicking first on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page and then on the &amp;amp;quot;load&amp;amp;quot; button right of the entry for miniforge in the software module menu. &lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual environment: &lt;br /&gt;
* If you are the only person using the environment, you can install it in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --name &amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* If you want to install it into a different directory, for example a shared place:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --prefix &amp;lt;path_to_shared_directory&amp;gt;/&amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate your environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda activate &amp;lt;myenv&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install your packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda install &amp;lt;mypackage&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create an IPython Kernel ==&lt;br /&gt;
&lt;br /&gt;
Python kernels are implementations of the Jupyter notebook environment for different languages or virtual environments. You can switch between kernels easily, allowing you to use the best tool for a specific task.&lt;br /&gt;
conda_kernels&lt;br /&gt;
&lt;br /&gt;
=== Create a kernel from a virtual environment ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the virtual environment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the ipykernel package:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install ipykernel&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Register the virtual environment as custom kernel to Jupyter. &lt;br /&gt;
* If you are the only person using the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --user --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can be found under &amp;lt;code&amp;gt;~/.local/share/jupyter/kernels/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you installed the environment in a shared place and want to have the kernel there as well: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --prefix &amp;lt;path_to_kernel_folder&amp;gt; --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can then be found under &amp;lt;code&amp;gt;path_to_kernel_folder/share/jupyter/kernels/&amp;lt;kernel_name&amp;gt;&amp;lt;/code&amp;gt;. As long as the same &amp;lt;code&amp;gt;path_to_kernel_folder&amp;lt;/code&amp;gt; is used, all kernels will be saved next to each other in &amp;quot;kernels&amp;quot;. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Language Support ===&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports over 40 programming languages including Python, R, Julia, and Scala. This is achieved through the use of different kernels.&lt;br /&gt;
&lt;br /&gt;
==== R Kernel ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the cluster:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load math/R&lt;br /&gt;
$ R&lt;br /&gt;
&amp;amp;gt; install.packages(&#039;IRkernel&#039;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On bwVisu:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Jupyter App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In left menu: load math/R&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Console:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ R&lt;br /&gt;
&amp;amp;gt; IRkernel::installspec(displayname = &#039;R 4.2&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Start kernel &#039;R 4.2&#039; as console or notebook&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Julia Kernel ====&lt;br /&gt;
&lt;br /&gt;
Load the math/julia module. Open the Terminal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
julia&lt;br /&gt;
]&lt;br /&gt;
add IJulia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, Julia is available as a kernel.&lt;br /&gt;
&lt;br /&gt;
== Interactive Widgets ==&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports interactive widgets that can create UI controls for interactive data visualization and manipulation within the notebooks. Example of using an interactive widget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;{.python&amp;quot;&amp;gt;from ipywidgets import IntSlider&lt;br /&gt;
slider = IntSlider()&lt;br /&gt;
display(slider)&amp;lt;/pre&amp;gt;&lt;br /&gt;
These widgets can be sliders, dropdowns, buttons, etc., which can be connected to Python code running in the backend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I use bwForCluster Helix software modules?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
First click on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page. Then load a module by clicking on the &amp;quot;load&amp;quot; button next to the corresponding module entry.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;My virtual environment works on Helix but not in the bwVisu JupyterLab job.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
If the environment uses Helix modules, you have to load the modules in the bwVisu job first. For example, when you used the python 3.13 module for creating the environment, the path to this python version is saved in the environment. When the module is not loadedin bwVisu, the path is not available and you might get an error like &amp;quot;&#039;&#039;[...]/bin/python: error while loading shared libraries: libpython3.13.so.1.0: cannot open shared object file: No such file or directory&#039;&#039;&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I navigate to my SDS@hd folder in the file browser?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Please see the instructions at the [[Helix/bwVisu/Usage#Files | Usage]] page.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;I prefer VSCode over JupyterLab. Can I start a JupyterLab job and then connect with it via VSCode?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
This is not possible. Please start the job directly on Helix instead. You can find the instructions at the [[Development/VS_Code#Connect_to_Remote_Jupyter_Kernel | VSCode page]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;My conda commands are interrupted with message &#039;Killed&#039;.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Request more memory when starting Jupyter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Jupyterlab doesn&#039;t let me in but asks for a password.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Try using more memory for the job. If this doesn&#039;t help, try using the inkognito mode of your browser as the browser cache might be the problem.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd&amp;diff=16037</id>
		<title>SDS@hd</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd&amp;diff=16037"/>
		<updated>2026-05-06T13:52:17Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added account management link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:sds-hd-logo.png|350px]]&lt;br /&gt;
&lt;br /&gt;
SDS@hd is a central service for securely storing scientific data (Scientific Data Storage). The service is provided as a state service to researchers of higher education institutions of Baden-Württemberg. It is intended to be used for data that is frequently accessed (&#039;hot data&#039;).&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* November 2022: No special entitlement is needed anymore to participate in an existing storage project.&lt;br /&gt;
* September 2023: Service has now been opened for DFN AAI &amp;amp; eduGAIN federation members to participate on existing storage projects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/en/service-catalogue/storage/sdshd-scientific-data-storage Service description &amp;amp; FAQ]&lt;br /&gt;
* [mailto:sds-hd-support@urz.uni-heidelberg.de Submit a Ticket]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffeaef; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[SDS@hd/Registration|Registration]] ([[SDS@hd/SV_Management|SV Management]], [[Registration/bwForCluster/Helix#Registration_Website_bwServices|Account Management]])&lt;br /&gt;
* [[SDS@hd/Access|Access]]&lt;br /&gt;
* [[SDS@hd/Security|Data Security]]&lt;br /&gt;
* [[Helix/bwVisu|bwVisu]] for visualization and interactive data analysis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Storage Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[SDS@hd/Acknowledgement|acknowledge]] SDS@hd in your publications.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix&amp;diff=16035</id>
		<title>Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix&amp;diff=16035"/>
		<updated>2026-05-06T13:50:59Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added account management link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Helix-logo.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039; is dedicated to research in the bwHPC domains Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;!--* August 2022: Start of bwForCluster Helix--&amp;gt;&lt;br /&gt;
&amp;lt;!--* Oktober 2023: Extension with additional compute nodes: 84x cpu nodes and 1x gpu8 node--&amp;gt;&lt;br /&gt;
&amp;lt;!--* April 2024: Extension with additional compute nodes: 23x cpu nodes--&amp;gt;&lt;br /&gt;
&amp;lt;!--* Job monitoring portal: https://helix-monitoring.bwservices.uni-heidelberg.de--&amp;gt;&lt;br /&gt;
&amp;lt;!--* July 2024: Cluster extension with 1x gpu8 node--&amp;gt;&lt;br /&gt;
&amp;lt;!--* 1. October 2024: Cluster Maintenance--&amp;gt;&lt;br /&gt;
&amp;lt;!--* 17.06.2025 08:00h - 18.06.2025 18:00h: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Cluster Maintenance&amp;lt;/span&amp;gt;--&amp;gt;&lt;br /&gt;
* June 2025: [https://www.bwhpc.de/897.php Important notice regarding the use of MathWorks products]&lt;br /&gt;
* April 2025: Cluster extension with 3x gpu8 nodes (Nvidia H200)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[Helix/Getting Started|Getting Started]]&lt;br /&gt;
* E-Learning Course [https://training.bwhpc.de/goto.php/crs/695 Introduction to bwForCluster Helix]&lt;br /&gt;
&amp;lt;!--* [[Helix/Migration Guide|Migration Guide for users of bwForCluster MLS&amp;amp;WISO]]--&amp;gt;&lt;br /&gt;
* [https://www.bwhpc.de/supportportal.php Submit a Ticket] to support unit &#039;bwHPC - Support &amp;gt; bwForCluster Helix&#039;&lt;br /&gt;
&amp;lt;!--* [[Helix/ChangeLog|ChangeLog]]--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration/bwForCluster|Registration]] ([[Registration/bwForCluster/RV/Management|RV Management]], [[Registration/bwForCluster/Helix#Registration_Website_bwServices|Account Management]])&lt;br /&gt;
* [[Helix/Login|Login]]&lt;br /&gt;
* [[Helix/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[Helix/Filesystems|File Systems and Workspaces]] &lt;br /&gt;
* [[Helix/Software|Cluster Specific Software]]&lt;br /&gt;
* [[Helix/Slurm|Batch System (Slurm)]] &lt;br /&gt;
* [[Helix/bwVisu|bwVisu]] for visualization and interactive applications&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[Helix/Acknowledgement|acknowledge]] the cluster in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16034</id>
		<title>Data Transfer/Rclone</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Data_Transfer/Rclone&amp;diff=16034"/>
		<updated>2026-05-06T11:26:59Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added smb to oneliner and config file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://rclone.org/docs/ Rclone] is a command line tool to manage files on remote systems (e.g. cloud storage systems). Rclone either synchronizes in one direction only or its mounting functionality is used with &amp;lt;code&amp;gt;rclone mount&amp;lt;/code&amp;gt;. Data can be piped between two completely remote locations, sometimes without local download. One advantage is that the transfer is multithreaded and it operates on a file level basis.  &lt;br /&gt;
&#039;&#039;&#039;Caution:&#039;&#039;&#039; You can&#039;t use Rclone with 2FA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Rclone is a Go program and comes as a single binary file.&lt;br /&gt;
&lt;br /&gt;
# Download the relevant binary.&lt;br /&gt;
# Extract the &amp;lt;code&amp;gt;rclone&amp;lt;/code&amp;gt; executable, &amp;lt;code&amp;gt;rclone.exe&amp;lt;/code&amp;gt; on Windows, from the archive.&lt;br /&gt;
# You can use the executables without further installation. For easy use, it is recommended to add the binary to your PATH environment variable. Information on how to do this can be found below.&lt;br /&gt;
&lt;br /&gt;
Detailed information regarding different operating systems can be found here:&lt;br /&gt;
&lt;br /&gt;
* Installation on [https://rclone.org/install/#windows Windows]&lt;br /&gt;
* Installation on [https://rclone.org/install/#macos macOS]&lt;br /&gt;
* Installation on [https://rclone.org/install/#script-installation Linux]&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone ==&lt;br /&gt;
&lt;br /&gt;
To use Rclone you have to define a config file. Afterwards you can connect by using the name of your configured connections. &lt;br /&gt;
&lt;br /&gt;
=== Configure Remote ===&lt;br /&gt;
&lt;br /&gt;
Before you can start using Rclone, you need to set up a remote. This means to configure a specific connection by providing authentication information, the network protocol that you want to use and a name for this configuration so that you can use it later on.&lt;br /&gt;
&lt;br /&gt;
To configure a remote for a specific service, you need the following information:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;remotehost&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;servicePassword&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, you have to decide on: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;network protocol&amp;lt;/code&amp;gt; (for example webDAV, smb, sftp)&lt;br /&gt;
* &amp;lt;code&amp;gt;remote-name&amp;lt;/code&amp;gt; (for example you can use the name of the service you want to connect to)&lt;br /&gt;
&lt;br /&gt;
You have three different options to set up a new remote which are explained by the following sections. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Interactive Setup&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone config&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will guide you through an interactive setup process. You can find detailed instructions at the website: &lt;br /&gt;
&lt;br /&gt;
* [https://rclone.org/webdav/ Connect via webdav]&lt;br /&gt;
* [https://rclone.org/smb/ Connect via smb]&lt;br /&gt;
* [https://rclone.org/sftp/ Connect via sftp]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Oneliner&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Define all parameters in one command. For example:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# smb&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; smb host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; domain=&amp;lt;domain&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# sftp&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; sftp host=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
# webdav&lt;br /&gt;
rclone config create &amp;lt;remote-name&amp;gt; webdav url=&amp;lt;remotehost&amp;gt; user=&amp;lt;username&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.1em; text-decoration: underline;&amp;quot;&amp;gt;&#039;&#039;&#039;Adjust Config File&#039;&#039;&#039; &amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Make sure that a config file exists. Access rights for the config file are set to 600.  &lt;br /&gt;
rclone config touch&lt;br /&gt;
# Get the location of the file: &lt;br /&gt;
rclone config file &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can use the following snippet as template for your connections.  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = smb&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
domain = &amp;lt;e.g. BWSERVICESAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = webdav&lt;br /&gt;
url = &amp;lt;hostURL&amp;gt;&lt;br /&gt;
vendor = other&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_use_agent = false&lt;br /&gt;
&lt;br /&gt;
[&amp;lt;remote-name-ssh-version&amp;gt;]&lt;br /&gt;
type = sftp&lt;br /&gt;
host = &amp;lt;hostname&amp;gt;&lt;br /&gt;
user = &amp;lt;userID&amp;gt;&lt;br /&gt;
key_file = ~/.ssh/id_ed25519&lt;br /&gt;
pubkey_file = ~/.ssh/id_ed25519.pub&lt;br /&gt;
key_use_agent = true&lt;br /&gt;
shell_type = none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To add the password, please use the following command. Make sure to keep the prepended space so that the command is not saved in your command history. &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; rclone config update &amp;lt;remote-name&amp;gt; pass=&amp;lt;password&amp;gt; --obscure&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Use Remote ===&lt;br /&gt;
&lt;br /&gt;
The syntax to use Rclone is like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone [options] subcommand &amp;lt;parameters&amp;gt; &amp;amp;lt;parameters...&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List all directories/containers/buckets in the folder XX.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone lsd &amp;lt;remote-name&amp;gt;:XX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies /local/path to the remote path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;amp;lt;/local/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copies fom remote path to /local/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone copy &amp;lt;remote-name&amp;gt;:&amp;amp;lt;remote/path&amp;amp;gt; &amp;amp;lt;/local/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Moves the contents of the source directory to the destination directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone move &amp;lt;remote-name&amp;gt;:&amp;amp;lt;source/path&amp;amp;gt; &amp;lt;remote-name&amp;gt;:&amp;amp;lt;destination/path&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More subcommands can be found [https://rclone.org/docs/#subcommands here].&lt;br /&gt;
&lt;br /&gt;
== Usage Rclone Mount ==&lt;br /&gt;
&lt;br /&gt;
Before you can follow the instructions in this chapter, you need to have set up a [[Data_Transfer/Rclone#Usage_Rclone | remote]].&lt;br /&gt;
Detailed information on how to use rclone mount can be found [https://rclone.org/commands/rclone_mount/ here].&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To run rclone mount on Windows, you will need to [https://winfsp.dev/rel/ download and install WinFsp]. To mount on drive letter X or a nonexistent subdirectory, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files X:&lt;br /&gt;
rclone mount &amp;amp;lt;remote-name&amp;amp;gt;:path/to/files C:\path\parent\mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
In contrast to Linux/Mac, there is no background mode.&lt;br /&gt;
&lt;br /&gt;
=== MacOS &amp;amp; Linux ===&lt;br /&gt;
&lt;br /&gt;
You can run mount in either foreground or background (aka daemon) mode. Mount runs in foreground mode by default. Use the &amp;lt;code&amp;gt;--daemon&amp;lt;/code&amp;gt; flag to force background mode. If this doesn&#039;t work, you can put an &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; at the end of the command instead. &lt;br /&gt;
&lt;br /&gt;
Create an empty directory on your local machine and then execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# to mount the root folder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;: /path/to/empty/folder &lt;br /&gt;
# to mount a subfolder:&lt;br /&gt;
rclone mount --vfs-cache-mode full &amp;amp;lt;remote-name&amp;amp;gt;:folderX/folderY /path/to/empty/folder &lt;br /&gt;
# to unmount:&lt;br /&gt;
fusermount -uz /path/to/mounted/folder &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
Rclone has a lot of useful options. &lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
To be able to utilize a larger bandwidth, it is helpful to add the following options for increased performance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--transfers &amp;lt;int&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of file transfers to run in parallel (default: 4). Depending on the local Network, read and write speeds on the file system, and current load, different values might be best. For large transfers, it is advised to test local performance with different values beforehand. &lt;br /&gt;
&lt;br /&gt;
* In our tests, we observed the best results between 8 and 32.&lt;br /&gt;
* For regular use cases, we recommend 16 as the default.&lt;br /&gt;
* Values above 64 are not recommended and degrade performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--multi-thread-streams &amp;lt;int&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Number of streams to use for multithreaded downloads (default: 4). Only important on very large files. This will cause multithreaded up/download on chunk-sized bits of the file.&lt;br /&gt;
&lt;br /&gt;
The optimal value is highly specific to the local network and used Hardware. For regular use cases, we recommend 4 as the default.&lt;br /&gt;
&lt;br /&gt;
=== Debugging and Statistics ===&lt;br /&gt;
To get updates on current progress, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s).  &lt;br /&gt;
&lt;br /&gt;
To get debug information, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--log-level=DEBUG &lt;br /&gt;
--stats-log-level=DEBUG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Getting_Started&amp;diff=16033</id>
		<title>Helix/bwVisu/Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Getting_Started&amp;diff=16033"/>
		<updated>2026-05-06T10:50:22Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Motivation ==&lt;br /&gt;
&lt;br /&gt;
When large quantities of scientific data is created (for example, from simulations), it is often necessary to employ hardware for further processing that is just as powerful as e.g. the HPC cluster that created the data in the first place. Transferring the data to a local workstation for visualization and analysis is typically not only time-consuming because of the data transfer itself, but the workstation may be ill-equipped to handle the workload. For such scenarios, remote solutions are needed, that employ powerful hardware and bring the applications to the data - and not vice versa.&lt;br /&gt;
&lt;br /&gt;
bwVisu provides such a remote service. The user can log in to an intuitive web frontend which manages interactive jobs running on bwForCluster Helix. Once a job has been started, the user can connect to it such that the application appears in a browser window with full 3D hardware acceleration provided by the cluster. The only requirement on the client side is that the browser must support HTML5.&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
&lt;br /&gt;
In order to use bwVisu, it is required to be a user of the [https://wiki.bwhpc.de/e/Registration/bwForCluster bwForCluster Helix] or a user of [https://wiki.bwhpc.de/e/SDS@hd/Registration SDS@hd].&lt;br /&gt;
# Register for the service bwVisu at [http://bwservices.uni-heidelberg.de bwServices].&lt;br /&gt;
# bwVisu uses a 2-factor authentication (2FA) mechanism to increase security. If you have not registered a 2FA token at bwServices, an error message will appear. Use this &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de/user/twofa.xhtml link]&#039;&#039;&#039; or select &#039;&#039;&#039;My Tokens&#039;&#039;&#039; in the main menu of bwServices. To register a new token, please follow these &#039;&#039;&#039;[[Registration/2FA|instructions]]&#039;&#039;&#039;. Please complete this step before continuing.&lt;br /&gt;
# Once your registration has been completed, your user account will be set up. This can take up to 10 minutes, so please wait for around ten minutes before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
&lt;br /&gt;
# Go to the bwVisu web frontend at [https://bwvisu.bwservices.uni-heidelberg.de/ bwvisu.bwservices.uni-heidelberg.de].&lt;br /&gt;
# Login with the credentials of your home university and provide a 2FA token.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
[[File:Bwvisu2-gui.png|x150px|right|bwVisu Workflow]]&lt;br /&gt;
As shown in the image, the usual workflow consists of three steps: You choose an application, define the needed job resources and then connect to the job as soon as it is running. Detailed instructions are [[Helix/bwVisu/Usage|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
&lt;br /&gt;
=== Data storage ===&lt;br /&gt;
&lt;br /&gt;
bwVisu provides no storage space. For data storage you have access to the filesystems of bwForCluster Helix and to SDS@hd.&lt;br /&gt;
&lt;br /&gt;
=== Open OnDemand ===&lt;br /&gt;
&lt;br /&gt;
bwVisu is based on [https://openondemand.org Open OnDemand] an open-source software platform designed to provide easy and streamlined access to high-performance computing (HPC) resources. Developed by the Ohio Supercomputer Center, it allows users to access HPC resources via a standard web browser, eliminating the need for a traditional command line interface.&lt;br /&gt;
&lt;br /&gt;
The platform provides a range of tools and features. bwVisu uses it to provide the following features:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Web-based Access:&#039;&#039;&#039; Users can manage jobs, files, and data directly through their browser.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Interactive Applications:&#039;&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;It supports GUI-based applications like Jupyter Notebooks and RStudio, enabling interactive computing and visualization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For most bwVisu applications you can connect to a running job with your browser.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Some applications may require a dedicated desktop client.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Job Management:&#039;&#039;&#039; Users can easily submit and manage their interactive computing jobs on HPC resources. For members of bwForCluster Helix, the jobs can be monitored via the [https://helix-monitoring.bwservices.uni-heidelberg.de/ monitoring portal].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;File Management:&#039;&#039;&#039; Provides a file browser that allows users to upload and manage their data files without needing to use command-line tools.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=16032</id>
		<title>Helix/bwVisu/Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=16032"/>
		<updated>2026-05-06T10:34:45Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added output.log information, formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basic Navigation ==&lt;br /&gt;
&lt;br /&gt;
bwVisu is quite simple and intuitively designed to make launching apps on the cluster as user-friendly as possible. Once you have successfully logged into bwVisu, the first thing you see is a list of pinned apps. These are the available apps that you can launch as a job on the cluster.&lt;br /&gt;
&lt;br /&gt;
In the navigation bar, the user has the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Files&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Interactive Apps&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Shell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Here, you can access your home directory on Helix. In a graphical user interface, files can be downloaded and uploaded, and new files and folders can be created. You will encounter an error message if you try to see data that you have no access to.&lt;br /&gt;
&lt;br /&gt;
In the Home Directory the results and logs from the apps are stored. You get the following interface:&lt;br /&gt;
&lt;br /&gt;
[[File:BwVisuFiles.png|bwVisu-files|center|x300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;For SDS@hd users:&amp;lt;/u&amp;gt;&#039;&#039;&#039; Data on SDS@hd (under /mnt/sds-hd) can only be accessed from within jobs. Therefore, you need to open a terminal (within a JupyterLab or Rstudio job or directly on Helix) and set a symbolic link to your SDS@hd folder in your home directory. For example like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interactive Apps ===&lt;br /&gt;
&lt;br /&gt;
This displays the apps that the user can run on the cluster, possibly across multiple nodes. These apps initiate an interactive session which the user can directly connect to and, depending on the app, receive a graphical interface.&lt;br /&gt;
&lt;br /&gt;
=== My Interactive Sessions ===&lt;br /&gt;
&lt;br /&gt;
At bwVisu, it is possible to start several interactive apps simultaneously. Here, one can view an overview of currently running interactive apps and completed sessions. It is also possible to view the log for each session. As soon as one starts an interactive app, one is automatically redirected here. Even if you log out of bwVisu and log back in, you can still see the information and logs from the finished interactive apps here until you delete it.&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
For bwForCluster Helix users only: After entering your OTP and password a shell on the login node of bwForCluster Helix opens. This way, you can for example create workspaces when you need more space. Please look up the details under [[Helix/Filesystems#Workspaces | Helix Workspaces]]. They can&#039;t be seen in the File Viewer but are available within the bwVisu jobs.&lt;br /&gt;
&lt;br /&gt;
== Start a Job ==&lt;br /&gt;
[[File:bwVisuConcept.png|center|x170px]]&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt; At the start page of the web frontend, you can start a new job by clicking on an application version in the list of pinned apps.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You will now see the application description and options to adjust the job resources.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To find the best resource settings for your jobs, please have a look at the [https://helix-monitoring.bwservices.uni-heidelberg.de/ bwForCluster Helix monitoring portal] . There, you can see how much of the requested resources where actually used by your jobs.&lt;br /&gt;
&amp;lt;li&amp;gt; At the bottom of the page, beneath the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button, you can find a link for accessing the logs/session data of all your jobs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The interface can differ per app because each app can have individual configuration options. &amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:bwVisuRStudio.png|bwVisu-rstudio|center|x200px]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button to start a new job with this application. You can&#039;t start two jobs with the same application. Launching an app can take some time depending on the requested resources and cluster utilization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;Interactive Sessions&amp;lt;/code&amp;gt; page opens with the details of your job.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Host:&#039;&#039;&#039; Indicates on which nodes the application is running.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Time Remaining:&#039;&#039;&#039; Each application is given a time limit, which can also be set in advance. In this example, the application is supposed to run for one hour.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Session ID:&#039;&#039;&#039; This is a link that leads to the folder of the session. Among other things, application logs are displayed here, which can be viewed in the UI.&lt;br /&gt;
[[File:BwVisuRstudioRun.png|bwVisu-rstudio-run|center|x200px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Connect to the job with your browser by clicking &amp;lt;code&amp;gt;connect to &amp;amp;lt;application&amp;amp;gt;&amp;lt;/code&amp;gt;. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adjust noVNC Applications ==&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: middle; float: right;&amp;quot;&amp;gt; [[File:bwVisu Fiji noVNCMenu.png|thumb|none|x200px|noVNC menu within Fiji]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top; float: right;&amp;quot;&amp;gt; [[File:bwVisu_Fiji_Running.png|thumb|none|x200px|Job details view of a running Fiji Job]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
noVNC is an open-source VNC browser client. Some bwVisu applications use noVNC and therefore, come with additional options in the view of the job details and an additional menu within the running application.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Running Job View&#039;&#039;&#039; on the interactive sessions page&lt;br /&gt;
** Compression slider: Before opening the application, you can choose the compression level to use. 0 means no compression while 9 offers the best compression but uses more CPU resources on the cluster which can be slower. &lt;br /&gt;
** Image Quality slider: Before opening the application, you can choose the image quality level. With this you can control the desired JPEG quality.&lt;br /&gt;
** View Only (Share-able Link) button: By clicking this button the application opens in view only mode. You can share this link with collaborators or students while you launch your noVNC application normally for yourself. This way, others can follow what you are doing. For every job you need to generate a new link. &lt;br /&gt;
* &#039;&#039;&#039;noVNC menu&#039;&#039;&#039; within the running application&lt;br /&gt;
** When you open the application you can see an additional menu on the left with options. For the ones using the application in view-only mode it is helpful to select the option to show a dot instead of not showing the mouse cursor at all. Therefore go to &amp;quot;Options&amp;quot; and then &amp;quot;Expand&amp;quot;. &lt;br /&gt;
** For copying data, you need to use the clipboard. When copying something locally, you need to put it into the clipboard before you can use it within the application. The same goes the other way around.&lt;br /&gt;
* &#039;&#039;&#039;Adjust window size&#039;&#039;&#039; and position of the app by executing a right click at the edge of the app window frame, so that a menu shows up.&lt;br /&gt;
&lt;br /&gt;
== Terminate a Job ==&lt;br /&gt;
&lt;br /&gt;
The job will terminate when the job runtime requested in the job submission form has expired To terminate an application yourself, you can click the delete button or end the application in the interactive session. If the app is terminated in the interactive session, the window no longer shows &amp;lt;code&amp;gt;Running&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;Completed&amp;lt;/code&amp;gt;. With the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; button, you end the session and also remove the list entry from &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the &#039;&#039;News&#039;&#039; section at the bwVisu start page in the wiki. &lt;br /&gt;
* Depending on the problem, it can help to look up the related bwForCluster Helix wiki pages. For example: &lt;br /&gt;
*: &#039;&#039;&#039;Error:&#039;&#039;&#039; Disk space exceeded &amp;amp;rarr; &#039;&#039;&#039;[https://wiki.bwhpc.de/e/Helix/Filesystems#Troubleshooting Filesystems: Troubleshooting]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The webservice is not accessible. &lt;br /&gt;
*: If you&#039;re a bwForCluster Helix user, you need to have logged in to Helix at least once so that you&#039;re home directory gets created. Afterwards, the webservice page should be accessible. &lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The bwVisu job fails or doesn&#039;t start.&lt;br /&gt;
*: You can try to look for the issue yourself: &lt;br /&gt;
*:* Reload the page without using the cache: &amp;lt;code&amp;gt;Strg+Shift+R&amp;lt;/code&amp;gt; (Windows/Linux) or &amp;lt;code&amp;gt;Cmd+Shift+R&amp;lt;/code&amp;gt; (Mac)&lt;br /&gt;
*:* Empty the browser cache:&lt;br /&gt;
*:** Chrome/Edge: &amp;lt;code&amp;gt;Strg+Shift+Entf&amp;lt;/code&amp;gt; → choose timeframe all → choose &#039;&#039;Images and Files in Cache&#039;&#039; → choose &#039;&#039;Delete Files&#039;&#039;&lt;br /&gt;
*:** Firefox: &amp;lt;code&amp;gt;Strg+Shift+Entf&amp;lt;/code&amp;gt; → choose timeframe all → choose &#039;&#039;Cache&#039;&#039; → choose &#039;&#039;Delete Files&#039;&#039;&lt;br /&gt;
*:* Test alternative browser (Firefox, Chrome, Edge, ...)&lt;br /&gt;
*:* Use a private session (without saved cookies and cache): &amp;lt;code&amp;gt;Strg+Shift+N&amp;lt;/code&amp;gt; (Chrome) or &amp;lt;code&amp;gt;Strg+Shift+P&amp;lt;/code&amp;gt; (Firefox).&lt;br /&gt;
* &#039;&#039;&#039;Support:&#039;&#039;&#039; If you can&#039;t solve the issue, write to the support and provide the following information: &lt;br /&gt;
** Date and time of the issue. &lt;br /&gt;
** Job-id (the number in brackets after the jobname)&lt;br /&gt;
** The &amp;lt;code&amp;gt;output.log&amp;lt;/code&amp;gt; file that you can find when following the session id link. &lt;br /&gt;
** Please report patterns that you recognize. For example: &lt;br /&gt;
*** The issue happens around a specific time of day. &lt;br /&gt;
*** The issue is connected to the duration of usage (e.g. happens always after ca. one hour). &lt;br /&gt;
*** The issue appears after specific user interactions (using a specific method, opening the terminal, clicking a specific button, ...)&lt;br /&gt;
: You might be asked for further information: &lt;br /&gt;
:* The internet browser that you user and its version. For example Firefox 128. &lt;br /&gt;
:* Provide more information about network traffic via a HAR-file. First start a job and open the application. Then follow he instructions below: &lt;br /&gt;
:** Instructions for Chrome/Edge:&lt;br /&gt;
:**# Open developer tools with &amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt; or right click -&amp;gt; &#039;&#039;Inspect&#039;&#039; Then choose the tab &#039;&#039;Network&#039;&#039;.&lt;br /&gt;
:**# Activate the checkbox &#039;&#039;Preserve log&#039;&#039;.&lt;br /&gt;
:**# Reproduce the issue in the current tab. &lt;br /&gt;
:**# After the problem happened again: Click the export symbol (⬇️) in the menu of the network-tabs and choose &#039;&#039;Export HAR...&#039;&#039;.&lt;br /&gt;
:** Instructions for Firefox:&lt;br /&gt;
:**# Open developer tools with &amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt; and choose the tab &#039;&#039;Network analysis&#039;&#039;.&lt;br /&gt;
:**# Click the settings symbol (⚙️) and activate &#039;&#039;Continuous Protocol&#039;&#039;.&lt;br /&gt;
:**# Reproduce the issue in the current tab.&lt;br /&gt;
:**# After the problem happened again: Click the settings symbol again (⚙️) and choose &#039;&#039;Save everything as HAR&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster&amp;diff=16031</id>
		<title>Registration/bwForCluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster&amp;diff=16031"/>
		<updated>2026-05-05T17:43:47Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Used same formatting as for bwUniCluster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Registration bwForCluster =&lt;br /&gt;
&lt;br /&gt;
A bwForCluster is a cluster for a specific [https://www.bwhpc.de/cluster.php research area].&lt;br /&gt;
You can apply for a bwForCluster and the &amp;quot;cluster assignment team&amp;quot; will assign you to the appropriate cluster for your research area, taking into account your specific hardware/software needs.&lt;br /&gt;
bwForClusters are funded by the German Research Foundation (DFG) and the Ministry of Science, Research and the Arts of Baden-Württemberg on the basis of grant applications (cf. proposals application guidelines according to Art. 91b GG).&lt;br /&gt;
&lt;br /&gt;
All members of the universities in Baden-Württemberg can apply for an account.&lt;br /&gt;
&lt;br /&gt;
The use of the bwForClusters is free of charge.&lt;br /&gt;
&lt;br /&gt;
== Three Steps for Registration ==&lt;br /&gt;
&lt;br /&gt;
[[File:bwForCluster-Registration.png|thumb|right|upright=1.2|bwForCluster Registration Process]]&lt;br /&gt;
The registration process for a bwForCluster is divided into three steps, whereby step A+B can be performed in parallel.&lt;br /&gt;
When both are completed, you can perform step C.&lt;br /&gt;
&lt;br /&gt;
To which cluster you get access depends on your research area and will be decided in step B.&lt;br /&gt;
&lt;br /&gt;
* Step A: You need to get the &#039;&#039;&#039;bwForCluster Entitlement&#039;&#039;&#039; from your university/college.&amp;lt;br /&amp;gt;&amp;amp;rarr; &#039;&#039;&#039;[[Registration/bwForCluster/Entitlement|bwForCluster User Access Step A]]&#039;&#039;&#039;&lt;br /&gt;
* Step B: You need to &#039;&#039;&#039;apply for or join a Rechenvorhaben/project&#039;&#039;&#039; on the &amp;quot;central application site&amp;quot; (ZAS).&amp;lt;br /&amp;gt;&amp;amp;rarr; &#039;&#039;&#039;[[Registration/bwForCluster/RV|bwForCluster User Access Step B]]&#039;&#039;&#039;&lt;br /&gt;
* Step C: You need to &#039;&#039;&#039;register for a bwForCluster&#039;&#039;&#039; (create an account on the cluster).&amp;lt;br /&amp;gt;&amp;amp;rarr; &#039;&#039;&#039;[[Registration/bwForCluster/Service|bwForCluster User Access Step C]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After finishing Step C, you are done with registration. &lt;br /&gt;
&lt;br /&gt;
* To &#039;&#039;&#039;login&#039;&#039;&#039; to one of the bwForClusters, please refer to the general &amp;lt;br /&amp;gt; &amp;amp;rarr; &#039;&#039;&#039;[[Registration/Login|Login Guide]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information for registered users ==&lt;br /&gt;
&lt;br /&gt;
* If you want to check if your &#039;&#039;&#039;account&#039;&#039;&#039; is still valid on one of the bwForClusters, please refer to the general &amp;lt;br /&amp;gt; &amp;amp;rarr; &#039;&#039;&#039;[[Registration/Account|Account Guide]]&#039;&#039;&#039;&lt;br /&gt;
* If you want to &#039;&#039;&#039;create a second factor&#039;&#039;&#039;, please refer to &amp;lt;br /&amp;gt; &amp;amp;rarr; &#039;&#039;&#039;[[Registration/2FA|Generate a Second Factor (2FA)]]&#039;&#039;&#039; (Justus 2, Helix, NEMO2)&lt;br /&gt;
* If you need to &#039;&#039;&#039;change or forgot your password&#039;&#039;&#039; for a bwForCluster, please refer to the general &amp;lt;br /&amp;gt; &amp;amp;rarr; &#039;&#039;&#039;[[Registration/Password|Password Guide]]&#039;&#039;&#039;&lt;br /&gt;
* If you want to &#039;&#039;&#039;use SSH keys&#039;&#039;&#039; on a bwForCluster, please refer to &amp;lt;br /&amp;gt; &amp;amp;rarr; &#039;&#039;&#039;[[Registration/SSH|Registering SSH Keys with your Cluster]]&#039;&#039;&#039;&lt;br /&gt;
* If you want do &#039;&#039;&#039;de-register your user account&#039;&#039;&#039; from a bwForCluster, please refer to the general &amp;lt;br /&amp;gt;&amp;amp;rarr; &#039;&#039;&#039;[[Registration/Deregistration|De-registration Guide]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=16030</id>
		<title>Helix/bwVisu/Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=16030"/>
		<updated>2026-05-05T15:39:06Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added things to try and information to report.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basic Navigation ==&lt;br /&gt;
&lt;br /&gt;
bwVisu is quite simple and intuitively designed to make launching apps on the cluster as user-friendly as possible. Once you have successfully logged into bwVisu, the first thing you see is a list of pinned apps. These are the available apps that you can launch as a job on the cluster.&lt;br /&gt;
&lt;br /&gt;
In the navigation bar, the user has the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Files&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Interactive Apps&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Shell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Here, you can access your home directory on Helix. In a graphical user interface, files can be downloaded and uploaded, and new files and folders can be created. You will encounter an error message if you try to see data that you have no access to.&lt;br /&gt;
&lt;br /&gt;
In the Home Directory the results and logs from the apps are stored. You get the following interface:&lt;br /&gt;
&lt;br /&gt;
[[File:BwVisuFiles.png|bwVisu-files|center|x300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;For SDS@hd users:&amp;lt;/u&amp;gt;&#039;&#039;&#039; Data on SDS@hd (under /mnt/sds-hd) can only be accessed from within jobs. Therefore, you need to open a terminal (within a JupyterLab or Rstudio job or directly on Helix) and set a symbolic link to your SDS@hd folder in your home directory. For example like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interactive Apps ===&lt;br /&gt;
&lt;br /&gt;
This displays the apps that the user can run on the cluster, possibly across multiple nodes. These apps initiate an interactive session which the user can directly connect to and, depending on the app, receive a graphical interface.&lt;br /&gt;
&lt;br /&gt;
=== My Interactive Sessions ===&lt;br /&gt;
&lt;br /&gt;
At bwVisu, it is possible to start several interactive apps simultaneously. Here, one can view an overview of currently running interactive apps and completed sessions. It is also possible to view the log for each session. As soon as one starts an interactive app, one is automatically redirected here. Even if you log out of bwVisu and log back in, you can still see the information and logs from the finished interactive apps here until you delete it.&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
For bwForCluster Helix users only: After entering your OTP and password a shell on the login node of bwForCluster Helix opens. This way, you can for example create workspaces when you need more space. Please look up the details under [[Helix/Filesystems#Workspaces | Helix Workspaces]]. They can&#039;t be seen in the File Viewer but are available within the bwVisu jobs.&lt;br /&gt;
&lt;br /&gt;
== Start a Job ==&lt;br /&gt;
[[File:bwVisuConcept.png|center|x170px]]&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt; At the start page of the web frontend, you can start a new job by clicking on an application version in the list of pinned apps.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You will now see the application description and options to adjust the job resources.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To find the best resource settings for your jobs, please have a look at the [https://helix-monitoring.bwservices.uni-heidelberg.de/ bwForCluster Helix monitoring portal] . There, you can see how much of the requested resources where actually used by your jobs.&lt;br /&gt;
&amp;lt;li&amp;gt; At the bottom of the page, beneath the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button, you can find a link for accessing the logs/session data of all your jobs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The interface can differ per app because each app can have individual configuration options. &amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:bwVisuRStudio.png|bwVisu-rstudio|center|x200px]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button to start a new job with this application. You can&#039;t start two jobs with the same application. Launching an app can take some time depending on the requested resources and cluster utilization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;Interactive Sessions&amp;lt;/code&amp;gt; page opens with the details of your job.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Host:&#039;&#039;&#039; Indicates on which nodes the application is running.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Time Remaining:&#039;&#039;&#039; Each application is given a time limit, which can also be set in advance. In this example, the application is supposed to run for one hour.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Session ID:&#039;&#039;&#039; This is a link that leads to the folder of the session. Among other things, application logs are displayed here, which can be viewed in the UI.&lt;br /&gt;
[[File:BwVisuRstudioRun.png|bwVisu-rstudio-run|center|x200px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Connect to the job with your browser by clicking &amp;lt;code&amp;gt;connect to &amp;amp;lt;application&amp;amp;gt;&amp;lt;/code&amp;gt;. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adjust noVNC Applications ==&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: middle; float: right;&amp;quot;&amp;gt; [[File:bwVisu Fiji noVNCMenu.png|thumb|none|x200px|noVNC menu within Fiji]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top; float: right;&amp;quot;&amp;gt; [[File:bwVisu_Fiji_Running.png|thumb|none|x200px|Job details view of a running Fiji Job]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
noVNC is an open-source VNC browser client. Some bwVisu applications use noVNC and therefore, come with additional options in the view of the job details and an additional menu within the running application.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Running Job View&#039;&#039;&#039; on the interactive sessions page&lt;br /&gt;
** Compression slider: Before opening the application, you can choose the compression level to use. 0 means no compression while 9 offers the best compression but uses more CPU resources on the cluster which can be slower. &lt;br /&gt;
** Image Quality slider: Before opening the application, you can choose the image quality level. With this you can control the desired JPEG quality.&lt;br /&gt;
** View Only (Share-able Link) button: By clicking this button the application opens in view only mode. You can share this link with collaborators or students while you launch your noVNC application normally for yourself. This way, others can follow what you are doing. For every job you need to generate a new link. &lt;br /&gt;
* &#039;&#039;&#039;noVNC menu&#039;&#039;&#039; within the running application&lt;br /&gt;
** When you open the application you can see an additional menu on the left with options. For the ones using the application in view-only mode it is helpful to select the option to show a dot instead of not showing the mouse cursor at all. Therefore go to &amp;quot;Options&amp;quot; and then &amp;quot;Expand&amp;quot;. &lt;br /&gt;
** For copying data, you need to use the clipboard. When copying something locally, you need to put it into the clipboard before you can use it within the application. The same goes the other way around.&lt;br /&gt;
* &#039;&#039;&#039;Adjust window size&#039;&#039;&#039; and position of the app by executing a right click at the edge of the app window frame, so that a menu shows up.&lt;br /&gt;
&lt;br /&gt;
== Terminate a Job ==&lt;br /&gt;
&lt;br /&gt;
The job will terminate when the job runtime requested in the job submission form has expired To terminate an application yourself, you can click the delete button or end the application in the interactive session. If the app is terminated in the interactive session, the window no longer shows &amp;lt;code&amp;gt;Running&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;Completed&amp;lt;/code&amp;gt;. With the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; button, you end the session and also remove the list entry from &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the News section at the bwVisu start page in the wiki. &lt;br /&gt;
* Depending on the problem, it can help to look up the related bwForCluster Helix wiki pages. For example: &lt;br /&gt;
*: &#039;&#039;&#039;Error:&#039;&#039;&#039; Disk space exceeded &amp;amp;rarr; &#039;&#039;&#039;[https://wiki.bwhpc.de/e/Helix/Filesystems#Troubleshooting Filesystems: Troubleshooting]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The webservice is not accessible. &lt;br /&gt;
*: If you&#039;re a bwForCluster Helix user, you need to have logged in to Helix at least once so that you&#039;re home directory gets created. Afterwards, the webservice page should be accessible. &lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The bwVisu job fails or doesn&#039;t start.&lt;br /&gt;
*: You can try to look for the issue yourself: &lt;br /&gt;
*:* Reload the page without using the cache: `Strg+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac)&lt;br /&gt;
*:* Empty the browser cache:&lt;br /&gt;
*:** Chrome/Edge: `Strg+Shift+Entf` → choose timeframe all → choose &amp;quot;Images and Files in Cache&amp;quot; → choose &amp;quot;Delete Files&amp;quot;&lt;br /&gt;
*:** Firefox: `Strg+Shift+Entf` → choose timeframe all → choose &amp;quot;Cache&amp;quot; → choose &amp;quot;Delete Files&amp;quot;&lt;br /&gt;
*:** Test alternative browser (Firefox, Chrome, Edge, ...)&lt;br /&gt;
*:** Use a private session (without saved cookies and cache): `Strg+Shift+P` (Firefox) or `Strg+Shift+N` (Chrome).&lt;br /&gt;
*: If this doesn&#039;t help, write to the support and provide the following information: &lt;br /&gt;
*:* Date and time of the issue. &lt;br /&gt;
*:* Job-id&lt;br /&gt;
*:* Please report patterns that you recognize. For example: &lt;br /&gt;
*:** The issue happens around a specific time of day. &lt;br /&gt;
*:** The issue is connected to the duration of usage (e.g. happens always after ca. one hour). &lt;br /&gt;
*:** The issue appears after specific user interactions (using a specific method, opening the terminal, clicking a specific button, ...)&lt;br /&gt;
*: You might be asked for further information: &lt;br /&gt;
*:* The internet browser that you user and its version. For example Firefox 128. &lt;br /&gt;
*:* Provide more information about network traffic via a HAR-file. &lt;br /&gt;
*:** Instructions for Chrome/Edge:&lt;br /&gt;
*:**# Open developer tools with `F12` or right click -&amp;gt; &amp;quot;Inspect&amp;quot;&lt;br /&gt;
*:**# Choose the tab &amp;quot;Network&amp;quot; &lt;br /&gt;
*:**# Activate the checkbox &amp;quot;Preserve log&amp;quot;&lt;br /&gt;
*:**# Reproduce the issue (open new terminal)&lt;br /&gt;
*:**# After the problem happened again: Click the Export-Symbol (⬇️) in the menu of the network-tabs and choose &amp;quot;Export HAR...&amp;quot;&lt;br /&gt;
*:** Instructions for Firefox:&lt;br /&gt;
*:**# Open developer tools with `F12`&lt;br /&gt;
*:**# Choose the tab &amp;quot;Network analysis&amp;quot;&lt;br /&gt;
*:**# Click the options symbol (⚙️) an activate &amp;quot;Continuous Protocol&amp;quot;&lt;br /&gt;
*:**# Reproduce the issue (open new terminal)&lt;br /&gt;
*:**# After the problem happened again: Click the option symbol again (⚙️) and choose &amp;quot;Save everything as HAR&amp;quot;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=16029</id>
		<title>Helix/bwVisu/JupyterLab</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=16029"/>
		<updated>2026-05-05T11:24:22Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added instructions for using Helix modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://jupyter.org/ JupyterLab] is an integrated development environment (IDE) that provides a flexible and scalable interface for the Jupyter Notebook system. It supports interactive data science and scientific computing across over 40 programming languages (including Python, Julia, and R).&lt;br /&gt;
&lt;br /&gt;
== Change Python Version ==&lt;br /&gt;
&lt;br /&gt;
The default python version can be seen by running &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt; in the terminal. &lt;br /&gt;
&lt;br /&gt;
A different python version can be installed into a new virtual environment and then registered as IPython kernel for the usage in JupyterLab. This is explained in the chapter [[#Add_packages_via_conda_environments | add packages via conda environments]].&lt;br /&gt;
&lt;br /&gt;
== Install Python Packages ==&lt;br /&gt;
&lt;br /&gt;
Python packages can be added by installing them into a virtual environment and then creating an IPython kernel from the virtual environment. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kernels can be shared&amp;lt;/u&amp;gt;. See the notes below. &amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to move a virtual environment, it is adivsed to recreate it in the new place. Otherwise, dependencies based on relative paths will break. &lt;br /&gt;
&lt;br /&gt;
# Create a virtual environment with...&lt;br /&gt;
#* [[#Add_packages_via_venv_virtual_environments | ...venv]] or&lt;br /&gt;
#* [[#Add_packages_via_Conda_virtual_environments | ...conda]] (choose this option if you want to install a different python version) or &lt;br /&gt;
#* ...[https://docs.astral.sh/uv/getting-started/ uv] if you want to install a different python version but don&#039;t want to use conda. &lt;br /&gt;
# [[#Create_an_IPython_Kernel | Create an IPython kernel]] from the virtual environment&lt;br /&gt;
# Use the kernel within JupyterLab&lt;br /&gt;
#* By default new kernels are saved under &amp;lt;code&amp;gt;~/.local/share/jupyter&amp;lt;/code&amp;gt; and this location is automatically detected. Therefore, new kernels are directly available. &lt;br /&gt;
#*:[[File:BwVisu JuypterLab KernelPath.png|In the JupyterLab job configuration form, a custom kernel path can be provided.|right|thumb|x150px]]&lt;br /&gt;
#* If the kernel is saved somewhere else, the path can be provided in the &amp;quot;Kernel path&amp;quot; field when configuring the JupyterLab job (see image). For a kernel placed under &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter/kernels/my_kernel&amp;lt;/code&amp;gt; the needed &amp;quot;Kernel path&amp;quot; would be &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter&amp;lt;/code&amp;gt;. &lt;br /&gt;
# When the kernel is used the first time, the file &amp;lt;code&amp;gt;notebook_secrets&amp;lt;/code&amp;gt; is created automatically. It can be found under &amp;quot;Kernel path&amp;quot;. For others to use the kernel, they must have read access to this file. The command &amp;lt;code&amp;gt;chmod 750 notebook_secrets&amp;lt;/code&amp;gt; would for example allow the whole SDS@hd SV read access. For the access management in workspaces, please see [[Workspace#Setting_Permissions_for_Sharing_Files| Wokspace Permissions]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Notes regarding the sharing of IPython kernels&amp;lt;/u&amp;gt;&lt;br /&gt;
* The virtual environment and the kernel need to be placed in a shared directory. For example at SDS@hd.&lt;br /&gt;
* There could be a subdirectory for the virtual environments and one for the kernels. &lt;br /&gt;
* The path to the kernels is saved in the environment variable $JUPYTER_DATA_DIR. Jupyter relevant paths can be seen with &amp;lt;code&amp;gt;jupyter --paths&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via &#039;&#039;venv&#039;&#039; virtual environments ===&lt;br /&gt;
More information about venv or other python virtual environments can be found at the [[Development/Python | Python]] page. &lt;br /&gt;
&lt;br /&gt;
Steps for creating a &#039;&#039;&#039;venv&#039;&#039;&#039; virtual environment:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual evironment: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m venv &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;env_parent_dir&amp;lt;/code&amp;gt; is the path to the folder where the virtual environment shall be created. Relative paths can be used.&lt;br /&gt;
* Caution: If you you want to share the environment with others, make sure to already create it in the shared place. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;source &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;/bin/activate&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Update pip and install packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install -U pip --no-user&lt;br /&gt;
# when the environment is installed in home&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt;&lt;br /&gt;
# when the environment is installed somewhere else and shall not have dependencies in home so that others can access it as well&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt; --no-user&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via Conda virtual environments ===&lt;br /&gt;
More information about using conda can be found at the [[Development/Conda | Conda]] page. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the miniforge module by clicking first on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page and then on the &amp;amp;quot;load&amp;amp;quot; button right of the entry for miniforge in the software module menu. &lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual environment: &lt;br /&gt;
* If you are the only person using the environment, you can install it in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --name &amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* If you want to install it into a different directory, for example a shared place:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --prefix &amp;lt;path_to_shared_directory&amp;gt;/&amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate your environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda activate &amp;lt;myenv&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install your packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda install &amp;lt;mypackage&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create an IPython Kernel ==&lt;br /&gt;
&lt;br /&gt;
Python kernels are implementations of the Jupyter notebook environment for different languages or virtual environments. You can switch between kernels easily, allowing you to use the best tool for a specific task.&lt;br /&gt;
conda_kernels&lt;br /&gt;
&lt;br /&gt;
=== Create a kernel from a virtual environment ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the virtual environment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the ipykernel package:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install ipykernel&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Register the virtual environment as custom kernel to Jupyter. &lt;br /&gt;
* If you are the only person using the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --user --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can be found under &amp;lt;code&amp;gt;~/.local/share/jupyter/kernels/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you installed the environment in a shared place and want to have the kernel there as well: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --prefix &amp;lt;path_to_kernel_folder&amp;gt; --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can then be found under &amp;lt;code&amp;gt;path_to_kernel_folder/share/jupyter/kernels/&amp;lt;kernel_name&amp;gt;&amp;lt;/code&amp;gt;. As long as the same &amp;lt;code&amp;gt;path_to_kernel_folder&amp;lt;/code&amp;gt; is used, all kernels will be saved next to each other in &amp;quot;kernels&amp;quot;. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Language Support ===&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports over 40 programming languages including Python, R, Julia, and Scala. This is achieved through the use of different kernels.&lt;br /&gt;
&lt;br /&gt;
==== R Kernel ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the cluster:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load math/R&lt;br /&gt;
$ R&lt;br /&gt;
&amp;amp;gt; install.packages(&#039;IRkernel&#039;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On bwVisu:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Jupyter App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In left menu: load math/R&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Console:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ R&lt;br /&gt;
&amp;amp;gt; IRkernel::installspec(displayname = &#039;R 4.2&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Start kernel &#039;R 4.2&#039; as console or notebook&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Julia Kernel ====&lt;br /&gt;
&lt;br /&gt;
Load the math/julia module. Open the Terminal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
julia&lt;br /&gt;
]&lt;br /&gt;
add IJulia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, Julia is available as a kernel.&lt;br /&gt;
&lt;br /&gt;
== Interactive Widgets ==&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports interactive widgets that can create UI controls for interactive data visualization and manipulation within the notebooks. Example of using an interactive widget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;{.python&amp;quot;&amp;gt;from ipywidgets import IntSlider&lt;br /&gt;
slider = IntSlider()&lt;br /&gt;
display(slider)&amp;lt;/pre&amp;gt;&lt;br /&gt;
These widgets can be sliders, dropdowns, buttons, etc., which can be connected to Python code running in the backend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I use bwForCluster Helix software modules?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
First click on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page. Then load a module by clicking on the &amp;quot;load&amp;quot; button next to the corresponding module entry.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I navigate to my SDS@hd folder in the file browser?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Open a terminal and set a symbolic link to your SDS@hd folder in your home directory. For example:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;I prefer VSCode over JupyterLab. Can I start a JupyterLab job and then connect with it via VSCode?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
This is not possible. Please start the job directly on Helix instead. You can find the instructions at the [[Development/VS_Code#Connect_to_Remote_Jupyter_Kernel | VSCode page]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;My conda commands are interrupted with message &#039;Killed&#039;.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Request more memory when starting Jupyter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Jupyterlab doesn&#039;t let me in but asks for a password.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Try using more memory for the job. If this doesn&#039;t help, try using the inkognito mode of your browser as the browser cache might be the problem.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=File:Bwvisu2-gui.png&amp;diff=16012</id>
		<title>File:Bwvisu2-gui.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=File:Bwvisu2-gui.png&amp;diff=16012"/>
		<updated>2026-04-28T08:25:36Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16011</id>
		<title>Registration/bwForCluster/Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16011"/>
		<updated>2026-04-24T11:51:42Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: bwServices functionality: added ssh key and token&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Steps A + B in the [[Registration/bwForCluster | registration process]] must be finished. &lt;br /&gt;
&lt;br /&gt;
== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
# Visit the bwForCluster Helix &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de registration page bwServices]&#039;&#039;&#039;.&lt;br /&gt;
#: [[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
# &#039;&#039;&#039;Select your home organization&#039;&#039;&#039; from the list on the main page and click Proceed/Fortfahren. You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization.&lt;br /&gt;
# Enter the &#039;&#039;&#039;username and password&#039;&#039;&#039; of your home organization (usually these credentials are also used for other services like email) and click Login/Einloggen.&lt;br /&gt;
# When you log in to bwServices for the first time, an overview will appear, with the account information that your home institution submits to the system. Please verify that all data is valid and then click &#039;&#039;Continue/Weiter&#039;&#039;.&lt;br /&gt;
#  You will be redirected back to the bwServices main page. It shows all the statewide services you have access to. Click &#039;&#039;&#039;Register/Registrieren&#039;&#039;&#039; under the field labeled &#039;&#039;bwForCluster Helix&#039;&#039;.&lt;br /&gt;
#: [[File:BwIDM-reg.png|center|frame|Register for Helix]]&lt;br /&gt;
# bwForCluster Helix uses a &#039;&#039;&#039;2-factor authentication&#039;&#039;&#039; (2FA) mechanism to increase security.&lt;br /&gt;
#: If you have never registered a 2FA token on bwIDM, the following error message will appear:&lt;br /&gt;
#: [[File:Bwidm-3-red.png|center|600px|thumb|Second factor missing.]]&lt;br /&gt;
#: Use this &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de/user/twofa.xhtml link]&#039;&#039;&#039; or select &#039;&#039;&#039;My Tokens&#039;&#039;&#039; in the main menu.&lt;br /&gt;
#: To register a new token, please follow these &#039;&#039;&#039;[[Registration/2FA|instructions]]&#039;&#039;&#039;.&lt;br /&gt;
#: Please complete this step before continuing.&lt;br /&gt;
# Read the Terms of Use / Nutzungsbedingungen, place a check mark next to &#039;&#039;I have read and accepted the terms of use&#039;&#039; and click &#039;&#039;Register/Registrieren&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Set a service password&#039;&#039;&#039; for bwForCluster Helix and click &#039;&#039;Save/Speichern&#039;&#039;.&lt;br /&gt;
#: Be sure to use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
[[File:BwIDM-passwd.png|center|600px|thumb|Set service password]]&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:70%; margin: auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
The service password is your private password for accessing the bwForCluster Helix. Don&#039;t ever share it with anyone!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Registration Website bwServices ==&lt;br /&gt;
The registration website &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de bwServices]&#039;&#039;&#039; offers the following functionality: &lt;br /&gt;
* Register for the service.&lt;br /&gt;
* Set or change your service password.&lt;br /&gt;
* Review your registration details under &amp;quot;Registry Info&amp;quot;. This includes your account status (active/lost_access).&lt;br /&gt;
* bwServices triggers an update of your user information upon login.&lt;br /&gt;
* Registering an [[Registration/SSH | SSH key]]. It can be used for login to &#039;&#039;bwForCluster Helix&#039;&#039;. &lt;br /&gt;
* Creating tokens for logins that need 2-factor authentication ([[Registration/2FA |2FA]]) like &#039;&#039;bwForCluster Helix&#039;&#039; and &#039;&#039;bwVisu&#039;&#039;.&lt;br /&gt;
* De-register from the service.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting with the Help of bwServices ===&lt;br /&gt;
When encountering connection issues with a service, the bwServices website is a good starting point for troubleshooting: &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Expired contract&#039;&#039;&#039; or inactive student id: &lt;br /&gt;
** No access to state services like the bwHPC clusters or SDS@hd is possible.&lt;br /&gt;
** You can see that this is the issue when the login to bwServices via your identity provider is not possible. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Recently (re)activated uni-id:&#039;&#039;&#039; Your id at your home organization was (re)activated a short time ago but this change didn&#039;t get through to the bwHPC cluster or SDS@hd service. &lt;br /&gt;
** Login to bwServices. This triggers an update of your user information. Some minutes later, the connection to the service should work. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Entitlement / RV missing:&#039;&#039;&#039; Prerequisites like entitlement ownership or RV membership aren&#039;t met (anymore). &lt;br /&gt;
** You can see the concrete issue and advice on how to move forward when looking at the registry info of the service on the bwServices website.&lt;br /&gt;
** When the issue is solved, the account status changes from LOST_ACCESS to ACTIVE. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Service Password:&#039;&#039;&#039; When trying to connect to the service, the service password is not accepted. &lt;br /&gt;
** At bwServices a [[#Setting_a_New_Service_Password | new password]] can be set for the service. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; OTP:&#039;&#039;&#039; In the case of login issues with a service that uses 2FA, you can check if you&#039;re OTP is working by going in the menu to &#039;&#039;Index&#039;&#039; -&amp;gt; &#039;&#039;My Tokens&#039;&#039;. &lt;br /&gt;
** If you&#039;re token is not working, please follow the instructions for a [[Helix/Login#Troubleshooting | Lost Token]].&lt;br /&gt;
&lt;br /&gt;
=== Setting a New Service Password === &lt;br /&gt;
&lt;br /&gt;
At any time, you can set a new service password via [https://bwservices.uni-heidelberg.de/ bwServices] by carrying out the following steps:&lt;br /&gt;
# Visit [https://bwservices.uni-heidelberg.de/ bwServices] and select your home organization. &lt;br /&gt;
# Authenticate yourself via your home-organizational user id / username and your home-organizational password.&lt;br /&gt;
# Find your service and select &#039;&#039;&#039;Set Service Password&#039;&#039;&#039;.&lt;br /&gt;
# Set new service password, repeat it and click the &#039;&#039;&#039;Save&#039;&#039;&#039; button.&lt;br /&gt;
# The page answers e.g. &amp;quot;password has been changed&amp;quot;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16010</id>
		<title>Registration/bwForCluster/Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/Helix&amp;diff=16010"/>
		<updated>2026-04-24T11:40:25Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Reformatting, added token issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Steps A + B in the [[Registration/bwForCluster | registration process]] must be finished. &lt;br /&gt;
&lt;br /&gt;
== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
# Visit the bwForCluster Helix &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de registration page bwServices]&#039;&#039;&#039;.&lt;br /&gt;
#: [[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
# &#039;&#039;&#039;Select your home organization&#039;&#039;&#039; from the list on the main page and click Proceed/Fortfahren. You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization.&lt;br /&gt;
# Enter the &#039;&#039;&#039;username and password&#039;&#039;&#039; of your home organization (usually these credentials are also used for other services like email) and click Login/Einloggen.&lt;br /&gt;
# When you log in to bwServices for the first time, an overview will appear, with the account information that your home institution submits to the system. Please verify that all data is valid and then click &#039;&#039;Continue/Weiter&#039;&#039;.&lt;br /&gt;
#  You will be redirected back to the bwServices main page. It shows all the statewide services you have access to. Click &#039;&#039;&#039;Register/Registrieren&#039;&#039;&#039; under the field labeled &#039;&#039;bwForCluster Helix&#039;&#039;.&lt;br /&gt;
#: [[File:BwIDM-reg.png|center|frame|Register for Helix]]&lt;br /&gt;
# bwForCluster Helix uses a &#039;&#039;&#039;2-factor authentication&#039;&#039;&#039; (2FA) mechanism to increase security.&lt;br /&gt;
#: If you have never registered a 2FA token on bwIDM, the following error message will appear:&lt;br /&gt;
#: [[File:Bwidm-3-red.png|center|600px|thumb|Second factor missing.]]&lt;br /&gt;
#: Use this &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de/user/twofa.xhtml link]&#039;&#039;&#039; or select &#039;&#039;&#039;My Tokens&#039;&#039;&#039; in the main menu.&lt;br /&gt;
#: To register a new token, please follow these &#039;&#039;&#039;[[Registration/2FA|instructions]]&#039;&#039;&#039;.&lt;br /&gt;
#: Please complete this step before continuing.&lt;br /&gt;
# Read the Terms of Use / Nutzungsbedingungen, place a check mark next to &#039;&#039;I have read and accepted the terms of use&#039;&#039; and click &#039;&#039;Register/Registrieren&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Set a service password&#039;&#039;&#039; for bwForCluster Helix and click &#039;&#039;Save/Speichern&#039;&#039;.&lt;br /&gt;
#: Be sure to use a secure password that is different from any other passwords you currently use or have used on other systems.&lt;br /&gt;
[[File:BwIDM-passwd.png|center|600px|thumb|Set service password]]&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:70%; margin: auto;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
The service password is your private password for accessing the bwForCluster Helix. Don&#039;t ever share it with anyone!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Registration Website bwServices ==&lt;br /&gt;
The registration website &#039;&#039;&#039;[https://bwservices.uni-heidelberg.de bwServices]&#039;&#039;&#039; offers the following functionality: &lt;br /&gt;
* Register for the service&lt;br /&gt;
* Set or change your service password&lt;br /&gt;
* Review your registration details under &amp;quot;Registry Info&amp;quot;. This includes your account status (active/lost_access).&lt;br /&gt;
* Triggers an update of your user information upon login.&lt;br /&gt;
* De-register from the service&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting with the Help of bwServices ===&lt;br /&gt;
When encountering connection issues with a service, the bwServices website is a good starting point for troubleshooting: &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Expired contract&#039;&#039;&#039; or inactive student id: &lt;br /&gt;
** No access to state services like the bwHPC clusters or SDS@hd is possible.&lt;br /&gt;
** You can see that this is the issue when the login to bwServices via your identity provider is not possible. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Recently (re)activated uni-id:&#039;&#039;&#039; Your id at your home organization was (re)activated a short time ago but this change didn&#039;t get through to the bwHPC cluster or SDS@hd service. &lt;br /&gt;
** Login to bwServices. This triggers an update of your user information. Some minutes later, the connection to the service should work. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Entitlement / RV missing:&#039;&#039;&#039; Prerequisites like entitlement ownership or RV membership aren&#039;t met (anymore). &lt;br /&gt;
** You can see the concrete issue and advice on how to move forward when looking at the registry info of the service on the bwServices website.&lt;br /&gt;
** When the issue is solved, the account status changes from LOST_ACCESS to ACTIVE. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; Service Password:&#039;&#039;&#039; When trying to connect to the service, the service password is not accepted. &lt;br /&gt;
** At bwServices a [[#Setting_a_New_Service_Password | new password]] can be set for the service. &lt;br /&gt;
* &amp;lt;ins&amp;gt;&#039;&#039;&#039;Issue:&amp;lt;/ins&amp;gt; OTP:&#039;&#039;&#039; In the case of login issues with a service that uses 2FA, you can check if you&#039;re OTP is working by going in the menu to &#039;&#039;Index&#039;&#039; -&amp;gt; &#039;&#039;My Tokens&#039;&#039;. &lt;br /&gt;
** If you&#039;re token is not working, please follow the instructions for a [[Helix/Login#Troubleshooting | Lost Token]].&lt;br /&gt;
&lt;br /&gt;
=== Setting a New Service Password === &lt;br /&gt;
&lt;br /&gt;
At any time, you can set a new service password via [https://bwservices.uni-heidelberg.de/ bwServices] by carrying out the following steps:&lt;br /&gt;
# Visit [https://bwservices.uni-heidelberg.de/ bwServices] and select your home organization. &lt;br /&gt;
# Authenticate yourself via your home-organizational user id / username and your home-organizational password.&lt;br /&gt;
# Find your service and select &#039;&#039;&#039;Set Service Password&#039;&#039;&#039;.&lt;br /&gt;
# Set new service password, repeat it and click the &#039;&#039;&#039;Save&#039;&#039;&#039; button.&lt;br /&gt;
# The page answers e.g. &amp;quot;password has been changed&amp;quot;.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Registration&amp;diff=16009</id>
		<title>SDS@hd/Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Registration&amp;diff=16009"/>
		<updated>2026-04-23T16:18:50Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed link, reformatting, added link from step A to B&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
The registration consists of two steps: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step A:&#039;&#039;&#039; Membership in Storage Project (Speichervorhaben/&#039;&#039;&#039;SV&#039;&#039;&#039;). There are two options: &lt;br /&gt;
*: &#039;&#039;&#039;a)&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#a)_Join_existing_SV | Join existing SV]]&lt;br /&gt;
*: &#039;&#039;&#039;b)&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#b)_Apply_for_new_SV | Apply for new SV]] (only possible for [https://www.bwidm.de/hochschulen.php bwIDM members])&lt;br /&gt;
* &#039;&#039;&#039;Step B:&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service |Registration for SDS@hd Service]]&lt;br /&gt;
&lt;br /&gt;
After finishing the registration, the &amp;lt;span id=&amp;quot;sds_registration_nextSteps&amp;quot;&amp;gt;&#039;&#039;&#039;next steps&#039;&#039;&#039;&amp;lt;/span&amp;gt; are: &lt;br /&gt;
* Check which management options there are for your respective role in the SV &amp;amp;rarr; [[SDS@hd/SV_Management |SV Management]]&lt;br /&gt;
* See how to access and use your storage space &amp;amp;rarr; [[SDS@hd/Access | Access]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SDS@hd_Registration.png|center|x500px|upright|SDS@hd Registration Process]]&lt;br /&gt;
&lt;br /&gt;
=== Step A: SV Membership ===&lt;br /&gt;
&lt;br /&gt;
You can either join an existing SV or start a new one. &lt;br /&gt;
&lt;br /&gt;
==== a) Join existing SV ====&lt;br /&gt;
To join an existing SV as a coworker: &lt;br /&gt;
# Get the following information from the SV responsible:&lt;br /&gt;
#:* SV acronym&lt;br /&gt;
#:* SV password&lt;br /&gt;
# Fill in and submit the [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_collaboration.php SV collaboration form] after logging in to the SDS@hd Managementtool. &lt;br /&gt;
#: You are now a member of the SV. The SV owner (and SV managers) will be notified automatically. &lt;br /&gt;
&amp;amp;rarr; [[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service | Go on with Step B]] if you are using SDS@hd for the first time.&lt;br /&gt;
&lt;br /&gt;
==== b) Apply for new SV ====&lt;br /&gt;
&lt;br /&gt;
This is typically done only by the leader of a scientific work group or the senior scientist of a research group/collaboration.&lt;br /&gt;
Any amount of co-workers can join your SV without having to register another project. You just need to provide them with the SV acronym and SV password. You&#039;ll receive this information via e-mail as soon as the SV application was successful. &lt;br /&gt;
&lt;br /&gt;
There are two steps: &lt;br /&gt;
# &#039;&#039;&#039;Get the permission / entitlement:&#039;&#039;&#039;. Your institution has to grant you the permission to start an SDS@hd storage project (&amp;quot;SDS@hd SV entitlement&amp;quot;). Please follow the procedure specific to your institution:&lt;br /&gt;
#: &amp;amp;rarr; see [[SDS@hd/Registration/Entitlement | Entitlement]].&lt;br /&gt;
# &#039;&#039;&#039;Apply for a new SV:&#039;&#039;&#039; &lt;br /&gt;
#: &amp;amp;rarr; Fill in the form at the [https://sds-hd.urz.uni-heidelberg.de/management SDS@hd Managementtool].&lt;br /&gt;
&amp;amp;rarr; [[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service | Go on with Step B]] if you are using SDS@hd for the first time.&lt;br /&gt;
&lt;br /&gt;
If you register your own SV, you will be:&lt;br /&gt;
* ...responsibe for providing new members with the necessary information to join the SV&lt;br /&gt;
*: &amp;amp;rarr; see [[SDS@hd/SV_Management#SV_Responsible_(SVV) | SV Responsible (SVV)]]&lt;br /&gt;
* ...held accountable for the co-workers in the SV&lt;br /&gt;
* ...asked to provide information for the two reports required by the DFG for their funding of SDS@hd&lt;br /&gt;
* ...likely asked for a contribution to a future DFG grant proposal for an extension of the storage system in your area of research (&amp;quot;wissenschaftliches Beiblatt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Step B: Registration for SDS@hd Service ===&lt;br /&gt;
[[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
&lt;br /&gt;
After step A you have to register your personal account on the storage system and set a service password.&lt;br /&gt;
&lt;br /&gt;
* Visit the registration website &#039;&#039;&#039;bwServices&#039;&#039;&#039;: [https://bwservices.uni-heidelberg.de/ https://bwservices.uni-heidelberg.de] &lt;br /&gt;
*# Select your home organization from the list and click &#039;&#039;Proceed&#039;&#039;&lt;br /&gt;
*#: You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organisation  &lt;br /&gt;
*# Enter your home-organisational user ID / username  and your home-organisational password and click &#039;&#039;Login&#039;&#039; button&lt;br /&gt;
*#: You will be redirected back to bwServices&lt;br /&gt;
* &#039;&#039;&#039;Register&#039;&#039;&#039; for the SDS@hd service:&lt;br /&gt;
*# Under &#039;&#039;The following services are available&#039;&#039; select the service &#039;&#039;SDS@hd - Scientific Data Storage&#039;&#039;. &lt;br /&gt;
*# Click &#039;&#039;Register&#039;&#039;&lt;br /&gt;
* Set your personal &#039;&#039;&#039;service password&#039;&#039;&#039; for SDS@hd. This is used for accessing SVs.&lt;br /&gt;
* The registration is finished.&lt;br /&gt;
*: &amp;amp;rarr; [[#sds_registration_nextSteps|next steps]]&lt;br /&gt;
&lt;br /&gt;
=== Change Service Password at bwServices ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; &#039;&#039;&#039;[[Registration/bwForCluster/Helix#Setting_a_New_Service_Password | Setting a New Service Password]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Registration&amp;diff=16008</id>
		<title>SDS@hd/Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Registration&amp;diff=16008"/>
		<updated>2026-04-23T12:16:49Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Registration Steps ==&lt;br /&gt;
&lt;br /&gt;
The registration consists of two steps: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Step A:&#039;&#039;&#039; Membership in Storage Project (Speichervorhaben/&#039;&#039;&#039;SV&#039;&#039;&#039;). There are two options: &lt;br /&gt;
*: &#039;&#039;&#039;a)&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#a)_Join_existing_SV | Join existing SV]]&lt;br /&gt;
*: &#039;&#039;&#039;b)&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#b)_Apply_for_new_SV | Apply for new SV]] (only possible for [https://www.bwidm.de/hochschulen.php bwIDM members])&lt;br /&gt;
* &#039;&#039;&#039;Step B:&#039;&#039;&#039; &amp;amp;rarr;[[SDS@hd/Registration#Step_B:_Registration_for_SDS@hd_Service |Registration for SDS@hd Service]]&lt;br /&gt;
&lt;br /&gt;
After finishing the registration, the next steps are: &lt;br /&gt;
* Check which management options there are for your respective role in the SV &amp;amp;rarr; [[SDS@hd/SV_Management |SV Management]]&lt;br /&gt;
* See how to access and use your storage space &amp;amp;rarr; [[SDS@hd/Access | Access]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SDS@hd_Registration.png|center|x500px|upright|SDS@hd Registration Process]]&lt;br /&gt;
&lt;br /&gt;
=== Step A: SV Membership ===&lt;br /&gt;
&lt;br /&gt;
You can either join an existing SV or start a new one. &lt;br /&gt;
&lt;br /&gt;
==== a) Join existing SV ====&lt;br /&gt;
To join an existing SV as a coworker: &lt;br /&gt;
# Your advisor (the SV responsible) will provide you with the following data on the SV:&lt;br /&gt;
#:* acronym&lt;br /&gt;
#:* password&lt;br /&gt;
# Login at the SDS@hd Managementtool and fill in the [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_collaboration.php SV collaboration form]&lt;br /&gt;
#: Provide the SV acronym and SV password.  &lt;br /&gt;
# After submitting the request, you will be assigned to the SV as a member and receive an email with the next steps. The SV owner (and SV managers) will be notified automatically.&lt;br /&gt;
&lt;br /&gt;
==== b) Apply for new SV ====&lt;br /&gt;
&lt;br /&gt;
This is typically done only by the leader of a scientific work group or the senior scientist of a research group/collaboration.&lt;br /&gt;
Any amount of co-workers can join your SV without having to register another project. You just need to provide them with the SV acronym and SV password. You&#039;ll receive this information via e-mail as soon as the SV application was successful. &lt;br /&gt;
&lt;br /&gt;
There are two steps: &lt;br /&gt;
# &#039;&#039;&#039;Get the permission / entitlement:&#039;&#039;&#039;. Your institution has to grant you the permission to start an SDS@hd storage project (&amp;quot;SDS@hd SV entitlement&amp;quot;). Please follow the procedure specific to your institution:&lt;br /&gt;
#: &amp;amp;rarr; see [[SDS@hd/Registration/Entitlement | Entitlement]].&lt;br /&gt;
# &#039;&#039;&#039;Apply for a new SV:&#039;&#039;&#039; &lt;br /&gt;
#: &amp;amp;rarr; Fill in the form at the [https://sds-hd.urz.uni-heidelberg.de/management SDS@hd Managementtool].&lt;br /&gt;
&lt;br /&gt;
If you register your own SV, you will be:&lt;br /&gt;
* ...responsibe for providing new members with the necessary information to join the SV&lt;br /&gt;
*: &amp;amp;rarr; see [[#SV_Responsible:_Manage_the_SV_and_its_Members | SV Responsible: Manage the SV and its Members]]&lt;br /&gt;
* ...held accountable for the co-workers in the SV&lt;br /&gt;
* ...asked to provide information for the two reports required by the DFG for their funding of SDS@hd&lt;br /&gt;
* ...likely asked for a contribution to a future DFG grant proposal for an extension of the storage system in your area of research (&amp;quot;wissenschaftliches Beiblatt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step B: Registration for SDS@hd Service ===&lt;br /&gt;
[[File:bwServices_chooseHomeOrganisation.png|right|300px|thumb|Select your home organization]]&lt;br /&gt;
&lt;br /&gt;
After step 1 you have to register your personal account on the storage system and set a service password.&lt;br /&gt;
Please visit: &lt;br /&gt;
* [https://bwservices.uni-heidelberg.de/ https://bwservices.uni-heidelberg.de] &lt;br /&gt;
*# Select your home organization from the list and click &#039;&#039;&#039;Proceed&#039;&#039;&#039;&lt;br /&gt;
*# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organisation  &lt;br /&gt;
*# Enter your home-organisational user ID / username  and your home-organisational password and click &#039;&#039;&#039;Login&#039;&#039;&#039; button&lt;br /&gt;
*# You will be redirected back to the registration website [https://bwservices.uni-heidelberg.de/ https://bwservices.uni-heidelberg.de/] &lt;br /&gt;
*# &amp;lt;div&amp;gt;Select unter &#039;&#039;&#039;The following services are available&#039;&#039;&#039; the service &#039;&#039;&#039;SDS@hd - Scientific Data Storage&#039;&#039;&#039; &lt;br /&gt;
*# Click &#039;&#039;&#039;Register&#039;&#039;&#039;&lt;br /&gt;
*# Finally, set a service password for authentication on SDS@hd&lt;br /&gt;
&lt;br /&gt;
=== Change Service Password at bwServices ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; &#039;&#039;&#039;[[Registration/bwForCluster/Helix#Setting_a_New_Service_Password | Setting a New Service Password]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH&amp;diff=16007</id>
		<title>Registration/SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH&amp;diff=16007"/>
		<updated>2026-04-23T09:18:17Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added &amp;#039;generate ssh key&amp;#039; step, included &amp;#039;bind key&amp;#039; as last step, removed spacing in info box, downsized two images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SSH Key Authentication for HPC Clusters =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SSH Keys&#039;&#039;&#039; allow you to log into a system without entering a password. Instead of proving your identity with something you know (a password), you prove it with something you have (a cryptographic key).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ SSH Key Management Methods by Cluster&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! Management Method&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwIDM Portal&lt;br /&gt;
| Centralized key management, 180-day validity&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster BinAC 2&lt;br /&gt;
| style=&amp;quot;background-color:#FFE4B5;&amp;quot; | ~/.ssh/authorized_keys&lt;br /&gt;
| Self-managed, use ssh-copy-id&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwServices Portal&lt;br /&gt;
| Centralized key management, 180-day validity&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster JUSTUS 2&lt;br /&gt;
| style=&amp;quot;background-color:#FFE4B5;&amp;quot; | ~/.ssh/authorized_keys&lt;br /&gt;
| Self-managed, use ssh-copy-id&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwIDM Portal&lt;br /&gt;
| Centralized key management, 180-day validity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Choose your cluster below:&#039;&#039;&#039;&lt;br /&gt;
* [[#SSH_Keys_on_BinAC_2_and_JUSTUS_2|BinAC 2 and JUSTUS 2]] - Self-managed keys&lt;br /&gt;
* [[#SSH_Keys_via_bwIDM.2FbwServices|bwUniCluster 3.0, Helix, and NEMO2]] - Centralized management&lt;br /&gt;
&lt;br /&gt;
= SSH Keys on BinAC 2 and JUSTUS 2 =&lt;br /&gt;
&lt;br /&gt;
On &#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039; and &#039;&#039;&#039;bwForCluster JUSTUS 2&#039;&#039;&#039;, you manage SSH keys yourself using the standard &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
== Quick Setup with ssh-copy-id ==&lt;br /&gt;
&lt;br /&gt;
The easiest method to add your SSH key:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1: Generate an SSH key&#039;&#039;&#039; (if you don&#039;t have one):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519 -C &amp;quot;your_email@example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Enter to accept the default location, then set a strong passphrase.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2: Copy your key to the cluster:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For BinAC2:&lt;br /&gt;
ssh-copy-id username@login.binac2.uni-tuebingen.de&lt;br /&gt;
&lt;br /&gt;
# For JUSTUS2:&lt;br /&gt;
ssh-copy-id username@justus2.uni-ulm.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter your service password and OTP when prompted. Your public key will be automatically added to &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3: Test your connection:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For BinAC2:&lt;br /&gt;
ssh username@login.binac2.uni-tuebingen.de&lt;br /&gt;
&lt;br /&gt;
# For JUSTUS2:&lt;br /&gt;
ssh username@justus2.uni-ulm.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to log in using your SSH key and OTP.&lt;br /&gt;
&lt;br /&gt;
== Manual Setup (Alternative) ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; is not available on your system:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1: Display your public key:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_ed25519.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the entire output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2: Log into the cluster&#039;&#039;&#039; using your service password and OTP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3: Add the key to authorized_keys:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.ssh&lt;br /&gt;
chmod 700 ~/.ssh&lt;br /&gt;
echo &amp;quot;paste-your-public-key-here&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;paste-your-public-key-here&amp;lt;/code&amp;gt; with your actual public key.&lt;br /&gt;
&lt;br /&gt;
= SSH Keys via bwIDM/bwServices =&lt;br /&gt;
&lt;br /&gt;
On &#039;&#039;&#039;bwUniCluster 3.0&#039;&#039;&#039;, &#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;, and &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039;, SSH keys are managed centrally through the registration service.&lt;br /&gt;
&lt;br /&gt;
== Why Centralized Management? ==&lt;br /&gt;
&lt;br /&gt;
Centralized SSH key management provides:&lt;br /&gt;
&lt;br /&gt;
* Security enforcement: Keys must use strong algorithms and have 180-day validity&lt;br /&gt;
* Centralized control: Review and revoke all keys from one location&lt;br /&gt;
* Two key types: Interactive keys (manual logins) and Command keys (automated workflows)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Self-managed &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; files are ignored on these clusters.&lt;br /&gt;
&lt;br /&gt;
== Supported Key Types ==&lt;br /&gt;
&lt;br /&gt;
=== Standard SSH Keys ===&lt;br /&gt;
&lt;br /&gt;
* ED25519: 256 bits (recommended)&lt;br /&gt;
* RSA: 2048 bits or more&lt;br /&gt;
* ECDSA: 521 bits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Always protect your private keys with a strong passphrase.&lt;br /&gt;
&lt;br /&gt;
=== FIDO2 Hardware Keys ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ED25519-SK&#039;&#039;&#039; keys use hardware security keys (like Yubikey) for authentication:&lt;br /&gt;
&lt;br /&gt;
* Always valid - no 2-factor unlock required&lt;br /&gt;
* Hardware-protected - private key never leaves the device&lt;br /&gt;
* Physical presence required - must touch key to authenticate&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; ECDSA-SK keys are not supported. Use ED25519-SK only.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ FIDO2 Key Support by Cluster&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! ED25519-SK Support&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓ Supported&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| style=&amp;quot;background-color:#FFB6C1;&amp;quot; | ✗ Not supported&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓ Supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get started:&#039;&#039;&#039; See [[Registration/SSH/SSH-FIDO2-Quick-Start|SSH with FIDO2 - Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Step 1: Add Your SSH Key to the Portal ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* Keys are valid for &#039;&#039;&#039;180 days&#039;&#039;&#039; and automatically revoked after expiration.&lt;br /&gt;
* Upload only your &#039;&#039;&#039;public key&#039;&#039;&#039; file (ending in &amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt;, e.g., &amp;lt;code&amp;gt;~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Generate an SSH key&#039;&#039;&#039; (if you don&#039;t have one):&lt;br /&gt;
* Run in your local terminal: &amp;lt;pre&amp;gt; ssh-keygen -t ed25519 -C &amp;quot;your_email@example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Press Enter to accept the default location, then set a strong passphrase.&lt;br /&gt;
* You now have a private key (~/.ssh/id_ed25519) and a public key (~/.ssh/id_ed25519.pub).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to SSH key management:&#039;&#039;&#039;&lt;br /&gt;
* [https://login.bwidm.de/user/ssh-keys.xhtml bwUniCluster 3.0 / NEMO 2] (bwIDM)&lt;br /&gt;
* [https://bwservices.uni-heidelberg.de/user/ssh-keys.xhtml bwForCluster Helix] (bwServices)&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-twofa.png|center|600px|thumb|My SSH Pubkeys page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Click &amp;quot;Add SSH Key&amp;quot; / &amp;quot;SSH Key Hochladen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Bwunicluster 2.0 access ssh keys empty.png|center|400px|thumb|Add SSH Key button]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Enter key details:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; Descriptive identifier (e.g., &amp;quot;laptop-work&amp;quot;, &amp;quot;desktop-home&amp;quot;)&lt;br /&gt;
* &#039;&#039;&#039;SSH Key:&#039;&#039;&#039; Paste complete contents of your &amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt; file&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-key.png|center|400px|thumb|Add SSH key dialog]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Your key appears in the list:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-success.png|center|600px|thumb|SSH key successfully added]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Bind your key to a cluster&#039;&#039;&#039; as either an [[#Step_2A:_Register_Interactive_Key|Interactive Key]] or [[#Step_2B:_Register_Command_Key|Command Key]].&lt;br /&gt;
&lt;br /&gt;
== Step 2A: Register Interactive Key ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interactive Keys&#039;&#039;&#039; are for manual SSH logins.&lt;br /&gt;
&lt;br /&gt;
=== Understanding Key Validity ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regular SSH Keys&#039;&#039;&#039; (RSA, ECDSA, ED25519):&lt;br /&gt;
* Require 2-factor authentication unlock&lt;br /&gt;
* Valid for limited hours after entering OTP + service password&lt;br /&gt;
* Must re-authenticate when validity expires&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ Validity Periods for Regular SSH Keys&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! Valid Duration&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| 8 hours&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| 12 hours&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| 12 hours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FIDO2 Hardware Keys&#039;&#039;&#039; (ED25519-SK):&lt;br /&gt;
* Always valid - no 2-factor unlock needed&lt;br /&gt;
* Authentication via physical key touch only&lt;br /&gt;
* Only on bwUniCluster 3.0 and NEMO 2 (not Helix)&lt;br /&gt;
* See [[Registration/SSH/SSH-FIDO2-Quick-Start|SSH with FIDO2 - Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
=== Registration Steps ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Add your public key&#039;&#039;&#039; following [[#Step_1:_Add_Your_SSH_Key_to_the_Portal|Step 1]] above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to &amp;quot;Registered Services&amp;quot; / &amp;quot;Registrierte Dienste&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Set SSH Key&#039;&#039;&#039; / &#039;&#039;&#039;SSH Key setzen&#039;&#039;&#039; for your cluster&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-registered.png|center|600px|thumb|Select cluster]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Find your key and click &amp;quot;Add&amp;quot; / &amp;quot;Hinzufügen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service-int.png|center|800px|thumb|Add SSH key to service]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Select &amp;quot;Interactive&amp;quot; and confirm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Usage type: &#039;&#039;&#039;Interactive&#039;&#039;&#039;&lt;br /&gt;
* Comment: Optional description&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-int.png|center|600px|thumb|Set as Interactive key]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Done!&#039;&#039;&#039; Your key is active for interactive logins&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service.png|center|800px|thumb|SSH key registered]]&lt;br /&gt;
&lt;br /&gt;
== Step 2B: Register Command Key ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Keys&#039;&#039;&#039; enable automated workflows (e.g., backups, data transfers) without manual login.&lt;br /&gt;
&lt;br /&gt;
=== Security Requirements ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
Command keys are &#039;&#039;&#039;always valid&#039;&#039;&#039; (no 2FA required), making them security-sensitive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mandatory restrictions:&#039;&#039;&#039;&lt;br /&gt;
* Single command: Specify exact command with full path&lt;br /&gt;
* IP restriction: Limit to specific IP address(es) or subnet&lt;br /&gt;
* Admin approval: Keys require review before activation&lt;br /&gt;
* Short validity: Maximum 30 days&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common use case:&#039;&#039;&#039; [[Registration/SSH/rrsync|rrsync for data transfers]]&lt;br /&gt;
&lt;br /&gt;
=== Registration Steps ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Add your public key&#039;&#039;&#039; following [[#Step_1:_Add_Your_SSH_Key_to_the_Portal|Step 1]] above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to &amp;quot;Registered Services&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Set SSH Key&#039;&#039;&#039; for your cluster&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-registered.png|center|600px|thumb|Select cluster]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Find your key and click &amp;quot;Add&amp;quot; / &amp;quot;Hinzufügen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service-com.png|center|800px|thumb|Add SSH key to service]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Configure command restrictions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Usage type:&#039;&#039;&#039; Select &#039;&#039;&#039;Command&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Command:&#039;&#039;&#039; Full path with parameters (see example below)&lt;br /&gt;
* &#039;&#039;&#039;From:&#039;&#039;&#039; IP address or CIDR notation (e.g., &amp;lt;code&amp;gt;192.168.1.0/24&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Comment:&#039;&#039;&#039; Explain purpose (speeds up approval)&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Example: rrsync for data transfer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /home/aa/aa_bb/aa_abc1/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Verify exact path on your cluster (may be &amp;lt;code&amp;gt;/usr/bin/rrsync&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-com.png|center|600px|thumb|Configure command key]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Wait for approval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service.png|center|800px|thumb|Key pending approval]]&lt;br /&gt;
&lt;br /&gt;
== Revoking SSH Keys ==&lt;br /&gt;
&lt;br /&gt;
Revoke keys that are no longer needed or potentially compromised.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Revoked keys are immediately disabled and cannot be reused.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Navigate to SSH key management:&#039;&#039;&#039;&lt;br /&gt;
* [https://login.bwidm.de/user/ssh-keys.xhtml bwUniCluster 3.0 / NEMO 2] (bwIDM)&lt;br /&gt;
* [https://bwservices.uni-heidelberg.de/user/ssh-keys.xhtml bwForCluster Helix] (bwServices)&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-twofa.png|center|600px|thumb|My SSH Pubkeys page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Click &amp;quot;REVOKE&amp;quot; / &amp;quot;ZURÜCKZIEHEN&amp;quot;&#039;&#039;&#039; next to the key you want to disable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Click &#039;&#039;&#039;REVOKE&#039;&#039;&#039; / &#039;&#039;&#039;ZURÜCKZIEHEN&#039;&#039;&#039; next to the key you want to disable&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-success.png|center|800px|thumb|Revoke SSH key]]&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=15971</id>
		<title>Helix/Login</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/Login&amp;diff=15971"/>
		<updated>2026-04-20T15:38:41Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added examples for OTP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
* The three [[registration/bwForCluster|bwForCluster registration]] steps are completed &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;and&amp;lt;/span&amp;gt; still valid.&lt;br /&gt;
* Your IP address is within the [https://www.belwue.de BelWü] network which connects universities and other scientific institutions in Baden-Württemberg. If your computer is in your university network (e.g. at your office), you should be able to connect to bwForCluster Helix without restrictions. If you are outside the BelWü network (e.g. at home), a VPN (virtual private network) connection to your University network must be established first. Please consult the VPN documentation of your university.&lt;br /&gt;
* As credentials you need your Helix [[Helix/Login#Username|username]], [[Registration/Password|service password]] and [[Registration/2FA|2FA token]].&lt;br /&gt;
* If you encounter any issues, please have a look at the [[Helix/Login#Troubleshooting|Troubleshooting]] section.&lt;br /&gt;
&lt;br /&gt;
= Login to bwForCluster Helix =&lt;br /&gt;
&lt;br /&gt;
Login to bwForCluster Helix is only possible with a Secure Shell (SSH) client for which you must know your bwForCluster Helix credentials and the hostname of the login nodes.&lt;br /&gt;
For more general information on SSH clients, visit the [[Registration/Login/Client|SSH clients Guide]].&lt;br /&gt;
&lt;br /&gt;
== Username ==&lt;br /&gt;
&lt;br /&gt;
Your username on bwForCluster Helix consists of a prefix and your local username.&lt;br /&gt;
For prefixes please refer to the [[Registration/Login/Username|Username Guide]].&lt;br /&gt;
&lt;br /&gt;
Example: If your local username at your University is &amp;lt;code&amp;gt;ab123&amp;lt;/code&amp;gt; and you are a user from Heidelberg University, your username on the cluster is: &amp;lt;code&amp;gt;hd_ab123&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Hostnames ==&lt;br /&gt;
&lt;br /&gt;
bwForCluster Helix has two login nodes. In general, you should stay with automatic node selection, so that the connections are evenly distributed between the login nodes. To do this, we use so-called DNS round-robin scheduling which takes care of the node balancing. This means, if you open multiple SSH sessions, these sessions may run on different login nodes. Therefore, processes started in one session might not be visible in other sessions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Hostname !! Destination&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;helix.bwservices.uni-heidelberg.de&#039;&#039;&#039; || one of the two login nodes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Login with SSH command (Linux, Mac, Windows) ==&lt;br /&gt;
&lt;br /&gt;
Most Unix and Unix-like operating systems such as Linux and Mac OS as well as newer versions of MS Windows (10 and 11), have a built-in SSH client provided by the OpenSSH project.&lt;br /&gt;
If you want to use the full set of Linux commands on Windows (10 or 11), you can also install the [https://docs.microsoft.com/en-us/windows/wsl/install Windows Subsystem for Linux] (WSL).&lt;br /&gt;
&lt;br /&gt;
For login use one of the following ssh commands in a commandline (i.e. cmd, terminal, PowerShell):&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
 ssh -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
To run graphical applications on the cluster, you need to enable X11 forwarding with the &amp;lt;code&amp;gt;-X&amp;lt;/code&amp;gt; flag:&lt;br /&gt;
&lt;br /&gt;
 ssh -X -l &amp;lt;username&amp;gt; helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the login process faster, tell the command that no ssh key authentication is used by adding an additional parameter: &lt;br /&gt;
&lt;br /&gt;
  ssh -o PubkeyAuthentication=no &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
== Login with graphical SSH client (Windows) ==&lt;br /&gt;
&lt;br /&gt;
For Windows we suggest using [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]] for login and file transfer.&lt;br /&gt;
 &lt;br /&gt;
Start MobaXterm and fill in the following fields:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Remote name              : helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Specify user name        : &amp;lt;username&amp;gt;&lt;br /&gt;
Port                     : 22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that click on &#039;ok&#039;. Then a terminal will open where you can enter your credentials.&lt;br /&gt;
&lt;br /&gt;
== Login with SSH key ==&lt;br /&gt;
&lt;br /&gt;
To set up a SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
To login by using the ssh key, use the following command: &lt;br /&gt;
&lt;br /&gt;
  ssh -o IdentitiesOnly=yes -i &amp;lt;path_to_private_key&amp;gt; &amp;lt;username&amp;gt;@helix.bwservices.uni-heidelberg.de &lt;br /&gt;
&lt;br /&gt;
== Login Example ==&lt;br /&gt;
&lt;br /&gt;
To login to bwForCluster Helix, proceed as follows:&lt;br /&gt;
# Login with SSH command or MoabXterm as shown above.&lt;br /&gt;
# The system will ask for a one-time password &amp;lt;code&amp;gt;Your OTP&amp;lt;/code&amp;gt; (= Smartphone Token / TAN list element/ ...) . Please enter your OTP and confirm it with Enter/Return. The OTP is not displayed when typing. If you do not have a second factor yet, please create one (see [[Registration/2FA]]).&lt;br /&gt;
# The system will ask you for your service password &amp;lt;code&amp;gt;Password:&amp;lt;/code&amp;gt;. Please enter it and confirm it with Enter/Return. The password is not displayed when typing. If you do not have a service password yet or have forgotten it, please create one (see [[Registration/Password]]).&lt;br /&gt;
# You will be greeted by the cluster with the message of the day, followed by a shell.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -l hd_ab123 helix.bwservices.uni-heidelberg.de&lt;br /&gt;
Your OTP:&lt;br /&gt;
Password: &lt;br /&gt;
&lt;br /&gt;
********************************************************************************&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                     Baden-Wuerttemberg HPC Cluster for                       *&lt;br /&gt;
*              Structural and Systems Biology, Medical Science,                *&lt;br /&gt;
*                 Soft Matter, Computational Humanities, and                   *&lt;br /&gt;
*                      Mathematics and Computer Science                        *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                bwForCluster                                  *&lt;br /&gt;
*                        _    _          _   _                                 *&lt;br /&gt;
*                       | |  | |        | | (_)                                *&lt;br /&gt;
*                       | |__| |   ___  | |  _  __  __                         *&lt;br /&gt;
*                       |  __  |  / _ \ | | | | \ \/ /                         *&lt;br /&gt;
*                       | |  | | |  __/ | | | |  &amp;gt;  &amp;lt;                          *&lt;br /&gt;
*                       |_|  |_|  \___| |_| |_| /_/\_\                         *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                   (xCAT 2.16.4 / RHEL 8.8 / GPFS 5.1.8)                      *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
*        bwHPC Wiki : https://wiki.bwhpc.de/e/Helix                            *&lt;br /&gt;
*     Ticket System : https://www.bwhpc.de/supportportal                       *&lt;br /&gt;
*    Job Monitoring : https://helix-monitoring.bwservices.uni-heidelberg.de    *&lt;br /&gt;
*        E-learning : https://training.bwhpc.de/                               *&lt;br /&gt;
*                     -&amp;gt; &#039;Introduction to bwForCluster Helix&#039;                  *&lt;br /&gt;
*                                                                              *&lt;br /&gt;
********************************************************************************&lt;br /&gt;
&lt;br /&gt;
Last login: ...&lt;br /&gt;
[hd_ab123@login ~]$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Allowed Activities on Login Nodes =&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
To guarantee usability for all users you must not run your compute jobs on the login nodes.&lt;br /&gt;
Compute jobs must be submitted as batch jobs.&lt;br /&gt;
Any compute job running on the login nodes will be terminated without notice.&lt;br /&gt;
Long-running compilation or long-running pre- or post-processing tasks must also be submitted as batch jobs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The login nodes are the access points to the compute system, your &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; directory and your workspaces.&lt;br /&gt;
These nodes are shared with all users. Hence, your activities on the login nodes are primarily limited to setting up your batch jobs.&lt;br /&gt;
Your activities may also be:&lt;br /&gt;
* quick compilation of program code or&lt;br /&gt;
* quick pre- and post-processing of results from batch jobs.&lt;br /&gt;
&lt;br /&gt;
We advise to use [[Helix/Slurm#Interactive_Jobs|interactive batch jobs]] for compute and memory intensive compilation and pre- and post-processing tasks.&lt;br /&gt;
&lt;br /&gt;
= Related Information =&lt;br /&gt;
&lt;br /&gt;
* If you want to register a new token for the two factor authentication (2FA), consult the [[Registration/2FA|2FA Guide]].&lt;br /&gt;
* If you want to de-register, consult the [[Registration/Deregistration|De-registration Guide]].&lt;br /&gt;
* If you need an SSH key for your workflow, read [[Registration/SSH|Registering SSH Keys with your Cluster]].&lt;br /&gt;
* Configuring your shell: [[.bashrc Do&#039;s and Don&#039;ts]]&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Login Problems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you encounter login problems, please double check the prerequisites. If those are valid, it is fastest to first check the following points before contacting the support at the [https://www.bwhpc.de/supportportal.php|bwhpc Suppport Portal].&lt;br /&gt;
If there are known issues with the cluster, we&#039;ll inform you via e-mail or in the message of the day at the cluster.&lt;br /&gt;
&lt;br /&gt;
* To reset your service password, consult the [[Registration/Password|Password Guide]].&lt;br /&gt;
* To check if your 2FA token is working go to [https://bwservices.uni-heidelberg.de/| bwServices] -&amp;gt; &amp;quot;Index&amp;quot; -&amp;gt; &amp;quot;My Tokens&amp;quot;.&lt;br /&gt;
* Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
* Make sure to be a fully active member of your institution. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lost Token&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To reset your token you have to visit the IT-Service to validate your identity.&lt;br /&gt;
Mention that you want a reset of your Helix 2FA token. It is important to emphasize that the token reset is for bwForCluster Helix to avoid confusion with the token that is specific to members/students of the university of Heidelberg.&lt;br /&gt;
&lt;br /&gt;
You can visit the IT service point of the URZ in person at INF 330, 69120 Heidelberg. Or you can use the video call service. It is recommended to use the Chrome browser for doing the video call. Please have on official identification ready in any case (Führerschein / Personalausweis) .&lt;br /&gt;
For further information please see here: https://it-service.uni-heidelberg.de.&lt;br /&gt;
&lt;br /&gt;
To be on the safe side, it is advised to create a [[Registration/2FA#Backup_TAN_List|backup TAN list]] additionally to the smartphone token.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=15970</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=15970"/>
		<updated>2026-04-20T15:14:44Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added icons and descriptions, moved data transfer link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Environment Modules]]: usage of preexisting software&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Data Transfer|Data Transfer]]: working with files [[File:Notebook.svg|x15px]] &amp;lt;---&amp;gt; [[File:Clusternodes.svg|x15px]]&lt;br /&gt;
* [[Development| Development]]: software, programming languages, parallel pogramming&lt;br /&gt;
* [[Energy Efficient Cluster Usage | (Energy) Efficient Cluster Usage]] for low waiting times and fast running jobs&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
User guides of available scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Research Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=15969</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=15969"/>
		<updated>2026-04-20T15:06:41Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Removed old entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=15926</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=15926"/>
		<updated>2026-04-13T08:28:36Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* Datenanalyse Cluster der Hochschulen (DACHS): [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Modules]] and software documentation explained&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Development| Software Development and Parallel Programming]]&lt;br /&gt;
* [[Energy Efficient Cluster Usage]]&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Data Transfer|Data Transfer]]&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=When_to_use_an_HPC_Cluster&amp;diff=15925</id>
		<title>When to use an HPC Cluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=When_to_use_an_HPC_Cluster&amp;diff=15925"/>
		<updated>2026-04-13T08:27:12Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed typo in title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have calculations to do - should I try using one of the bwHPC clusters for my tasks?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== When to use HPC computers ==&lt;br /&gt;
&lt;br /&gt;
You can benefit from an HPC-Cluster if:&lt;br /&gt;
&lt;br /&gt;
#  You can run many separate calculations in parallel&lt;br /&gt;
#  Software can efficiently divide your problem into many smaller problems that run in parallel&lt;br /&gt;
#  You need more RAM (memory) than your computer can provide&lt;br /&gt;
#  You need more GPUs and have no other source&lt;br /&gt;
#  You need to process large amounts of data that do not fit on your computer&lt;br /&gt;
&lt;br /&gt;
== When &#039;&#039;&#039;not&#039;&#039;&#039; to use HPC computers ==&lt;br /&gt;
&lt;br /&gt;
You will probably not have a big benefit from using HPC when:&lt;br /&gt;
&lt;br /&gt;
* Your calculation runs in serial (only on one compute core is used, things cannot run in parallel) and you have few calculations&lt;br /&gt;
* Your workflow requires that you run one calculation, then retrieve data to analyze it locally, then run the next calculation&lt;br /&gt;
&lt;br /&gt;
Except 3) or 4) of &amp;quot;when to use a cluster&amp;quot; force you to use the clusters anyway. &lt;br /&gt;
&lt;br /&gt;
== Misconceptions == &lt;br /&gt;
=== &amp;quot;Everything will be faster&amp;quot; ===&lt;br /&gt;
[[File:BwUniCluster_2.0_Feb2020_1024x423.jpg|right|thumb|alt=bwUniCluster2.0 |upright=1| many compute cores: Every &amp;quot;tray&amp;quot; in these racks contains 1-4 computers, every computer typically has 50-200 compute cores. ]]&lt;br /&gt;
&lt;br /&gt;
The performance of a single compute core is not higher than that of your typical desktop computer. The main things we can offer are:&lt;br /&gt;
&lt;br /&gt;
* Many compute cores &lt;br /&gt;
* Much RAM (memory) &lt;br /&gt;
* GPUs&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;It&#039;s just a computer, I know how to use a computer&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
While the clusters are indeed &amp;quot;just&amp;quot; many Linux computers, they are also multi-million Euro instruments. So while they may have many similarities with a Linux desktop, in some respects, it is better to think of them like of other expensive instruments you may use in your research. HPC clusters have hardware components you may have never heard of in the consumer market, they typically have more than one CPU socket (making among other things memory management more complicated), etc. etc. etc.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;I want to host servers on bwHPC&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
On the bwHPC-clusters, you submit jobs to a supercomputer that get scheduled and processed over time. It is not the place for permanent server hosting. If you need self-service virtual machines, check out the [https://www.bw-cloud.org/ bwCloud].&lt;br /&gt;
&lt;br /&gt;
== What are the Costs? ==&lt;br /&gt;
&lt;br /&gt;
=== Monetary ===&lt;br /&gt;
&lt;br /&gt;
No cost to you as the end-user&lt;br /&gt;
&lt;br /&gt;
(But of course the HPC systems are bought for millions of Euro and the power cost of running calculations is in the same order of magnitude as buying the systems)  &lt;br /&gt;
&lt;br /&gt;
=== Effort / Time ===&lt;br /&gt;
&lt;br /&gt;
There is quite a learning curve to start calculating. &lt;br /&gt;
&lt;br /&gt;
* Linux shell knowledge is a major part&lt;br /&gt;
* HPC-specific knowledge:&lt;br /&gt;
** Software module system - software supplied by the cluster maintainers (vide infra)&lt;br /&gt;
** How to use the scheduler / write job scripts: how to send calculations to a computer on the cluster (vide infra)&lt;br /&gt;
* Wait times: a good cluster is always busy. Expect a waiting time betwween 1h and 2 days until your calculation(s) start&lt;br /&gt;
&lt;br /&gt;
=== Compute Workflow ===&lt;br /&gt;
&lt;br /&gt;
A short description of the workflow how running calculation works can be found under [[Running Calculations]] and can give you a general idea.&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
Basic usage is very simple: you run &amp;lt;code&amp;gt; module load module_name &amp;lt;/code&amp;gt; and use the software, but important documentation and examples are also built into the modules. &lt;br /&gt;
&lt;br /&gt;
The usage of the software on the cluster is described in [[Environment Modules]]&lt;br /&gt;
&lt;br /&gt;
== Still With Us? ==&lt;br /&gt;
&lt;br /&gt;
If you feel your calculations meet the requirements and you will save a lot of time despite some learning overhead, proceed to the [[Registration]] page.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Energy_Efficient_Cluster_Usage&amp;diff=15924</id>
		<title>Energy Efficient Cluster Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Energy_Efficient_Cluster_Usage&amp;diff=15924"/>
		<updated>2026-04-13T08:20:19Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Energy consumption of data centers has been increasing continuously throughout the last decade. In 2020, the energy consumption of all data centers in Germany amounted to around  [https://www.bundestag.de/resource/blob/863850/423c11968fcb5c9995e9ef9090edf9e6/WD-8-070-21-pdf-data.pdf 3 percent] of the total electricity produced. Accompanying this large energy consumption are large-scale emissions of CO2 to the atmosphere and thus significant contributions to climate change.&lt;br /&gt;
To illustrate this, an average compute job running on a single node for one day may easily consume 10 kWh or even more. That translates roughly to brewing 700 cups of coffee.&lt;br /&gt;
Assuming that a typical bwHPC cluster has a few hundred compute nodes, this amounts to the energy consumption of a village for each cluster. &lt;br /&gt;
&lt;br /&gt;
Although a large amount of this energy consumption is an intrinsic requirement of running large HPC clusters (even when ist processors are idle, a cluster uses a lot of energy), efficient use of the available resources is important. Using as many resources as possible does not make a power user. Using them wisely does.&lt;br /&gt;
In the following, a basic introduction to some of the most important aspects of energy-efficient HPC usage from a user perspective is given. &lt;br /&gt;
&lt;br /&gt;
We can generally distinguish three tasks when optimizing for running HPC jobs efficiently.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  What do I want to do and why do I need an HPC Cluster for it?&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  How many and which kind of hardware resources do I require for it?&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  How do I optimize my code to use these resources most efficiently?&lt;br /&gt;
&lt;br /&gt;
= What do I want to do and why do I need an HPC Cluster for it? =&lt;br /&gt;
&lt;br /&gt;
The bwHPC clusters are used to almost full capacity, and running a job on an HPC node consumes a lot of energy, as shown above. &lt;br /&gt;
Therefore, users are requested to run only necessary jobs.&lt;br /&gt;
&lt;br /&gt;
Please consider testing new setups and their output for validity prior to submitting jobs that require lots of resources. This also includes projects where a lot of (smaller) similar jobs are submitted. &lt;br /&gt;
&lt;br /&gt;
Make sure to double-check your jobs prior to the submission, having to discard the output data of an HPC project due to faulty input files is wasting a lot of computational resources.&lt;br /&gt;
&lt;br /&gt;
Finally, identifying the specific resource requirements for a given job is important to allocate the optimal your compute job, and to decide if an HPC cluster is needed at all. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How many and which kind of hardware resources do I require for it =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resource allocation is a crucial part when working on an HPC cluster. &lt;br /&gt;
As this is dependent on both the job as well as the specific cluster hardware and architecture available. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
A small number of jobs and few resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Submit to the scheduler. No extended testing and resource scaling analysis are needed. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
Medium-sized projects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Run only necessary jobs: Please consider testing new setups and their output for validity prior to submitting a huge amount of similar jobs&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Start small: Run your problem on a small set of resources first.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Use the proper tools for development: If you develop your own code, please use the proper tools for debugging and parallel performance analysis. See: [[Development#Documentation_in_the_Wiki|Development]].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  A look at the job feedback can help you determine if you are using the cluster efficiently&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Large projects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Same approach as for medium-sized projects. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Run a scaling analysis for your project with regard to how many resources work best. See: [[Scaling]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Many short jobs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Handling via the scheduler is inefficient. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Simple parallelization by hand is advisable. See: A basic introduction to [[Development/Parallel_Programming | Parallel Programming]].&lt;br /&gt;
&lt;br /&gt;
= How do I optimize my code to use these resources most efficiently? =&lt;br /&gt;
&lt;br /&gt;
The above recommendations will help use the cluster resources more efficiently.&lt;br /&gt;
Regarding software development, power efficiency correlates obviously heavily with &#039;&#039;&#039;computing performance&#039;&#039;&#039;, but also with memory usage, i.e. the amount of memory used, but also memory efficiency.&lt;br /&gt;
&lt;br /&gt;
Here, we have gathered a few results based on other research:&lt;br /&gt;
&amp;amp;rarr;  Use an efficient programming language such as Rust, C, and C++ -- well any compiled language. Do not use any interpreted language like Perl or Python. Since Machine Learning is a hot topic, this deserves a few words: Any ML-Python code using Tensorflow or other libraries will make heavy usage of NumPy and other math packages, which will use C-based implementations. Please make sure, you use the provided Python modules, which are optimized to use Intel MKL and other mathematical libraries.&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
Rui Pereira, et al: &amp;quot;&#039;&#039;Energy efficiency across programming languages: how do energy, time, and memory relate?&#039;&#039;&amp;quot;, SLE 2017: Proc. of the 10th ACM SIGPLAN Int. Conf. on SW Language Eng., Oct. 2017, pp. 256–267, [https://doi.org/10.1145/3136014.3136031 doi:10.1145/3136014.3136031]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  Analyse memory access patterns&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr;  For small tight loops checking for locks, use the &amp;lt;code&amp;gt;pause&amp;lt;/code&amp;gt; instruction.&lt;br /&gt;
&lt;br /&gt;
= Summary: General Recommendations =&lt;br /&gt;
&lt;br /&gt;
* Choose the most &#039;&#039;&#039;efficient algorithms&#039;&#039;&#039; for the given problem&lt;br /&gt;
* Run only &#039;&#039;&#039;necessary&#039;&#039;&#039; jobs: Please consider testing new setups and their output for validity prior to submitting a huge amount of similar jobs&lt;br /&gt;
* Start &#039;&#039;&#039;small&#039;&#039;&#039;: Run Your problem on a small number of parallel entities (be it processes or threads) first.&lt;br /&gt;
* &#039;&#039;&#039;Estimate&#039;&#039;&#039; the runtime of the parallel job as &#039;&#039;&#039;exactly&#039;&#039;&#039; as possible to increase the efficiency of the scheduling of the whole system&lt;br /&gt;
* Use the proper tools for development: If You develop your own code, please use the proper tools for debugging and parallel performance analysis. More information is available on the bwHPC Wiki.&lt;br /&gt;
* A look at the &#039;&#039;&#039;job feedback&#039;&#039;&#039; can help you determine if you are using the cluster efficiently&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/Conda&amp;diff=15923</id>
		<title>Development/Conda</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/Conda&amp;diff=15923"/>
		<updated>2026-04-13T08:16:17Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;background:#ffdeee; width:100%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#f2cece; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#f2cece; text-align:left&amp;quot;|&lt;br /&gt;
The licensing situation with Anaconda is currently unclear. To be on the safe side, make sure to &#039;&#039;&#039;only use open source channels!&#039;&#039;&#039;&amp;lt;br/&amp;gt; &lt;br /&gt;
If you simply want to use Python and want to know how to install packages and set up virtual environments, we recommend the corresponding documentation for [[Development/Python|Python]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://conda.io/docs/index.html Conda] helps to manage software environments and packages. Installing software packages into independent environments improves programming flexibility and leads to a higher reproducibility of research results. A majority of the scientific software is available as conda package, which allows for convenient installations.&lt;br /&gt;
&lt;br /&gt;
= Conda Modules and Usage =&lt;br /&gt;
&lt;br /&gt;
Before you can get started with creating conda environments, you need to set up conda. Some clusters provide a centrally installed conda module and others require you to install conda yourself. The following table provides an overview of the necessary initial steps depending on the cluster. &lt;br /&gt;
&lt;br /&gt;
In general, there are three options for installing conda (Miniforge, Miniconda, Anaconda Distribution). We recommend the usage of Miniforge as it uses open source software packages by default. With the other two options, the default is to install packages from Anaconda&#039;s default channels which are subject to Anaconda&#039;s Terms of Service. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;|Cluster&lt;br /&gt;
! Description&lt;br /&gt;
! Commands&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| bwUniCluster 3.0&lt;br /&gt;
| Load conda module and prepare the environment&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;module load devel/miniforge&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| JUSTUS 2&lt;br /&gt;
| Install conda in your home directory&lt;br /&gt;
| see [[#User Conda Installation]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| Helix&lt;br /&gt;
| Load conda module&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;module load devel/miniforge&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| NEMO2&lt;br /&gt;
| Load conda module&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;module load lang/miniforge3&amp;lt;/source&amp;gt;&lt;br /&gt;
aliases: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;module load devel/miniforge | module load conda&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| BinAC 2&lt;br /&gt;
| Load Miniforge module&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;module load devel/miniforge&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create Environments and Install Software ==&lt;br /&gt;
&lt;br /&gt;
An environment is an isolated space that allows you to manage a custom constellation of software packages and versions. &lt;br /&gt;
&lt;br /&gt;
If you want, you can set a specific installation directory for your environments, for example a workspace:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda config --prepend envs_dirs /path/to/conda/envs&lt;br /&gt;
conda config --prepend pkgs_dirs /path/to/conda/pkgs&lt;br /&gt;
conda config --show envs_dirs&lt;br /&gt;
conda config --show pkgs_dirs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t specify a new &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;envs_dir&amp;lt;/syntaxhighlight&amp;gt;, Conda will use &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;~/.conda/envs&amp;lt;/syntaxhighlight&amp;gt; in your home directory as the default installation path (same applies to &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;pkgs_dirs&amp;lt;/syntaxhighlight&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can create empty environments and install packages into these environments afterwards or add them already during the setup of the environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Create an environment in the default path&lt;br /&gt;
conda create -n scipy&lt;br /&gt;
# Or create it in a specific directory&lt;br /&gt;
conda create --prefix &amp;lt;path_to_directory&amp;gt;/scipy&lt;br /&gt;
# Activate this environment&lt;br /&gt;
conda activate scipy&lt;br /&gt;
# Install software into this environment&lt;br /&gt;
(scipy) $ conda install scipy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install packages and create a new environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create -n scipy scipy&lt;br /&gt;
conda activate scipy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search for an exact version (see [[#Versioning|Versioning]]):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda search scipy==1.16.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a Python 3.13 environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create -n scipy-py13 scipy python=3.13&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove unused packages and temporary files to free up space:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda clean --all&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activate/Deactivate/Delete Environments ==&lt;br /&gt;
&lt;br /&gt;
In order to use the software in an environment you&#039;ll need to activate it first:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda activate scipy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deactivate this environment to be able to activate an environment with a different Python or software version instead. Or to work with software outside of an environment.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda deactivate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deleting Environments:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda env remove -n scipy-1.7.3 --all&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Environments and Packages ==&lt;br /&gt;
&lt;br /&gt;
List environments:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda env list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In the output, the * is denoting the currently activated environment. The base environment is condas default environment. It is not advised to install software into the default environment and on some clusters this possibility is even disabled.&lt;br /&gt;
&lt;br /&gt;
List packages of current environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List packages in given environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda list -n scipy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use Channels ==&lt;br /&gt;
&lt;br /&gt;
Different channels enable the installation of different software packages. Some software packages require specific channels. We suggest to try the following channels:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda-forge&lt;br /&gt;
bioconda&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search in default and extra channel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda search -c conda-forge scipy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add channel to your channels, but than you&#039;ll search and install automatically from this channel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda config --add channels bioconda&lt;br /&gt;
conda config --add channels conda-forge&lt;br /&gt;
conda config --show channels&lt;br /&gt;
conda config --remove channels bioconda   # remove channel again&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Use conda-forge Conda Packages ===&lt;br /&gt;
&lt;br /&gt;
The full list of conda-forge Python packages can be found in the [https://anaconda.org/conda-forge/repo?sort=_name&amp;amp;sort_order=asc conda channel].&lt;br /&gt;
&lt;br /&gt;
You can install the core conda-forge Python stack:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda install -c conda-forge -n conda-forgepython3 conda-forgepython3_core&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... with a &amp;quot;fuzzy&amp;quot; Python version (see [[#Versioning|Versioning]]):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda install -c conda-forge -n conda-forgepython-3.9.10 conda-forgepython3_core python=3.9.10&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... with an exact conda-forge OneApi version (see [[#Versioning|Versioning]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create -c conda-forge -n conda-forgepython-2022.1.0 conda-forgepython3_core==2022.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... or the full conda-forge Python stack:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create -c conda-forge -n conda-forgepython-2022.1.0 conda-forgepython3_full==2022.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... or just some conda-forge MKL optimized scientific software for the newest conda-forge OneAPI version 2022:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda search -c conda-forge scipy&lt;br /&gt;
conda create -c conda-forge -n scipy-1.7.3 scipy=1.7.3=py39h5c0f66f_1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User Conda Installation =&lt;br /&gt;
&lt;br /&gt;
If no conda module is available, you can install conda yourself. There are different options on how to do this but we recommend to install Miniforge. The installation is described below. Afterwards, conda and mamba commands can be used. The default channel is conda-forge. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Download installer&lt;br /&gt;
wget &amp;quot;https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh&amp;quot;&lt;br /&gt;
# To be on the save side, backup your .bashrc to a file with a current date&lt;br /&gt;
cp .bashrc bashrc-$(date --iso)&lt;br /&gt;
# Execute installer. Agree to the defaults.&lt;br /&gt;
bash Miniforge3-$(uname)-$(uname -m).sh&lt;br /&gt;
# Make conda command available upon login by adding the needed line to your .bashrc&lt;br /&gt;
echo &#039;source $HOME/miniforge3/etc/profile.d/conda.sh&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
# To make mamba available as well&lt;br /&gt;
echo &#039;source $HOME/miniforge3/etc/profile.d/mamba.sh&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
# Update .bashrc (have a second login shell available in case this fails)&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to add the following lines to your jobscript to make your conda environment available on the compute nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source $HOME/miniforge3/etc/profile.d/conda.sh&lt;br /&gt;
source $HOME/miniforge3/etc/profile.d/mamba.sh # only needed if mamba is used&lt;br /&gt;
conda activate &amp;lt;env_name&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Reproducible Conda Environments =&lt;br /&gt;
&lt;br /&gt;
This section describes how to secure environments in a reproducible manner.&lt;br /&gt;
&lt;br /&gt;
For a more detailed environments documentation refer to the [https://conda.io/docs/user-guide/tasks/manage-environments.html conda documentation].&lt;br /&gt;
&lt;br /&gt;
Create an environment file for re-creation:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda env export -n scipy-1.7.3 -f scipy-1.7.3.yml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Re-create saved environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda env create -f scipy-1.7.3.yml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a file with full URL for re-installation of packages:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda list --explicit -n scipy-1.7.3 &amp;gt;scipy-1.7-3.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install requirements file into environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create --name scipy-1.7.3 --file scipy-1.7.3.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first backup option is from the &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;conda-env&amp;lt;/syntaxhighlight&amp;gt; command and tries to reproduce the environment by name and version. The second option comes from the &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;conda&amp;lt;/syntaxhighlight&amp;gt; command itself and specifies the location of the file, as well. You can install the identical packages into a newly created environment. Please verify the architecture first.&lt;br /&gt;
&lt;br /&gt;
To clone an existing environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create --name scipy-1.7.3-clone --clone scipy-1.7.3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Backup via Local Channels ==&lt;br /&gt;
&lt;br /&gt;
Usually packages are cached in your Conda directory inside &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;pkgs/&amp;lt;/syntaxhighlight&amp;gt; unless you run &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;conda clean&amp;lt;/syntaxhighlight&amp;gt;. Otherwise the environment will be reproduced from the channels&#039; packages. If you want to be independent of other channels you can create your own local channel and backup every file you have used for creating your environments.&lt;br /&gt;
&lt;br /&gt;
Install package &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;conda-build&amp;lt;/syntaxhighlight&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda install conda-build&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create local channel directory for &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;linux-64&amp;lt;/syntaxhighlight&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p $( ws_find conda )/conda/channel/linux-64&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create dependency file list and copy files to channel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda list --explicit -n scipy-1.7.3 &amp;gt;scipy-1.7.3.txt&lt;br /&gt;
for f in $( grep -E &#039;^http|^file&#039; scipy-1.7.3.txt ); do&lt;br /&gt;
    cp $( ws_find conda )/conda/pkgs/$( basename $f ) $( ws_find conda )/conda/channel/linux-64/;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional: If packages are missing in the cache download them:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for f in $( grep -E &#039;^http|^file&#039; scipy-1.7.3.txt ); do&lt;br /&gt;
    wget $f -O $( ws_find conda )/conda/channel/linux-64/$( basename $f );&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize channel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda index $( ws_find conda )/conda/channel/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add channel to the channels list:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda config --add channels file://$( ws_find conda )/conda/channel/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternative use &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;-c file://$( ws_find conda )/conda/channel/&amp;lt;/syntaxhighlight&amp;gt; when installing.&lt;br /&gt;
&lt;br /&gt;
== Backup whole Environments ==&lt;br /&gt;
&lt;br /&gt;
Alternatively you can create a package of your environment and unpack it again when needed.&lt;br /&gt;
&lt;br /&gt;
Install &amp;lt;syntaxhighlight style=&amp;quot;border:0px&amp;quot; inline=1&amp;gt;conda-pack&amp;lt;/syntaxhighlight&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda install -c conda-forge conda-pack&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pack activated environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda activate scipy-1.7.3&lt;br /&gt;
(scipy-1.7.3) $ conda pack&lt;br /&gt;
(scipy-1.7.3) $ conda deactivate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pack environment located at an explicit path:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda pack -p $( ws_find conda )/conda/envs/scipy-1.7.3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way is to unpack the package into an existing Conda installation.&lt;br /&gt;
&lt;br /&gt;
Just create a directory and unpack the package:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p external_conda_path/envs/scipy-1.7.3&lt;br /&gt;
tar -xf scipy-1.7.3.tar.gz -C external_conda_path/envs/scipy-1.7.3&lt;br /&gt;
conda activate scipy-1.7.3&lt;br /&gt;
# Cleanup prefixes from in the active environment&lt;br /&gt;
(scipy-1.7.3) $ conda-unpack&lt;br /&gt;
(scipy-1.7.3) $ conda deactivate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that modifying, updating and installing new packages into existing environments can modify the outcome of your results. We strongly encourage researchers to creating new environments (or cloning) before installing or updating packages. Consider using meaningful names for your environments using version numbers and dependencies.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Constraint&lt;br /&gt;
!Specification&lt;br /&gt;
|-&lt;br /&gt;
|exact version&lt;br /&gt;
|scipy==1.7.3&lt;br /&gt;
|-&lt;br /&gt;
|fuzzy version&lt;br /&gt;
|scipy=1.7&lt;br /&gt;
|-&lt;br /&gt;
|greater equal&lt;br /&gt;
|&amp;amp;quot;scipy&amp;gt;=1.7&amp;amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more information see the [[#Cheat_Sheet]].&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda create -c conda-forge -n scipy-1.7.3 scipy==1.7.3=py39h5c0f66f_1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pinning ===&lt;br /&gt;
&lt;br /&gt;
Pin versions if you don&#039;t want them to be updated accidentally ([https://conda.io/docs/user-guide/tasks/manage-pkgs.html#preventing-packages-from-updating-pinning see documentation]).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &#039;scipy==1.1.0=np115py36_6&#039; &amp;gt;&amp;gt; $( ws_find conda )/conda/envs/scipy-1.1.0-np115py36_6/conda-meta/pinned&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can easily pin your whole environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda list -n scipy-1.7.3 --export &amp;gt;$( ws_find conda )/conda/envs/scipy-1.7.3/conda-meta/pinned&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using Singularity Containers ==&lt;br /&gt;
&lt;br /&gt;
Using [[Development/Containers|Singularity Containers]] can create more robust software environments.&lt;br /&gt;
&lt;br /&gt;
Build the container on your local machine!&lt;br /&gt;
&lt;br /&gt;
This is Singularity recipe example for a CentOS image with a Conda environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt; EOF &amp;gt;scipy-1.7.3.def&lt;br /&gt;
Bootstrap: docker&lt;br /&gt;
From: rockylinux:8&lt;br /&gt;
OSVersion: 8&lt;br /&gt;
# Alternative:&lt;br /&gt;
# From: almalinux:8&lt;br /&gt;
&lt;br /&gt;
%runscript&lt;br /&gt;
    echo &amp;quot;This is what happens when you run the container...&amp;quot;&lt;br /&gt;
    source /conda/etc/profile.d/conda.sh&lt;br /&gt;
    conda activate scipy-1.7.3&lt;br /&gt;
    eval &amp;quot;$@&amp;quot;&lt;br /&gt;
&lt;br /&gt;
%post&lt;br /&gt;
    yum -y install vim wget&lt;br /&gt;
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh&lt;br /&gt;
    bash miniconda.sh -b -p conda&lt;br /&gt;
    source /conda/etc/profile.d/conda.sh&lt;br /&gt;
    conda update -y -n base conda&lt;br /&gt;
    conda create -y -c conda-forge -n scipy-1.7.3 scipy=1.7.3=py39h5c0f66f_1&lt;br /&gt;
    rm miniconda.sh -f&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build container (on local machine):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
singularity build scipy-1.7.3.sif scipy-1.7.3.def&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the container on the cluster and start it:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
singularity run scipy-1.7.3.sif python -V&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for interactive usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
singularity shell scipy-1.7.3.sif&lt;br /&gt;
Apptainer&amp;gt; source /conda/etc/profile.d/conda.sh&lt;br /&gt;
Apptainer&amp;gt; conda activate scipy-1.7.3&lt;br /&gt;
 (scipy-1.7.3) Apptainer&amp;gt; python -V&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [https://docs.sylabs.io/guides/latest/user-guide/ Singularity user documentation] for more information on containers.&lt;br /&gt;
&lt;br /&gt;
= Cheat Sheet =&lt;br /&gt;
&lt;br /&gt;
[https://docs.conda.io/projects/conda/en/latest/user-guide/cheatsheet.html Conda official cheat sheet]&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=15922</id>
		<title>Development/MKL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=15922"/>
		<updated>2026-04-13T08:08:07Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Softwarepage|numlib/mkl}}&lt;br /&gt;
&lt;br /&gt;
{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| numlib/mkl&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial. See [https://software.intel.com/en-us/articles/end-user-license-agreement EULA].&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/intel-mkl Intel MKL Homepage] &amp;amp;#124; [https://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
&#039;&#039;&#039;Intel MKL (Math Kernel Library)&#039;&#039;&#039; is a library of optimized math routines for numerical computations such as linear algebra (using BLAS, LAPACK, ScaLAPACK) and discrete Fourier Transformation.&lt;br /&gt;
With its standard interface in matrix computation and the interface of the popular fast Fourier transformation library fftw, MKL can be used to replace other libraries with minimal code changes. In fact a program which uses FFTW without MPI doesn&#039;t need to be changed at all. Just recompile it with the MKL linker flags.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
&lt;br /&gt;
= Compiling and linking =&lt;br /&gt;
Compilation is possible with both GCC and Intel compilers but it is easier for Intel compilers, so this case is explained here.&lt;br /&gt;
After loading the compiler and the library module with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load compiler/intel&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can include the MKL header file in your program:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;#include &amp;lt;mkl.h&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Compilation is simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc -c example_mkl.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
When linking the program you have to tell the compiler to link against the mkl library:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc example_mkl.o -mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the -mkl switch the intel compiler automatically sets the correct linker flags but you can specify them explicitly for example to enable static linking or when non-intel compilers are used. Information about the different options can be found at https://software.intel.com/en-us/node/438568 and especially helpful is the MKL link line advisor at https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.&lt;br /&gt;
By default $MKL_NUM_THREADS is set to 1 and so only one thread will be created, but if you feel the need to run the computation on more cores (after benchmarking) you can set $MKL_NUM_THREADS to a higher number.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== FFTW Interface to Intel Math Kernel Library (MKL) ==&lt;br /&gt;
Sometimes, [[Development/FFTW|FFTW]] is not available on your cluster. You can use the MKL library&lt;br /&gt;
instead and include the FFTW functions, too.&lt;br /&gt;
&lt;br /&gt;
Intel Math Kernel Library (MKL) offers FFTW2 and FFTW3 interfaces to Intel MKL Fast Fourier Transform and Trigonometric Transform functionality. The purpose of these interfaces is to enable applications using FFTW to gain performance with Intel MKL without changing the program source code.&lt;br /&gt;
To include the proper header files use the compiler option&lt;br /&gt;
 -I${MKL_INC_DIR}/fftw&lt;br /&gt;
&lt;br /&gt;
If you want to link dynamically against the fftw functions you can just use the flag&lt;br /&gt;
 -mkl&lt;br /&gt;
&lt;br /&gt;
but when using static linking you have to link against the correct library in the directory &lt;br /&gt;
 ${MKL_HOME}/interfaces/&lt;br /&gt;
&lt;br /&gt;
See the corresponding webpages:&lt;br /&gt;
* [https://software.intel.com/en-us/node/471410 FFTW Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/de-de/node/471414 FFTW2 Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/en-us/node/471456 FFTW3 Interface to Intel Math Kernel Library]&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access/SMB&amp;diff=15921</id>
		<title>SDS@hd/Access/SMB</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access/SMB&amp;diff=15921"/>
		<updated>2026-04-10T09:18:39Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Corrected link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SMB is a Server Message Block protocol. It has different implementations: CIFS (outdated), SMB2, SMB3, Samba&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* The SMB connection has to be established at least with protocol version SMB2.02, which is available since Windows Vista or OSX 10.7, and a NTLMv2 authentication level of &amp;amp;quot;Send NTLMv2 responses only&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
Use a SMB share via Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
=== Needed Information ===&lt;br /&gt;
You need the following information (&amp;amp;rarr; see [[SDS@hd/Access|SDS@hd/Access]]):&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Username:&#039;&#039;&#039; &amp;lt;code&amp;gt;BWSERVICESAD\&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;service_password&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Network Path&#039;&#039;&#039; in UNC syntax &#039;&#039;&#039;:&#039;&#039;&#039; &amp;lt;code&amp;gt;\\lsdf02.urz.uni-heidelberg.de\&amp;lt;sv_acronym&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Open the Windows Explorer.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;a) To establish a &#039;&#039;&#039;non-permanent connection&#039;&#039;&#039;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click on the address bar, which is located at the top of the Explorer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the network path and press Enter.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:WindowsSmb0_nonPerm_cut.png|center|700px]]&lt;br /&gt;
&amp;lt;p&amp;gt;b) To establish a &#039;&#039;&#039;permanent connection&#039;&#039;&#039; by creating a network (pseudo) drive:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to &amp;amp;quot;This PC&amp;amp;quot;. At the top of the window, click on &#039;&#039;Computer&#039;&#039; and select &#039;&#039;Map network drive&#039;&#039;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
[[File:windowsSmb0_connect_network_drive_cut.png|center|700px]]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose a drive letter to be associated with the network drive and enter the network path. Select &#039;&#039;use a different identification&#039;&#039;, as these differ from your credentials used locally.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:windowsSmb1_driveLetter.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;You will then be prompted to enter your credentials.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:windowsSmb2_password.png|center|x400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;After logging in successfully, your network drive will appear under &#039;&#039;This PC&#039;&#039;. You can now manipulate your files as accustomed.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
* Errors:&lt;br /&gt;
*:* This network folder is currently connected under a different name and password. Disconnect the already existing connection.&lt;br /&gt;
*:* Multiple connections to a server from the same user while using different usernames is not allowed.&lt;br /&gt;
*:* Disconnect old connections. &lt;br /&gt;
*:: Solutions:&lt;br /&gt;
*::* Disconnect already exsting connections: Right click on &amp;quot;My PC&amp;quot;. Click &amp;quot;Further Options&amp;quot;. Click &amp;quot;Disconnect Drives&amp;quot;. Keep in mind that Windows can&#039;t connect multiple network drives when they have different login information.&lt;br /&gt;
*::* Remove / adjust the login information by going to the credential management (Anmeldeinformationsverwaltung).&lt;br /&gt;
* Error: &amp;quot;Your domain is not available. Make sure that you&#039;re connected to your organizational network.&amp;quot; &lt;br /&gt;
*: Solutions:&lt;br /&gt;
*:* Make sure to be in the correct network, for example by connecting via VPN.&lt;br /&gt;
*:* Do not use LAN and WLAN at the same time.&lt;br /&gt;
&lt;br /&gt;
== MacOS ==&lt;br /&gt;
&lt;br /&gt;
Create a network drive with Finder.&lt;br /&gt;
&lt;br /&gt;
=== Needed Information ===&lt;br /&gt;
&lt;br /&gt;
You need the following information:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Username:&#039;&#039;&#039; &amp;lt;code&amp;gt;BWSERVICESAD\&amp;amp;lt;username&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password:&#039;&#039;&#039; &#039;&#039;ServicePassword&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Network Path:&#039;&#039;&#039; smb://lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt; Open Finder&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the menu bar click on &#039;&#039;Go&#039;&#039; -&amp;gt; &#039;&#039;Connect to Server&#039;&#039; (or use ⌘+K)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Insert server address and click &#039;&#039;Connect&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:macSmb_ConnectWithUrl.png|center|x400px]]&lt;br /&gt;
&amp;lt;li&amp;gt;Insert username and password and click &#039;&#039;Connect&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:macSmb_login.png|center|x400px]]&lt;br /&gt;
&amp;lt;li&amp;gt;Finder opens new connected SMB share &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
A UNIX like operating system needs a CIFS client to use a share. CIFS clients are part of Samba implementation for Linux and other UNIX like operating systems (http://www.samba.org)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention:&#039;&#039;&#039; &lt;br /&gt;
The core CIFS protocol does not provide unix ownership information or mode for files and directories. &lt;br /&gt;
Because of this, files and directories will generally appear to be owned by whatever values the uid= or gid= options are set, and will have permissions set to the default file_mode and dir_mode for the mount. &#039;&#039;&#039;Attempting to change these values via chmod/chown will return success but have no effect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For security reasons, server side permission checks cannot be overriden. The permission checks done by the server will always correspond to the credentials used to mount the share, and not necessarily to the user who is accessing the share.&lt;br /&gt;
&lt;br /&gt;
Although mapping of POSIX UIDs and SIDs is not needed mounting a CIFS share &#039;&#039;&#039;it might become necessary when working with files on the share, e.g. when modifying ACLs&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
For this reason the mount option &amp;lt;pre&amp;gt;cifsacl&amp;lt;/pre&amp;gt; together with a working &#039;&#039;&#039;ID Mapping&#039;&#039;&#039; setup is required, to allow correct permission handling and changes. It offers also the tools &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
getcifsacl&lt;br /&gt;
setcifsacl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to work with ACLs.&lt;br /&gt;
&lt;br /&gt;
With version 5.9 of cifs-utils a plugin interface was introduced by Jeff Layton to allow services other than winbind to handle the mapping of POSIX UIDs and SIDs. SSSD will provide a plugin to allow the cifs-utils to ask SSSD to map the ID. With this plugin a SSSD client can access a CIFS share with the same functionality as a client running Winbind.&lt;br /&gt;
&lt;br /&gt;
For this reason we can use the same [[Sds-hd_nfs#configure kerberos environment for SDS@hd|SSSD setup]] for cifs like we use for the kerberized nfs-Setup. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mounting a SDS@hd Share ===&lt;br /&gt;
&lt;br /&gt;
Mounting a SDS@hd CIFS share can be done by using username/password credentials or by using kerberos tickets.&lt;br /&gt;
Information about settting up a kerberos environment for SDS@hd can be found [[SDS@hd/Access/Kerberos|*here*]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Single-User Environment ====&lt;br /&gt;
&lt;br /&gt;
A share can be mounted to a local directory, (e.g. /mnt/sds-hd ). Depending on your system setup, root privileges may be required. &lt;br /&gt;
&lt;br /&gt;
CIFS normally binds all shares on the client as the property of the user who mounted them and transfers any existing write rights only to the user. With additional information from uid, gid, file_mode and dir_mode, other ownership and access rights can be defined when mounting on the client. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nevertheless the ownership and access rights defined in this way are only simulated on the client and are not really transferred to the server.&#039;&#039;&#039; If access rights are changed on the client or files with other owners are created in shared folders, these changes only apply to the client and only until the next remount.&lt;br /&gt;
&lt;br /&gt;
If you need to work with the correct server side permissions, please follow the setup of a [[SDS@hd/Access/SMB#Multiuser_Environment|MultiUser Setup]]&lt;br /&gt;
&lt;br /&gt;
===== Preparations =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create locally an empty directory to mount to&lt;br /&gt;
mkdir &amp;lt;/path/to/empty/folder&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Mount over command line =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -t cifs -o username=&amp;lt;username&amp;gt;,domain=BWSERVICESAD,vers=3,mfsymlinks  //lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym&amp;gt; &amp;lt;/mnt/sds-hd&amp;gt;&lt;br /&gt;
&amp;gt; Password:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Mount over /etc/fstab =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Open /etc/fstab&lt;br /&gt;
sudo nano /etc/fstab&lt;br /&gt;
# Add the following&lt;br /&gt;
//lsdf02.urz.uni-heidelberg.de/&amp;lt;sv_acronym&amp;gt;   &amp;lt;/path/to/empty/folder&amp;gt;   cifs  uid=1000,gid=1000,user,vers=3,mfsymlinks,credentials=&amp;lt;$HOME/.credentialsfile&amp;gt;,noauto  0 0&lt;br /&gt;
# Make the system use the changed file &lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
# Make credentialsfile&lt;br /&gt;
cat /&amp;lt;$HOME/.credentialsfile&amp;gt;&lt;br /&gt;
username=ab_ xy123&lt;br /&gt;
password=&amp;lt;servicePassword&amp;gt;&lt;br /&gt;
domain=BWSERVICESAD&lt;br /&gt;
&lt;br /&gt;
# Mount by providing the same path as was used in /etc/fstab&lt;br /&gt;
mount &amp;lt;/path/to/empty/folder&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Check details =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h | grep mnt&lt;br /&gt;
&amp;gt; //lsdf02.urz.uni-heidelberg.de/sd16j007   108T    6,6T  101T    7% /mnt/sds-hd&lt;br /&gt;
mount | grep lsdf02&lt;br /&gt;
&amp;gt; //lsdf02.urz.uni-heidelberg.de/sd16j007 on /mnt/sds-hd type cifs &amp;gt; (rw,relatime,vers=3.1.1,cache=strict,username=xxxx,domain=BWSERVICESAD,uid=1000,forceuid,gid=0,noforcegid,addr=xxxxx,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Remove mount =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
umount &amp;lt;/path/to/mounted/folder&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Multiuser Environment ====&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background:#ffdeee; width:100%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#f2cece; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#f2cece; text-align:left&amp;quot;|&lt;br /&gt;
At the moment, file deletion is not possible with this setup. We are working on solving the issue. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By default, CIFS mounts only use a single set of user credentials (the mount credentials) when accessing a share. To support different user session on the same mountpoint and the correct permission/ownership processing, the mount options &amp;lt;pre&amp;gt;multiuser,cifsacl&amp;lt;/pre&amp;gt; have to be used. Because the kernel cannot prompt for passwords, &#039;&#039;&#039;multiuser mounts are limited to mounts using passwordless sec= options, like with sec=krb5. Information about settting up a kerberos environment can be found [[SDS@hd/Access/Kerberos|*here*]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== ID Mapping =====&lt;br /&gt;
&lt;br /&gt;
In a Multiuser Environment it is important to get the correct ownerships and permissions from the server. Therefor you need to setup a [[SDS@hd/Access/ID-Mapping|ID Mapping]] environment.&lt;br /&gt;
&lt;br /&gt;
Additionally we need the following packages to enable CIFS Mapping:&lt;br /&gt;
* RedHat/CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ yum install cifs-utils keyutils&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Debian/Ubuntu:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ apt install cifs-utils keyutils&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After [[SDS@hd/Access/ID-Mapping|installing SSSD]] you have to ensure that it will be used for CIFS name resolution, e.g.&lt;br /&gt;
&lt;br /&gt;
* RedHat/CentOS:&lt;br /&gt;
On RedHat SSSD should have allready a higher priority than winbind:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ alternatives --display cifs-idmap-plugin&lt;br /&gt;
&lt;br /&gt;
cifs-idmap-plugin - Status ist automatisch.&lt;br /&gt;
 Link verweist auf /usr/lib64/cifs-utils/cifs_idmap_sss.so&lt;br /&gt;
/usr/lib64/cifs-utils/cifs_idmap_sss.so - priority 20&lt;br /&gt;
/usr/lib64/cifs-utils/idmapwb.so - priority 10&lt;br /&gt;
Zur Zeit ist die `best&#039; Version /usr/lib64/cifs-utils/cifs_idmap_sss.so.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Debian/Ubuntu:&lt;br /&gt;
On Debian systems SSSD has to be registered for ID mapping with an higher priority than winbind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo update-alternatives --install /etc/cifs-utils/idmap-plugin idmap-plugin /usr/lib/x86_64-linux-gnu/cifs-utils/cifs_idmap_sss.so 50&lt;br /&gt;
&lt;br /&gt;
$ update-alternatives --display idmap-plugin&lt;br /&gt;
idmap-plugin - automatischer Modus&lt;br /&gt;
  beste Version des Links ist /usr/lib/x86_64-linux-gnu/cifs-utils/cifs_idmap_sss.so&lt;br /&gt;
  Link verweist zur Zeit auf /usr/lib/x86_64-linux-gnu/cifs-utils/cifs_idmap_sss.so&lt;br /&gt;
  Link idmap-plugin ist /etc/cifs-utils/idmap-plugin&lt;br /&gt;
  Slave idmap-plugin.8.gz ist /usr/share/man/man8/idmap-plugin.8.gz&lt;br /&gt;
/usr/lib/x86_64-linux-gnu/cifs-utils/cifs_idmap_sss.so - Priorität 50&lt;br /&gt;
/usr/lib/x86_64-linux-gnu/cifs-utils/idmapwb.so - Priorität 40&lt;br /&gt;
  Slave idmap-plugin.8.gz: /usr/share/man/man8/idmapwb.8.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== AutoFS Setup =====&lt;br /&gt;
&lt;br /&gt;
Because CIFS shares, in contrast to nfs-Mounts, have to be mounted directly, the root user can not simply mount them into a global folder. Instead the shares have to be initially mounted by a user who has access to the Share. To achieve this, you can use the automounter &amp;quot;autofs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* RedHat/CentOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ yum install autofs&lt;br /&gt;
$ systemctl enable autofs &lt;br /&gt;
$ systemctl start autofs &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Debian/Ubuntu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apt install autofs&lt;br /&gt;
$ systemctl enable autofs &lt;br /&gt;
$ systemctl start autofs &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you configure the SDS@hd Speichervorhaben in a new map file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/auto.sds-hd&lt;br /&gt;
&amp;lt;sv-acronym1&amp;gt;    -fstype=cifs,cifsacl,multiuser,sec=krb5,cruid=${UID},vers=3,mfsymlinks  ://lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym1&amp;gt;&lt;br /&gt;
&amp;lt;sv-acronym2&amp;gt;    -fstype=cifs,cifsacl,multiuser,sec=krb5,cruid=${UID},vers=3,mfsymlinks  ://lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym2&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have to include the new map into the auto.master file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/auto.master&lt;br /&gt;
[...]&lt;br /&gt;
/mnt/sds-hd   /etc/auto.sds-hd&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display all available SDS@hd shares on this machine to the users, you should enable &amp;quot;browser_mode&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/autofs.conf&lt;br /&gt;
[...]&lt;br /&gt;
# to display all available SDS-hd shares on this to the users&lt;br /&gt;
browse_mode=yes&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
otherwise each share-folder will only be visible after a user has mounted.&lt;br /&gt;
&lt;br /&gt;
After changing the configuration, you should restart the autofs daemon, e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl restart autofs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course you can adopt all other autofs options, like timeouts, etc. to the specific needs of your environment or use any other method for dynamically mounting the CIFS shares.&lt;br /&gt;
&lt;br /&gt;
===== Access the Share =====&lt;br /&gt;
&lt;br /&gt;
Now each user should be able to mount a SDS@hd share, which is configured for the machine. If a share is allready mounted, other users will access this share with their own credentials without mounting again.&lt;br /&gt;
&lt;br /&gt;
To get access, each user needs a valid kerberos ticket, which can be fetched with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kinit hd_xy123&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For further information about handling kerberos tickets take a look at [[SDS@hd/Access/NFS#Access_your_data|SDS@hd kerberos]]&lt;br /&gt;
&lt;br /&gt;
=== SMB Client ===&lt;br /&gt;
&lt;br /&gt;
To list the files in a SMB share, use the program smbclient.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smbclient -U &#039;BWSERVICESAD\&amp;lt;username&amp;gt;&#039;  //lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym&amp;gt;&lt;br /&gt;
Enter BWSERVICESAD\&amp;lt;username&amp;gt;&#039;s password: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The program allows you to access the files with a FTP like tool in an interactive shell.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ smbclient //lsdf02.urz.uni-heidelberg.de/&amp;lt;sv-acronym&amp;gt; -U &#039;BWSERVICESAD\&amp;lt;username&amp;gt;&#039;&lt;br /&gt;
Enter BWSERVICESAD\&amp;lt;username&amp;gt;&#039;s password:&lt;br /&gt;
smb: \&amp;gt; ls&lt;br /&gt;
  .                    D        0  Thu Apr 23 12:51:48 2020&lt;br /&gt;
  ..                   D        0  Wed Apr 22 21:54:04 2020&lt;br /&gt;
  bench                D        0  Fri Jul 26 10:24:05 2019&lt;br /&gt;
  benchmark_test       D        0  Tue Oct 30 16:12:21 2018&lt;br /&gt;
  checksums            D        0  Mon Sep 18 10:24:21 2017&lt;br /&gt;
  test.multiuser       A        6  Thu Apr 23 12:36:07 2020&lt;br /&gt;
  test                 A        7  Thu Apr 23 09:38:13 2020&lt;br /&gt;
  .....&lt;br /&gt;
  .snapshots         DHR        0  Thu Jan  1 01:00:00 1970&lt;br /&gt;
&lt;br /&gt;
                115343360000 blocks of size 1024. 108260302848 blocks available&lt;br /&gt;
smb:\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu&amp;diff=15916</id>
		<title>Helix/bwVisu</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu&amp;diff=15916"/>
		<updated>2026-04-01T22:35:23Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added link to QuPath page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:BwVisu wide.svg|300px]]&lt;br /&gt;
&lt;br /&gt;
[https://bwvisu.bwservices.uni-heidelberg.de/ bwVisu] is a scalable service for remote visualization and interactive applications. This easy-to-use, web-based platform provides interactive access to scientific work environments utilizing massive compute and storage resources.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* December 2024: The [https://bwvisu.bwservices.uni-heidelberg.de/ new bwVisu version] based on Open OnDemand is now in operation. You can write feedback to [mailto:bwvisu-support@urz.uni-heidelberg.de bwvisu-support].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/en/service-catalogue/software-and-applications/bwvisu Service Description &amp;amp;amp; FAQ]&lt;br /&gt;
* [mailto:bwvisu-support@urz.uni-heidelberg.de Submit a Ticket]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left;&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://bwvisu.bwservices.uni-heidelberg.de/ &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt; Link to Webservice&amp;lt;/span&amp;gt;]&lt;br /&gt;
* [[Helix/bwVisu/Getting_Started|Getting Started]]&lt;br /&gt;
* [[Helix/bwVisu/Usage|Usage]]&lt;br /&gt;
* Available applications and user guides:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; margin-left: 30px;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! Application&lt;br /&gt;
! [[Helix/bwVisu/Usage#noVNC_Applications|noVNC App]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Helix/bwVisu/CryoSPARC|CryoSPARC]]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://imagej.net/software/fiji/ Fiji]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.ilastik.org/ Ilastik]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://bio3d.colorado.edu/imod/ IMOD]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.mitk.org/2024.12/UserManualPortal.html MITK]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://phy.readthedocs.io/en/latest/ Phy]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [https://qgis.org/ QGIS]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [[Helix/bwVisu/QuPath|QuPath]]&lt;br /&gt;
| ✓&lt;br /&gt;
|-&lt;br /&gt;
| [[Helix/bwVisu/JupyterLab|JupyterLab]]&lt;br /&gt;
| ☓&lt;br /&gt;
|-&lt;br /&gt;
| [[Helix/bwVisu/RStudio|RStudio]]&lt;br /&gt;
| ☓&lt;br /&gt;
|-&lt;br /&gt;
| [[Helix/bwVisu/KI-Morph|KI-Morph]]&lt;br /&gt;
| ☓&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[Helix/bwVisu/Acknowledgement|acknowledge]] bwVisu in your publications&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/Filesystems&amp;diff=15910</id>
		<title>Helix/Filesystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/Filesystems&amp;diff=15910"/>
		<updated>2026-03-30T15:29:40Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Moved &amp;quot;free up space&amp;quot; section into its own chapter. Added &amp;quot;list&amp;quot; option to ws_share.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
The cluster storage system provides a large parallel file system based on [https://www.ibm.com/support/knowledgecenter/STXKQY/ibmspectrumscale_welcome.html IBM Spectrum Scale] &lt;br /&gt;
for $HOME, for workspaces, and for temporary storage via the $TMPDIR environment variable.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:16%&amp;quot; |&lt;br /&gt;
!style=&amp;quot;width:28%&amp;quot;| $HOME&lt;br /&gt;
!style=&amp;quot;width:28%&amp;quot;| Workspaces&lt;br /&gt;
!style=&amp;quot;width:28%&amp;quot;| $TMPDIR&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Visibility&lt;br /&gt;
| global&lt;br /&gt;
| global&lt;br /&gt;
| local&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Lifetime&lt;br /&gt;
| permanent&lt;br /&gt;
| workspace lifetime&lt;br /&gt;
| batch job walltime&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Quotas&lt;br /&gt;
| 200 GB&lt;br /&gt;
| 10 TB&lt;br /&gt;
| none&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Backup&lt;br /&gt;
| snapshots&lt;br /&gt;
| snapshots&lt;br /&gt;
| no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* global: all nodes access the same file system.&lt;br /&gt;
* local: each node has its own temporary file space.&lt;br /&gt;
* permanent: files are stored permanently.&lt;br /&gt;
* workspace lifetime: files are removed at end of workspace lifetime.&lt;br /&gt;
* batch job walltime: files are removed at end of the batch job.&lt;br /&gt;
* snapshots: a copy of all files is saved at specific timepoints so that they can be restored when necessary. For details see the related sections.&lt;br /&gt;
&lt;br /&gt;
== $HOME ==&lt;br /&gt;
&lt;br /&gt;
Home directories are meant for permanent storage of files that are kept being used like source codes, configuration files, executable programs. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disk Space&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The disk space per user is limited to 200 GB. The used disk space is displayed with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
homequotainfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backup&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The backup of the home directory can be found under &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
== Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Workspace tools can be used to get temporary space for larger amounts of data necessary for or produced by running jobs. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create a workspace you need to supply a name for the workspace and a lifetime in days. The maximum lifetime is 30 days. It is possible to extend the lifetime 10 times.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:30%&amp;quot; | Command&lt;br /&gt;
!style=&amp;quot;width:70%&amp;quot;| Action&lt;br /&gt;
|-&lt;br /&gt;
|ws_allocate -r 7 -m &amp;lt;email&amp;gt; foo 10 &lt;br /&gt;
|Allocate a workspace named foo for 10 days and set a email reminder 7 days before expiring. &lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; You should add your email address and a relative date for notification!&lt;br /&gt;
|-&lt;br /&gt;
|ws_list -a&lt;br /&gt;
|List all your workspaces.&lt;br /&gt;
|-&lt;br /&gt;
|ws_find foo&lt;br /&gt;
|Get absolute path of workspace foo.&lt;br /&gt;
|-&lt;br /&gt;
|ws_extend foo 5&lt;br /&gt;
|Extend lifetime of workspace foo by 5 days from now.&lt;br /&gt;
|-&lt;br /&gt;
|ws_release foo&lt;br /&gt;
|Manually erase your workspace foo.&lt;br /&gt;
|-&lt;br /&gt;
|ws_send_ical -m &amp;lt;email&amp;gt; foo&lt;br /&gt;
|Sending a .ical calendar entry for reminding workspace expiring &lt;br /&gt;
|-&lt;br /&gt;
|ws_share &amp;lt;share / unshare / unshare-all / list&amp;gt; &amp;lt;workspacename&amp;gt; &amp;lt;username&amp;gt; [username2]&lt;br /&gt;
|ws_share allows to share an existing workspace with other users. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disk Space&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you plan to produce or copy large amounts of data in workspaces, please check the availability. The used and free disk space on the workspace filesystem is displayed with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workquotainfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Restoring expired Workspaces ===&lt;br /&gt;
At expiration time or after you&#039;ve released it, your workspace will be moved to a special, hidden directory. For a short period of time you can still restore your data into a valid workspace. To get a list of your expired workspaces with their &amp;lt;u&amp;gt;full names&amp;lt;/u&amp;gt;, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ws_restore -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, restore them into an &#039;&#039;&#039;existing, active workspace&#039;&#039;&#039; &amp;lt;code&amp;gt;restored_ws&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ws_restore &amp;lt;deleted_workspacename&amp;gt; restored_ws&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The expired workspace has to be specified using the &#039;&#039;&#039;full name&#039;&#039;&#039;, including username prefix and timestamp suffix (otherwise, it cannot be uniquely identified).&lt;br /&gt;
The target workspace, on the other hand, must be given with just its short name as listed by &amp;lt;code&amp;gt;ws_list&amp;lt;/code&amp;gt;, without the username prefix.&lt;br /&gt;
&lt;br /&gt;
NOTE: &amp;lt;code&amp;gt;ws_restore&amp;lt;/code&amp;gt; can only work on the same filesystem. So you have to ensure that the new workspace allocated with &amp;lt;code&amp;gt;ws_allocate&amp;lt;/code&amp;gt; is placed on the same filesystem as the expired workspace. Therefore you can use &amp;lt;code&amp;gt;-F &amp;lt;filesystem&amp;gt;&amp;lt;/code&amp;gt; flag if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Snapshots&amp;lt;/u&amp;gt;: If the workspace can&#039;t be restored anymore, you can check the snapshots under &amp;lt;code&amp;gt;/work/.snapshots/&amp;lt;timepoint&amp;gt;/ws/&amp;lt;/code&amp;gt;. Changes that happened since the last snapshot was created are lost. Caution: We try to keep the latest snapshots but we can&#039;t guarantee that snapshots will be available at all times.&lt;br /&gt;
&lt;br /&gt;
=== Linking workspaces in Home ===&lt;br /&gt;
It might be valuable to have links to personal workspaces within a certain directory, e.g., the user home directory. The command &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ws_register &amp;lt;DIR&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will create and manage links to all personal workspaces within in the directory &amp;lt;DIR&amp;gt;. Calling this command will do the following:&lt;br /&gt;
&lt;br /&gt;
* The directory &amp;lt;DIR&amp;gt; will be created if necessary&lt;br /&gt;
* Links to all personal workspaces will be managed:&lt;br /&gt;
** Creates links to all available workspaces if not already present&lt;br /&gt;
** Removes links to released workspaces&lt;br /&gt;
&lt;br /&gt;
=== Sharing Workspaces ===&lt;br /&gt;
To simplify sharing of workspaces you can use the command &amp;lt;code&amp;gt;ws_share&amp;lt;/code&amp;gt; as described in the table above.&lt;br /&gt;
The command sets up the workspace to allow read-only access to the specified users.&lt;br /&gt;
If you need more specific permissions, you can follow the guidelines here: &amp;amp;rarr;&lt;br /&gt;
[[Workspace#Setting_Permissions_for_Sharing_Files | Setting_Permissions_for_Sharing_Files]]&lt;br /&gt;
&lt;br /&gt;
== $TMPDIR ==&lt;br /&gt;
&lt;br /&gt;
The variable &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt; provides file space for temporary data of running jobs.&lt;br /&gt;
Each node has its own &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt;. &amp;lt;!-- It is possible to request a global &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt; for a job. --&amp;gt;&lt;br /&gt;
The data in $TMPDIR become unavailable as soon as the job has finished.&lt;br /&gt;
&lt;br /&gt;
== SDS@hd Access ==&lt;br /&gt;
&lt;br /&gt;
It is possible to access your storage space on [http://sds-hd.urz.uni-heidelberg.de SDS@hd] directly on the bwForCluster Helix in /mnt/sds-hd/ on all login and compute nodes.&lt;br /&gt;
&lt;br /&gt;
== Free up Space ==&lt;br /&gt;
&lt;br /&gt;
If you need to free up space, you can...&lt;br /&gt;
* ...check the file sizes with &amp;lt;code&amp;gt;du -sh --apparent-size * .[^.]*&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...delete temporary files, for example in the &amp;lt;code&amp;gt;.cache&amp;lt;/code&amp;gt; folder. Other folders starting with a dot might contain temporary files as well, for example &amp;lt;code&amp;gt;.local/share/Trash&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...use the cleaning commands by your used software (e.g. [https://wiki.bwhpc.de/e/Development/Conda#Create_Environments_and_Install_Software conda]). &lt;br /&gt;
* ...delete folders with temporary data created by your used software (e.g. nextflow).&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Error: &amp;quot;Disk space exceeded&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*: This means that there is not enough space (e.g. in your $HOME) to execute the operation. Please [[Helix/Filesystems#Free_up_Space | free up space]].&lt;br /&gt;
*&#039;&#039;&#039;Error: &amp;quot;could not create workspace directory&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*:You should check the localesetting of your ssh client. Some clients (e.g. the one from MacOSX) set values that are not valid. You should overwrite LC_CTYPE and set it to a valid locale value like: &amp;lt;code&amp;gt;export LC_CTYPE=de_DE.UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
*:To make this change persistent you can add this line also to your &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; file.&lt;br /&gt;
*:A list of valid locales can be retrieved via &amp;lt;code&amp;gt;locale -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Workspace lifetime is expired&#039;&#039;&#039;&lt;br /&gt;
*:Please see chapter [[Helix/Filesystems#Restoring_expired_Workspaces|&amp;quot;Restoring_expired_Workspaces&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;How can I restore lost data&#039;&#039;&#039;&lt;br /&gt;
*:Please have a look at the backup information of the respective file system.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Workspace&amp;diff=15909</id>
		<title>Workspace</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Workspace&amp;diff=15909"/>
		<updated>2026-03-30T15:19:59Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Changed formatting, added some information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Workspace tools&#039;&#039;&#039; provide temporary scratch space so called &#039;&#039;&#039;workspaces&#039;&#039;&#039; for your calculation on a central file storage. They are meant to keep data for a limited time. This can be a couple of days or several months. &lt;br /&gt;
&lt;br /&gt;
== No Backup ==&lt;br /&gt;
&lt;br /&gt;
Workspaces are not meant for permanent storage, hence data in workspaces is usually not backed up and may be lost in case of problems on the storage system. Please copy/move important results to $HOME or a storage space outside the cluster.&lt;br /&gt;
&lt;br /&gt;
== Create workspace ==&lt;br /&gt;
To create a workspace you need to state the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; of your workspace and the &amp;lt;code&amp;gt;lifetime&amp;lt;/code&amp;gt; in days: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_allocate &amp;lt;name&amp;gt; &amp;lt;lifetime&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum value for &#039;&#039;lifetime&#039;&#039; and a maximum number of renewals is specific to each cluster.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; The command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_allocate mySpace 30&amp;lt;/syntaxhighlight&amp;gt; returns:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Workspace created. Duration is 720 hours. &lt;br /&gt;
Further extensions available: 3&lt;br /&gt;
/work/workspace/scratch/username-mySpace-0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information read the program&#039;s help, i.e. &#039;&#039;ws_allocate -h&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== List all your workspaces ==&lt;br /&gt;
&lt;br /&gt;
To list all your workspaces, execute:&lt;br /&gt;
&lt;br /&gt;
 ws_list&lt;br /&gt;
&lt;br /&gt;
which will return:&lt;br /&gt;
* Workspace ID&lt;br /&gt;
* Workspace location&lt;br /&gt;
* available extensions&lt;br /&gt;
* creation date and remaining time&lt;br /&gt;
&lt;br /&gt;
To adjust the output, you can check the help: &amp;lt;code&amp;gt;ws_list -h&amp;lt;/code&amp;gt;. The option &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; for example sorts the workspaces by remaining time. &lt;br /&gt;
&lt;br /&gt;
To list expired workspaces, see [[Workspace#Restore_an_Expired_Workspace|Restore an Expired Workspace]].&lt;br /&gt;
&lt;br /&gt;
== Find workspace location ==&lt;br /&gt;
&lt;br /&gt;
The workspace location/path can be prompted for any workspace &#039;&#039;ID&#039;&#039; using &#039;&#039;&#039;ws_find&#039;&#039;&#039;, in case of workspace &#039;&#039;mySpace&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ws_find mySpace&lt;br /&gt;
&lt;br /&gt;
returns the one-liner:&lt;br /&gt;
&lt;br /&gt;
 /work/workspace/scratch/username-mySpace-0&lt;br /&gt;
&lt;br /&gt;
You can combine the command with the &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; command to diretly move there: &lt;br /&gt;
&lt;br /&gt;
 cd $(ws_find mySpace)&lt;br /&gt;
&lt;br /&gt;
== Extend lifetime of your workspace ==&lt;br /&gt;
&lt;br /&gt;
Any workspace&#039;s lifetime can only be extended a cluster-specific number of times. There are several commands to extend workspace lifetime&lt;br /&gt;
#&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_extend mySpace 40&lt;br /&gt;
# or &lt;br /&gt;
ws_allocate -x mySpace 40&amp;lt;/syntaxhighlight&amp;gt; which extends workspace ID &#039;&#039;mySpace&#039;&#039; by &#039;&#039;40&#039;&#039; days from now.&lt;br /&gt;
#&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_extend mySpace&amp;lt;/syntaxhighlight&amp;gt; which extends workspace ID &#039;&#039;mySpace&#039;&#039; by the number of days used previously.&lt;br /&gt;
&lt;br /&gt;
== Setting Permissions for Sharing Files ==&lt;br /&gt;
The examples will assume you want to change the directory $DIR. If you want to share a workspace, DIR could be set with &amp;lt;code&amp;gt;DIR=$(ws_find my_workspace)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Workspace Tools ===&lt;br /&gt;
&lt;br /&gt;
* ws_share allows to share an existing workspace with other users by providing read access: &lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Share/unshare workspace&lt;br /&gt;
ws_share &amp;lt;share / unshare&amp;gt; &amp;lt;workspacename&amp;gt; &amp;lt;username&amp;gt; [username2]&lt;br /&gt;
# Remove read access from all users that the workspace was shared with&lt;br /&gt;
ws_share unshare-all &amp;lt;workspacename&amp;gt; &lt;br /&gt;
# List all users that were granted read access&lt;br /&gt;
ws_share list &amp;lt;workspacename&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
* Grant read and write access to a group (RV, SV, ...) when creating a new workspace. (Only works with newer versions of the workspace tools.)&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_allocate -G &amp;lt;groupname&amp;gt; &amp;lt;workspacename&amp;gt; &amp;lt;duration&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
*: e.g. for the group bw16e001 and for the workspace commonfiles for 30 days:&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ws_allocate -G bw16e001 commonfiles 30&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
*: Essentially, this tool sets regular unix rwx permissions for the group plus the &amp;quot;suid&amp;quot; bit on the directory to make the permission inheritable.&lt;br /&gt;
&lt;br /&gt;
=== Regular Unix Permissions ===&lt;br /&gt;
&lt;br /&gt;
Making workspaces readable/writable using standard unix access rights with &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt; is only feasible if you and your co-workers share a common unix group (for example &amp;quot;bw22a222&amp;quot; or sd22a222). &lt;br /&gt;
&lt;br /&gt;
Do &#039;&#039;&#039;not&#039;&#039;&#039; make files readable or even writable to everyone or to large common groups (&amp;quot;all students&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
You can see available groups with the command &amp;lt;code&amp;gt;groups&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:45%&amp;quot; | Command&lt;br /&gt;
!style=&amp;quot;width:55%&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;chgrp -R bw16e001 &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chmod -R g+rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Set group ownership and grant read access to group for files in workspace via unix rights to the group &amp;quot;bw16e001&amp;quot; (has to be re-done if files are added)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;chgrp -R bw16e001 &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt; &lt;br /&gt;
&amp;lt;tt&amp;gt;chmod -R g+rswX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Set group ownership and grant read/write access to group for files in workspace via unix rights (has to be re-done if files are added). Group will be inherited by new files, but rights for the group will have to be re-set with chmod for every new file&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options used:&lt;br /&gt;
* &amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt;: recursive&lt;br /&gt;
* &amp;lt;tt&amp;gt;g+rwx&amp;lt;/tt&amp;gt;&lt;br /&gt;
** &amp;lt;tt&amp;gt;g&amp;lt;/tt&amp;gt;: group&lt;br /&gt;
** &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;: add permissions (- to remove)&lt;br /&gt;
** &amp;lt;tt&amp;gt;rwx&amp;lt;/tt&amp;gt;: read, write, execute&lt;br /&gt;
&lt;br /&gt;
=== ACLs: Access Control Lists ===&lt;br /&gt;
ACLs  allow a much more detailed distribution of permissions but are a bit more complicated and not visible in detail via &amp;quot;ls&amp;quot;. They have the additional advantage that you can set a &amp;quot;default&amp;quot; ACL for a directory, (with a &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt; flag or a &amp;lt;tt&amp;gt;d:&amp;lt;/tt&amp;gt; prefix) which will cause all newly created files to inherit the ACLs from the directory. Regular unix permissions only have limited support (only group ownership, not access rights) for this via the suid bit.&lt;br /&gt;
&lt;br /&gt;
Best practices with respect to ACL usage:&lt;br /&gt;
# Take into account that ACLs take precedence over standard unix access rights&lt;br /&gt;
# The owner of a workspace is responsible for its content and management&lt;br /&gt;
&lt;br /&gt;
Please note that &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt; (List directory contents) shows ACLs on directories and files only when run as &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; as in long format, as &amp;quot;plus&amp;quot; sign after the standard unix access rights. &lt;br /&gt;
&lt;br /&gt;
Examples with regard to &amp;quot;my_workspace&amp;quot;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:45%&amp;quot; | Command&lt;br /&gt;
!style=&amp;quot;width:55%&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;getfacl &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|List access rights on $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rm user:fr_xy1:rX,default:user:fr_xy1:rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant user &amp;quot;fr_xy1&amp;quot; read-only access to $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -R -m user:fr_me0000:rwX,default:user:fr_me0000:rwX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;setfacl -R -m user:fr_xy1:rwX,default:user:fr_xy1:rwX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant your own user &amp;quot;fr_me0000&amp;quot; and &amp;quot;fr_xy1&amp;quot; inheritable (&amp;quot;default&amp;quot;) read and write access to $DIR, so you can also read/write files put into the workspace by a coworker&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rm group:bw16e001:rX,default:group:bw16e001:rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant group (Rechenvorhaben) &amp;quot;bw16e001&amp;quot; read-only access to $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rb &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Remove all ACL rights. Standard Unix access rights apply again.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options used:&lt;br /&gt;
* &amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt;: recursive&lt;br /&gt;
* &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt;: modify&lt;br /&gt;
* &amp;lt;tt&amp;gt;user:username:rwX user&amp;lt;/tt&amp;gt;: next name is a user; rwX read, write, eXecute (only where execute is set for user)&lt;br /&gt;
* &amp;lt;tt&amp;gt;default:[user|group]&amp;lt;/tt&amp;gt;: set the default for user or group for new files or dierctories&lt;br /&gt;
&lt;br /&gt;
== Delete a Workspace ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Manually erase your workspace mySpace&lt;br /&gt;
ws_release mySpace&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: workspaces are kept for some time after release. To immediately delete and free space e.g. for quota reasons, delete the files with &amp;lt;tt&amp;gt;rm&amp;lt;/tt&amp;gt; before release.&lt;br /&gt;
&lt;br /&gt;
Newer versions of workspace tools have a &amp;lt;tt&amp;gt;--delete-data&amp;lt;/tt&amp;gt; flag that immediately deletes data. Note that deleted data from workspaces is permanently lost.&lt;br /&gt;
&lt;br /&gt;
== Restore an Expired Workspace ==&lt;br /&gt;
&lt;br /&gt;
For a certain (system-specific) grace time following workspace expiration, a workspace can be restored by performing the following steps:&lt;br /&gt;
&lt;br /&gt;
(1) Display restorable workspaces.&lt;br /&gt;
 ws_restore -l&lt;br /&gt;
&lt;br /&gt;
(2) Create a new workspace as the target for the restore:&lt;br /&gt;
 ws_allocate &amp;lt;new_workspace&amp;gt; &amp;lt;lifetime&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(3) Restore:&lt;br /&gt;
 ws_restore &amp;lt;full_name_of_expired_workspace&amp;gt; &amp;lt;new_workspace&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The expired workspace has to be specified using the &#039;&#039;&#039;full name&#039;&#039;&#039;, including username prefix and timestamp suffix (otherwise, it cannot be uniquely identified).&lt;br /&gt;
The target workspace, on the other hand, must be given with just its short name as listed by &amp;lt;code&amp;gt;ws_list&amp;lt;/code&amp;gt;, without the username prefix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;In most cases:&amp;lt;/u&amp;gt; If the workspace is not visible/restorable, it has been &#039;&#039;&#039;permanently deleted&#039;&#039;&#039; and cannot be restored, not even by us. Please always remember, that workspaces are intended solely for temporary work data, and there is no backup of data in the workspaces.  &lt;br /&gt;
Please see the workspace page of your specific cluster in case your cluster does have some kind of backup.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting == &lt;br /&gt;
* &#039;&#039;&#039;Error: &amp;quot;Disk space exceeded&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
*: This means that there is not enough space (e.g. in your $HOME) to execute the operation. Please [[FAQ#quota_exceeded | free up space]].&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=FAQ&amp;diff=15908</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=FAQ&amp;diff=15908"/>
		<updated>2026-03-30T15:18:38Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: New formatting; partially added content from NEMO/FAQ and Helix pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Login Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Can&#039;t log in ===&lt;br /&gt;
&lt;br /&gt;
* If the registry/account info shows &#039;Status: LOST_ACCESS&#039;, you need to fulfill the requirements outlined in &amp;lt;b&amp;gt;→&amp;lt;/b&amp;gt; [[Registration]]: &lt;br /&gt;
** Entitlement&lt;br /&gt;
** bwUniCluster &amp;amp;rarr; [[BwUniCluster_2.0_User_Access#Step_C:_Fill_out_the_bwUniCluster_questionnaire|Check if you answered the questionnaire.]]&lt;br /&gt;
** bwForCluster &amp;amp;rarr; You must be an active member in an active RV. You can see your RV memberships at the central application site ZAS under [https://zas.bwhpc.de/shib/en/info_rv.php &#039;&#039;&#039;My RVs&#039;&#039;&#039;].  &lt;br /&gt;
* Double-check your [[Registration/Login/Username|username]] and [[Registration/Password|password]].&lt;br /&gt;
* Make sure your CAPS LOCK key is not enabled.&lt;br /&gt;
* Try [[Registration/Password|resetting your password]].&lt;br /&gt;
* Ensure your [[Registration/Account|account]] is not locked or expired.&lt;br /&gt;
* Are you within the university network (Universities in Baden-Württemberg, BELWÜ)?&lt;br /&gt;
* Send us the output of the following command:&lt;br /&gt;
  ssh -l [[Registration/Login/Username|username]] [[Registration/Login/Hostname|hostname]] -vvv&lt;br /&gt;
  # Example:&lt;br /&gt;
  ssh -l fr_ab1234 login.nemo.uni-freiburg.de -vvv&lt;br /&gt;
&lt;br /&gt;
=== Forgot password === &lt;br /&gt;
&lt;br /&gt;
Set a new password for the service &amp;amp;rarr; [[Registration/Password|Password Guide]]&lt;br /&gt;
&lt;br /&gt;
=== Lost phone with OTP token  === &lt;br /&gt;
&lt;br /&gt;
You can use your backup TAN list and add a new token. If you don&#039;t have one, contact the support. &lt;br /&gt;
&lt;br /&gt;
== File Systems and Workspaces ==&lt;br /&gt;
=== &amp;lt;span id=&amp;quot;quota_exceeded&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; File system quota exceeded ===&lt;br /&gt;
&lt;br /&gt;
There are quota limits for: &lt;br /&gt;
* disk space&lt;br /&gt;
* number of inodes (files)&lt;br /&gt;
Identifiy the issue: &lt;br /&gt;
* Disk space: List all directories (and files) in your home directory or workspace sorted by size. (&amp;lt;tt&amp;gt;.[!.]*&amp;lt;/tt&amp;gt; makes sure the &amp;quot;hidden&amp;quot; dot files are also checked.)&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;du -sh .[!.]* * | sort -h | tail&lt;br /&gt;
# or&lt;br /&gt;
du -sh --apparent-size * .[^.]*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: Descend in a  directory with a large reported size and repeat until you find large files that are worth taking care of. &lt;br /&gt;
* Number of inodes:&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# check current directory&lt;br /&gt;
ls -1a | wc -l&lt;br /&gt;
# check subdirectories&lt;br /&gt;
du -s --inodes .[!.]* * | sort -n&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To free up space, you can:&lt;br /&gt;
* ...delete temporary files, for example in the &amp;lt;code&amp;gt;.cache&amp;lt;/code&amp;gt; folder. Other folders starting with a dot might contain temporary files as well, for example &amp;lt;code&amp;gt;.local/share/Trash&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...use the cleaning commands by your used software (e.g. [https://wiki.bwhpc.de/e/Development/Conda#Create_Environments_and_Install_Software conda]). &lt;br /&gt;
* ...delete folders with temporary data created by your used software (e.g. nextflow).&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=15845</id>
		<title>Helix/bwVisu/JupyterLab</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=15845"/>
		<updated>2026-03-19T09:33:23Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fix for pip installations in shared envs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://jupyter.org/ JupyterLab] is an integrated development environment (IDE) that provides a flexible and scalable interface for the Jupyter Notebook system. It supports interactive data science and scientific computing across over 40 programming languages (including Python, Julia, and R).&lt;br /&gt;
&lt;br /&gt;
== Change Python Version ==&lt;br /&gt;
&lt;br /&gt;
The default python version can be seen by running &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt; in the terminal. &lt;br /&gt;
&lt;br /&gt;
A different python version can be installed into a new virtual environment and then registered as IPython kernel for the usage in JupyterLab. This is explained in the chapter [[#Add_packages_via_conda_environments | add packages via conda environments]].&lt;br /&gt;
&lt;br /&gt;
== Install Python Packages ==&lt;br /&gt;
&lt;br /&gt;
Python packages can be added by installing them into a virtual environment and then creating an IPython kernel from the virtual environment. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kernels can be shared&amp;lt;/u&amp;gt;. See the notes below. &amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to move a virtual environment, it is adivsed to recreate it in the new place. Otherwise, dependencies based on relative paths will break. &lt;br /&gt;
&lt;br /&gt;
# Create a virtual environment with...&lt;br /&gt;
#* [[#Add_packages_via_venv_virtual_environments | ...venv]] or&lt;br /&gt;
#* [[#Add_packages_via_Conda_virtual_environments | ...conda]] (choose this option if you want to install a different python version) or &lt;br /&gt;
#* ...[https://docs.astral.sh/uv/getting-started/ uv] if you want to install a different python version but don&#039;t want to use conda. &lt;br /&gt;
# [[#Create_an_IPython_Kernel | Create an IPython kernel]] from the virtual environment&lt;br /&gt;
# Use the kernel within JupyterLab&lt;br /&gt;
#* By default new kernels are saved under &amp;lt;code&amp;gt;~/.local/share/jupyter&amp;lt;/code&amp;gt; and this location is automatically detected. Therefore, new kernels are directly available. &lt;br /&gt;
#*:[[File:BwVisu JuypterLab KernelPath.png|In the JupyterLab job configuration form, a custom kernel path can be provided.|right|thumb|x150px]]&lt;br /&gt;
#* If the kernel is saved somewhere else, the path can be provided in the &amp;quot;Kernel path&amp;quot; field when configuring the JupyterLab job (see image). For a kernel placed under &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter/kernels/my_kernel&amp;lt;/code&amp;gt; the needed &amp;quot;Kernel path&amp;quot; would be &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter&amp;lt;/code&amp;gt;. &lt;br /&gt;
# When the kernel is used the first time, the file &amp;lt;code&amp;gt;notebook_secrets&amp;lt;/code&amp;gt; is created automatically. It can be found under &amp;quot;Kernel path&amp;quot;. For others to use the kernel, they must have read access to this file. The command &amp;lt;code&amp;gt;chmod 750 notebook_secrets&amp;lt;/code&amp;gt; would for example allow the whole SDS@hd SV read access. For the access management in workspaces, please see [[Workspace#Setting_Permissions_for_Sharing_Files| Wokspace Permissions]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Notes regarding the sharing of IPython kernels&amp;lt;/u&amp;gt;&lt;br /&gt;
* The virtual environment and the kernel need to be placed in a shared directory. For example at SDS@hd.&lt;br /&gt;
* There could be a subdirectory for the virtual environments and one for the kernels. &lt;br /&gt;
* The path to the kernels is saved in the environment variable $JUPYTER_DATA_DIR. Jupyter relevant paths can be seen with &amp;lt;code&amp;gt;jupyter --paths&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via &#039;&#039;venv&#039;&#039; virtual environments ===&lt;br /&gt;
More information about venv or other python virtual environments can be found at the [[Development/Python | Python]] page. &lt;br /&gt;
&lt;br /&gt;
Steps for creating a &#039;&#039;&#039;venv&#039;&#039;&#039; virtual environment:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual evironment: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m venv &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;env_parent_dir&amp;lt;/code&amp;gt; is the path to the folder where the virtual environment shall be created. Relative paths can be used.&lt;br /&gt;
* Caution: If you you want to share the environment with others, make sure to already create it in the shared place. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;source &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;/bin/activate&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Update pip and install packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install -U pip --no-user&lt;br /&gt;
# when the environment is installed in home&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt;&lt;br /&gt;
# when the environment is installed somewhere else and shall not have dependencies in home so that others can access it as well&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt; --no-user&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via Conda virtual environments ===&lt;br /&gt;
More information about using conda can be found at the [[Development/Conda | Conda]] page. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the miniforge module by clicking first on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page and then on the &amp;amp;quot;load&amp;amp;quot; button right of the entry for miniforge in the software module menu. &lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual environment: &lt;br /&gt;
* If you are the only person using the environment, you can install it in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --name &amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* If you want to install it into a different directory, for example a shared place:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --prefix &amp;lt;path_to_shared_directory&amp;gt;/&amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate your environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda activate &amp;lt;myenv&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install your packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda install &amp;lt;mypackage&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create an IPython Kernel ==&lt;br /&gt;
&lt;br /&gt;
Python kernels are implementations of the Jupyter notebook environment for different languages or virtual environments. You can switch between kernels easily, allowing you to use the best tool for a specific task.&lt;br /&gt;
conda_kernels&lt;br /&gt;
&lt;br /&gt;
=== Create a kernel from a virtual environment ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the virtual environment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the ipykernel package:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install ipykernel&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Register the virtual environment as custom kernel to Jupyter. &lt;br /&gt;
* If you are the only person using the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --user --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can be found under &amp;lt;code&amp;gt;~/.local/share/jupyter/kernels/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you installed the environment in a shared place and want to have the kernel there as well: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --prefix &amp;lt;path_to_kernel_folder&amp;gt; --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can then be found under &amp;lt;code&amp;gt;path_to_kernel_folder/share/jupyter/kernels/&amp;lt;kernel_name&amp;gt;&amp;lt;/code&amp;gt;. As long as the same &amp;lt;code&amp;gt;path_to_kernel_folder&amp;lt;/code&amp;gt; is used, all kernels will be saved next to each other in &amp;quot;kernels&amp;quot;. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Language Support ===&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports over 40 programming languages including Python, R, Julia, and Scala. This is achieved through the use of different kernels.&lt;br /&gt;
&lt;br /&gt;
==== R Kernel ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the cluster:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load math/R&lt;br /&gt;
$ R&lt;br /&gt;
&amp;amp;gt; install.packages(&#039;IRkernel&#039;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On bwVisu:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Jupyter App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In left menu: load math/R&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Console:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ R&lt;br /&gt;
&amp;amp;gt; IRkernel::installspec(displayname = &#039;R 4.2&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Start kernel &#039;R 4.2&#039; as console or notebook&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Julia Kernel ====&lt;br /&gt;
&lt;br /&gt;
Load the math/julia module. Open the Terminal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
julia&lt;br /&gt;
]&lt;br /&gt;
add IJulia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, Julia is available as a kernel.&lt;br /&gt;
&lt;br /&gt;
== Interactive Widgets ==&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports interactive widgets that can create UI controls for interactive data visualization and manipulation within the notebooks. Example of using an interactive widget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;{.python&amp;quot;&amp;gt;from ipywidgets import IntSlider&lt;br /&gt;
slider = IntSlider()&lt;br /&gt;
display(slider)&amp;lt;/pre&amp;gt;&lt;br /&gt;
These widgets can be sliders, dropdowns, buttons, etc., which can be connected to Python code running in the backend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;My conda commands are interrupted with message &#039;Killed&#039;.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Request more memory when starting Jupyter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I navigate to my SDS@hd folder in the file browser?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Open a terminal and set a symbolic link to your SDS@hd folder in your home directory. For example:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Jupyterlab doesn&#039;t let me in but asks for a password.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Try using more memory for the job. If this doesn&#039;t help, try using the inkognito mode of your browser as the browser cache might be the problem.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;I prefer VSCode over JupyterLab. Can I start a JupyterLab job and then connect with it via VSCode?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
This is not possible. Please start the job directly on Helix instead. You can find the instructions at the [[Development/VS_Code#Connect_to_Remote_Jupyter_Kernel | VSCode page]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=15843</id>
		<title>SDS@hd/Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=15843"/>
		<updated>2026-03-18T11:21:00Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an overview on how to access data served by SDS@hd. To get an introduction to data transfer in general, see [[Data_Transfer|data transfer]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notation:&#039;&#039;&#039; Please replace all placeholder contents within guillemets &amp;lt;code&amp;gt;&amp;lt; &amp;gt;&amp;lt;/code&amp;gt; with the actual value. For example, replace &#039;&#039;&amp;lt;name_of_my_dog&amp;gt;&#039;&#039; with &#039;&#039;Fluffy&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* You need to be [[SDS@hd/Registration|registered]].&lt;br /&gt;
* You need to be in the belwue-Network. This means you have to use the VPN Service of your HomeOrganization, if you want to access SDS@hd from outside the bwHPC-Clusters (e.g. via eduroam or from your personal notebook).&lt;br /&gt;
&lt;br /&gt;
== Needed Information, independent of the chosen tool ==&lt;br /&gt;
&lt;br /&gt;
* Username: You can look it up under your user data at [https://bwservices.uni-heidelberg.de/user/index.xhtml bwServices]. The username is &#039;&#039;&amp;lt;localPrimaryGroup&amp;gt;_&amp;lt;eduPersonPrincipalName&amp;gt;&#039;&#039; . (It is the same as for the bwHPC Clusters.)&lt;br /&gt;
* Password: The Service Password that you set at bwServices in the [[SDS@hd/Registration|registration step]].&lt;br /&gt;
* SV-Acronym: Use the lower case version of the acronym for all access options.&lt;br /&gt;
* Hostname: The hostname depends on the chosen network protocol:&lt;br /&gt;
** For [[Data_Transfer/SSHFS|SSHFS]] and [[Data_Transfer/SFTP|SFTP]]: &#039;&#039;lsdf02-sshfs.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[SDS@hd/Access/SMB|SMB]] and [[SDS@hd/Access/NFS|NFS]]: &#039;&#039;lsdf02.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[Data_Transfer/WebDAV|WebDAV]] the url is: &#039;&#039;https://lsdf02-webdav.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Recommended Setup ==&lt;br /&gt;
The following graphic shows the recommended way for accessing SDS@hd via Windows/Mac/Linux. The table provides an overview of the most important access options and links to the related pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have various use cases, it is recommended to use [[Data_Transfer/Rclone|Rclone]]. You can copy, sync and mount with it. Thanks to its multithreading capability Rclone is a good fit for transferring big data.&amp;lt;br /&amp;gt;&lt;br /&gt;
For an overview of all connection possibilities, please have a look at [[Data_Transfer/All_Data_Transfer_Routes|all data transfer routes]].&lt;br /&gt;
&lt;br /&gt;
[[File:Data_transfer_diagram_simple.jpg|center|500px]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Figure 1: SDS@hd main transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
! Use Case&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac&lt;br /&gt;
! Linux&lt;br /&gt;
! Possible Bandwith&lt;br /&gt;
! Firewall Ports&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/Rclone|Rclone]] + &amp;lt;protocol&amp;gt;&lt;br /&gt;
| copy, sync and mount, multithreading&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/SMB|SMB]]&lt;br /&gt;
| mount as network drive in file explorer or usage via Rclone&lt;br /&gt;
| [[SDS@hd/Access/SMB#Windows|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Mac|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 139 (netbios), 135 (rpc), 445 (smb)&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/WebDAV|WebDAV]]&lt;br /&gt;
| go to solution for restricted networks&lt;br /&gt;
| [✓]&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| up to 100GBit/sec&lt;br /&gt;
| 80 (http), 443 (https)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]]&lt;br /&gt;
| Graphical User Interface (GUI)&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|✓]]&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
| mount for multi-user environments&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| [[SDS@hd/Access/NFS|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| -&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SSHFS|SSHFS]]&lt;br /&gt;
| mount, needs stable internet connection&lt;br /&gt;
| ☓&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SFTP|SFTP]]&lt;br /&gt;
| interactive shell, better usability when used together with Rclone&lt;br /&gt;
| [[Data_Transfer/SFTP#Windows|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 22 (ssh)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Table 1: SDS@hd transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access from a bwHPC Cluster ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t mount to your $HOME directory but you can create a mount under $TMPDIR by following the instructions for [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]]. It is advised to wait a couple of seconds (&amp;lt;code&amp;gt;sleep 5&amp;lt;/code&amp;gt;) before trying to use the mounted directory. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes. The prerequisites are: &lt;br /&gt;
* The SV responsible has enabled the SV on BinAC 2 once by writing to [mailto:sds-hd-support@urz.uni-heidelberg.de sds-hd-support@urz.uni-heidelberg.de]&lt;br /&gt;
* You have a valid kerberos ticket, which can be fetched with &amp;lt;code&amp;gt;kinit &amp;lt;userID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can mount your SDS@hd SV on the cluster yourself by using [[Data_Transfer/Rclone | Rclone]] with the [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]] command. As transfer protocol you can use WebDAV or sftp. For a full overview please have a look at [[Data_Transfer/All_Data_Transfer_Routes | All Data Transfer Routes]].&lt;br /&gt;
&lt;br /&gt;
=== Access via Webbrowser (read-only) ===&lt;br /&gt;
&lt;br /&gt;
Visit [https://lsdf02-webdav.urz.uni-heidelberg.de/ lsdf02-webdav.urz.uni-heidelberg.de] and login with your SDS@hd username and service password. Here you can get an overview of the data in your &amp;amp;quot;Speichervorhaben&amp;amp;quot; and download single files. To be able to do more, like moving data, uploading new files, or downloading complete folders, a suitable client is needed as described above.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Managing access rights&#039;&#039;&#039; &amp;lt;br /&amp;gt; -&amp;gt; You can adjust the access rights when the SV is mounted on Windows in the file/folder properties menu (users from Heidelberg without Windows can use the [https://www.urz.uni-heidelberg.de/de/service-katalog/desktop-und-arbeitsplatz/windows-terminalserver Windows terminal server]). bwForCluster Helix users can change the access rights via Helix by using [[Workspace#Regular_Unix_Permissions | unix permissions]] or [[Workspace#ACLs:_Access_Control_Lists | access control lists]]. Otherwise, ACL changes won&#039;t work when used locally on a mounted directory. Additionally to the already mentioned options, the SVV can take over ownership of files by opening a sftp shell and running &amp;lt;code&amp;gt;chown -R &amp;lt;userID&amp;gt; &amp;lt;path/to/folder&amp;gt;&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Multiuser environment&#039;&#039;&#039; &amp;lt;br /&amp;gt; -&amp;gt; Use [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the News section at the SDS@hd start page in the wiki. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The credentials aren&#039;t accepted &lt;br /&gt;
*: Check if your credentials work in general by trying the access via webbrowser: [https://lsdf02-webdav.urz.uni-heidelberg.de/].&lt;br /&gt;
*: If this doesn&#039;t work: &lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/Login/Username| Check your Username]]&lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | Troubleshooting with bwServices]]&lt;br /&gt;
* &#039;&#039;&#039;Other Issue&#039;&#039;&#039;&lt;br /&gt;
** If available, follow the troubleshooting guide of your specific connection method.&lt;br /&gt;
** Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
** If you have an institutional account, make sure to be a fully active member of your institution.&lt;br /&gt;
If these suggestions didn&#039;t help, write to the [mailto:sds-hd-support@urz.uni-heidelberg.de support]. Provide the following information: &lt;br /&gt;
* Your operating system&lt;br /&gt;
* Does the access via webbrowser work? &lt;br /&gt;
*: If yes, provide us with detailed information on how you tried to access your SV (used access method, username, ...).&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=15842</id>
		<title>SDS@hd/Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=SDS@hd/Access&amp;diff=15842"/>
		<updated>2026-03-17T23:32:37Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Adjusted managing access rights section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides an overview on how to access data served by SDS@hd. To get an introduction to data transfer in general, see [[Data_Transfer|data transfer]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notation:&#039;&#039;&#039; Please replace all placeholder contents within guillemets &amp;lt;code&amp;gt;&amp;lt; &amp;gt;&amp;lt;/code&amp;gt; with the actual value. For example, replace &#039;&#039;&amp;lt;name_of_my_dog&amp;gt;&#039;&#039; with &#039;&#039;Fluffy&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* You need to be [[SDS@hd/Registration|registered]].&lt;br /&gt;
* You need to be in the belwue-Network. This means you have to use the VPN Service of your HomeOrganization, if you want to access SDS@hd from outside the bwHPC-Clusters (e.g. via eduroam or from your personal notebook).&lt;br /&gt;
&lt;br /&gt;
== Needed Information, independent of the chosen tool ==&lt;br /&gt;
&lt;br /&gt;
* Username: You can look it up under your user data at [https://bwservices.uni-heidelberg.de/user/index.xhtml bwServices]. The username is &#039;&#039;&amp;lt;localPrimaryGroup&amp;gt;_&amp;lt;eduPersonPrincipalName&amp;gt;&#039;&#039; . (It is the same as for the bwHPC Clusters.)&lt;br /&gt;
* Password: The Service Password that you set at bwServices in the [[SDS@hd/Registration|registration step]].&lt;br /&gt;
* SV-Acronym: Use the lower case version of the acronym for all access options.&lt;br /&gt;
* Hostname: The hostname depends on the chosen network protocol:&lt;br /&gt;
** For [[Data_Transfer/SSHFS|SSHFS]] and [[Data_Transfer/SFTP|SFTP]]: &#039;&#039;lsdf02-sshfs.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[SDS@hd/Access/SMB|SMB]] and [[SDS@hd/Access/NFS|NFS]]: &#039;&#039;lsdf02.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
** For [[Data_Transfer/WebDAV|WebDAV]] the url is: &#039;&#039;https://lsdf02-webdav.urz.uni-heidelberg.de&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Recommended Setup ==&lt;br /&gt;
The following graphic shows the recommended way for accessing SDS@hd via Windows/Mac/Linux. The table provides an overview of the most important access options and links to the related pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have various use cases, it is recommended to use [[Data_Transfer/Rclone|Rclone]]. You can copy, sync and mount with it. Thanks to its multithreading capability Rclone is a good fit for transferring big data.&amp;lt;br /&amp;gt;&lt;br /&gt;
For an overview of all connection possibilities, please have a look at [[Data_Transfer/All_Data_Transfer_Routes|all data transfer routes]].&lt;br /&gt;
&lt;br /&gt;
[[File:Data_transfer_diagram_simple.jpg|center|500px]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Figure 1: SDS@hd main transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
! Use Case&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac&lt;br /&gt;
! Linux&lt;br /&gt;
! Possible Bandwith&lt;br /&gt;
! Firewall Ports&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/Rclone|Rclone]] + &amp;lt;protocol&amp;gt;&lt;br /&gt;
| copy, sync and mount, multithreading&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
| depends on used protocol&lt;br /&gt;
|-&lt;br /&gt;
| [[SDS@hd/Access/SMB|SMB]]&lt;br /&gt;
| mount as network drive in file explorer or usage via Rclone&lt;br /&gt;
| [[SDS@hd/Access/SMB#Windows|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Mac|✓]]&lt;br /&gt;
| [[SDS@hd/Access/SMB#Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 139 (netbios), 135 (rpc), 445 (smb)&lt;br /&gt;
|-&lt;br /&gt;
| [[Data_Transfer/WebDAV|WebDAV]]&lt;br /&gt;
| go to solution for restricted networks&lt;br /&gt;
| [✓]&lt;br /&gt;
| ✓&lt;br /&gt;
| ✓&lt;br /&gt;
| up to 100GBit/sec&lt;br /&gt;
| 80 (http), 443 (https)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|MobaXterm]]&lt;br /&gt;
| Graphical User Interface (GUI)&lt;br /&gt;
| [[Data_Transfer/Graphical_Clients#MobaXterm|✓]]&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
| mount for multi-user environments&lt;br /&gt;
| ☓&lt;br /&gt;
| ☓&lt;br /&gt;
| [[SDS@hd/Access/NFS|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| -&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SSHFS|SSHFS]]&lt;br /&gt;
| mount, needs stable internet connection&lt;br /&gt;
| ☓&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SSHFS#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| see sftp&lt;br /&gt;
| see sftp&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| [[Data_Transfer/SFTP|SFTP]]&lt;br /&gt;
| interactive shell, better usability when used together with Rclone&lt;br /&gt;
| [[Data_Transfer/SFTP#Windows|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| [[Data_Transfer/SFTP#MacOS_&amp;amp;_Linux|✓]]&lt;br /&gt;
| up to 40 Gbit/sec&lt;br /&gt;
| 22 (ssh)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center; font-size: small; margin-top: 10px&amp;quot;&amp;gt;Table 1: SDS@hd transfer routes&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access from a bwHPC Cluster ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t mount to your $HOME directory but you can create a mount under $TMPDIR by following the instructions for [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]]. It is advised to wait a couple of seconds (&amp;lt;code&amp;gt;sleep 5&amp;lt;/code&amp;gt;) before trying to use the mounted directory. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can directly access your storage space under &#039;&#039;/mnt/sds-hd/&#039;&#039; on all login and compute nodes. The prerequisites are: &lt;br /&gt;
* The SV responsible has enabled the SV on BinAC 2 once by writing to [mailto:sds-hd-support@urz.uni-heidelberg.de sds-hd-support@urz.uni-heidelberg.de]&lt;br /&gt;
* You have a valid kerberos ticket, which can be fetched with &amp;lt;code&amp;gt;kinit &amp;lt;userID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can mount your SDS@hd SV on the cluster yourself by using [[Data_Transfer/Rclone | Rclone]] with the [[Data_Transfer/Rclone#Usage_Rclone_Mount | Rclone mount]] command. As transfer protocol you can use WebDAV or sftp. For a full overview please have a look at [[Data_Transfer/All_Data_Transfer_Routes | All Data Transfer Routes]].&lt;br /&gt;
&lt;br /&gt;
=== Access via Webbrowser (read-only) ===&lt;br /&gt;
&lt;br /&gt;
Visit [https://lsdf02-webdav.urz.uni-heidelberg.de/ lsdf02-webdav.urz.uni-heidelberg.de] and login with your SDS@hd username and service password. Here you can get an overview of the data in your &amp;amp;quot;Speichervorhaben&amp;amp;quot; and download single files. To be able to do more, like moving data, uploading new files, or downloading complete folders, a suitable client is needed as described above.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Managing access rights&#039;&#039;&#039; &amp;lt;br /&amp;gt; -&amp;gt; You can adjust the access rights when the SV is mounted on Windows in the file/folder properties menu (Heidelberg users without Windows can use the [https://www.urz.uni-heidelberg.de/de/service-katalog/desktop-und-arbeitsplatz/windows-terminalserver Windows terminal server]. Helix users can change the access rights via Helix by using [[Workspace#Regular_Unix_Permissions | unix permissions]] or [[Workspace#ACLs:_Access_Control_Lists | access control lists]]. Otherwise ACL changes won&#039;t work when used locally on a mounted directory. Additionally to the already mentioned options, the SVV can take over ownership of files by opening a sftp shell and running &amp;lt;code&amp;gt;chown -R &amp;lt;userID&amp;gt; &amp;lt;path/to/folder&amp;gt;&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Multiuser environment&#039;&#039;&#039; &amp;lt;br /&amp;gt; -&amp;gt; Use [[SDS@hd/Access/NFS|NFS]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Maintance windows and known issues are communicated via the email list or the News section at the SDS@hd start page in the wiki. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Issue:&#039;&#039;&#039; The credentials aren&#039;t accepted &lt;br /&gt;
*: Check if your credentials work in general by trying the access via webbrowser: [https://lsdf02-webdav.urz.uni-heidelberg.de/].&lt;br /&gt;
*: If this doesn&#039;t work: &lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/Login/Username| Check your Username]]&lt;br /&gt;
*:: &amp;amp;rarr; [[Registration/bwForCluster/Helix#Troubleshooting_with_the_Help_of_bwServices | Troubleshooting with bwServices]]&lt;br /&gt;
* &#039;&#039;&#039;Other Issue&#039;&#039;&#039;&lt;br /&gt;
** If available, follow the troubleshooting guide of your specific connection method.&lt;br /&gt;
** Make sure to not use LAN and WLAN at the same time to prevent connection problems.&lt;br /&gt;
** If you have an institutional account, make sure to be a fully active member of your institution.&lt;br /&gt;
If these suggestions didn&#039;t help, write to the [mailto:sds-hd-support@urz.uni-heidelberg.de support]. Provide the following information: &lt;br /&gt;
* Your operating system&lt;br /&gt;
* Does the access via webbrowser work? &lt;br /&gt;
*: If yes, provide us with detailed information on how you tried to access your SV (used access method, username, ...).&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Python&amp;diff=15762</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Python&amp;diff=15762"/>
		<updated>2026-03-02T16:20:03Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: New formatting, small text changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Overview of pages related to the programming language Python.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;rarr; &#039;&#039;&#039;[[Development/Python | Python Main Page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cluster-specific pages:&#039;&#039;&#039;&lt;br /&gt;
* [[JUSTUS2/Software/Python | Python on JUSTUS 2]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instructions for JupyterLab on...&#039;&#039;&#039;&lt;br /&gt;
* [[BwUniCluster3.0/Jupyter | bwUniCluster3.0 ]]&lt;br /&gt;
* [[Helix/bwVisu/JupyterLab | Helix]] (through [[Helix/bwVisu | bwVisu]])&lt;br /&gt;
* [[BinAC2/Software/Jupyterlab | BinAC2]] (as software module)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Related software packages&#039;&#039;&#039;&lt;br /&gt;
* [[BwUniCluster3.0/Software/Python Dask | Dask]] (on bwUniCluster3.0)&lt;br /&gt;
* [[Development/ollama | ollama ]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Training&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hpcraink/workshop-parallel-jupyter Workshop - Parallel Python via Jupyter]&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=15761</id>
		<title>Helix/bwVisu/JupyterLab</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/JupyterLab&amp;diff=15761"/>
		<updated>2026-03-02T15:02:00Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added fourth step to the kernel sharing instructions to fix permission issues.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://jupyter.org/ JupyterLab] is an integrated development environment (IDE) that provides a flexible and scalable interface for the Jupyter Notebook system. It supports interactive data science and scientific computing across over 40 programming languages (including Python, Julia, and R).&lt;br /&gt;
&lt;br /&gt;
== Change Python Version ==&lt;br /&gt;
&lt;br /&gt;
The default python version can be seen by running &amp;lt;code&amp;gt;python --version&amp;lt;/code&amp;gt; in the terminal. &lt;br /&gt;
&lt;br /&gt;
A different python version can be installed into a new virtual environment and then registered as IPython kernel for the usage in JupyterLab. This is explained in the chapter [[#Add_packages_via_conda_environments | add packages via conda environments]].&lt;br /&gt;
&lt;br /&gt;
== Install Python Packages ==&lt;br /&gt;
&lt;br /&gt;
Python packages can be added by installing them into a virtual environment and then creating an IPython kernel from the virtual environment. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kernels can be shared&amp;lt;/u&amp;gt;. See the notes below. &amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to move a virtual environment, it is adivsed to recreate it in the new place. Otherwise, dependencies based on relative paths will break. &lt;br /&gt;
&lt;br /&gt;
# Create a virtual environment with...&lt;br /&gt;
#* [[#Add_packages_via_venv_virtual_environments | ...venv]] or&lt;br /&gt;
#* [[#Add_packages_via_Conda_virtual_environments | ...conda]] (choose this option if you want to install a different python version) or &lt;br /&gt;
#* ...[https://docs.astral.sh/uv/getting-started/ uv] if you want to install a different python version but don&#039;t want to use conda. &lt;br /&gt;
# [[#Create_an_IPython_Kernel | Create an IPython kernel]] from the virtual environment&lt;br /&gt;
# Use the kernel within JupyterLab&lt;br /&gt;
#* By default new kernels are saved under &amp;lt;code&amp;gt;~/.local/share/jupyter&amp;lt;/code&amp;gt; and this location is automatically detected. Therefore, new kernels are directly available. &lt;br /&gt;
#*:[[File:BwVisu JuypterLab KernelPath.png|In the JupyterLab job configuration form, a custom kernel path can be provided.|right|thumb|x150px]]&lt;br /&gt;
#* If the kernel is saved somewhere else, the path can be provided in the &amp;quot;Kernel path&amp;quot; field when configuring the JupyterLab job (see image). For a kernel placed under &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter/kernels/my_kernel&amp;lt;/code&amp;gt; the needed &amp;quot;Kernel path&amp;quot; would be &amp;lt;code&amp;gt;path_to_parent_dir/share/jupyter&amp;lt;/code&amp;gt;. &lt;br /&gt;
# When the kernel is used the first time, the file &amp;lt;code&amp;gt;notebook_secrets&amp;lt;/code&amp;gt; is created automatically. It can be found under &amp;quot;Kernel path&amp;quot;. For others to use the kernel, they must have read access to this file. The command &amp;lt;code&amp;gt;chmod 750 notebook_secrets&amp;lt;/code&amp;gt; would for example allow the whole SDS@hd SV read access. For the access management in workspaces, please see [[Workspace#Setting_Permissions_for_Sharing_Files| Wokspace Permissions]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Notes regarding the sharing of IPython kernels&amp;lt;/u&amp;gt;&lt;br /&gt;
* The virtual environment and the kernel need to be placed in a shared directory. For example at SDS@hd.&lt;br /&gt;
* There could be a subdirectory for the virtual environments and one for the kernels. &lt;br /&gt;
* The path to the kernels is saved in the environment variable $JUPYTER_DATA_DIR. Jupyter relevant paths can be seen with &amp;lt;code&amp;gt;jupyter --paths&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via &#039;&#039;venv&#039;&#039; virtual environments ===&lt;br /&gt;
More information about venv or other python virtual environments can be found at the [[Development/Python | Python]] page. &lt;br /&gt;
&lt;br /&gt;
Steps for creating a &#039;&#039;&#039;venv&#039;&#039;&#039; virtual environment:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual evironment: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m venv &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;env_parent_dir&amp;lt;/code&amp;gt; is the path to the folder where the virtual environment shall be created. Relative paths can be used.&lt;br /&gt;
* Caution: If you you want to share the environment with others, make sure to already create it in the shared place. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;source &amp;lt;env_parent_dir&amp;gt;/&amp;lt;env_name&amp;gt;/bin/activate&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Update pip and install packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install -U pip&lt;br /&gt;
pip install &amp;lt;packagename&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add packages via Conda virtual environments ===&lt;br /&gt;
More information about using conda can be found at the [[Development/Conda | Conda]] page. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load the miniforge module by clicking first on the blue hexagon icon on the left-hand side of Jupyter&#039;s start page and then on the &amp;amp;quot;load&amp;amp;quot; button right of the entry for miniforge in the software module menu. &lt;br /&gt;
&amp;lt;li&amp;gt;Open a terminal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new virtual environment: &lt;br /&gt;
* If you are the only person using the environment, you can install it in your home directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --name &amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* If you want to install it into a different directory, for example a shared place:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda create --prefix &amp;lt;path_to_shared_directory&amp;gt;/&amp;lt;env_name&amp;gt; python=&amp;lt;python version&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate your environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda activate &amp;lt;myenv&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install your packages:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;conda install &amp;lt;mypackage&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[#Create_an_IPython_Kernel | Create an IPython kernel]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create an IPython Kernel ==&lt;br /&gt;
&lt;br /&gt;
Python kernels are implementations of the Jupyter notebook environment for different languages or virtual environments. You can switch between kernels easily, allowing you to use the best tool for a specific task.&lt;br /&gt;
conda_kernels&lt;br /&gt;
&lt;br /&gt;
=== Create a kernel from a virtual environment ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activate the virtual environment.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the ipykernel package:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;pip install ipykernel&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Register the virtual environment as custom kernel to Jupyter. &lt;br /&gt;
* If you are the only person using the environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --user --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can be found under &amp;lt;code&amp;gt;~/.local/share/jupyter/kernels/&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you installed the environment in a shared place and want to have the kernel there as well: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python3 -m ipykernel install --prefix &amp;lt;path_to_kernel_folder&amp;gt; --name=&amp;lt;kernel_name&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The kernel can then be found under &amp;lt;code&amp;gt;path_to_kernel_folder/share/jupyter/kernels/&amp;lt;kernel_name&amp;gt;&amp;lt;/code&amp;gt;. As long as the same &amp;lt;code&amp;gt;path_to_kernel_folder&amp;lt;/code&amp;gt; is used, all kernels will be saved next to each other in &amp;quot;kernels&amp;quot;. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Language Support ===&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports over 40 programming languages including Python, R, Julia, and Scala. This is achieved through the use of different kernels.&lt;br /&gt;
&lt;br /&gt;
==== R Kernel ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the cluster:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load math/R&lt;br /&gt;
$ R&lt;br /&gt;
&amp;amp;gt; install.packages(&#039;IRkernel&#039;)&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On bwVisu:&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Jupyter App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In left menu: load math/R&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Console:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ R&lt;br /&gt;
&amp;amp;gt; IRkernel::installspec(displayname = &#039;R 4.2&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Start kernel &#039;R 4.2&#039; as console or notebook&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Julia Kernel ====&lt;br /&gt;
&lt;br /&gt;
Load the math/julia module. Open the Terminal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
julia&lt;br /&gt;
]&lt;br /&gt;
add IJulia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, Julia is available as a kernel.&lt;br /&gt;
&lt;br /&gt;
== Interactive Widgets ==&lt;br /&gt;
&lt;br /&gt;
JupyterLab supports interactive widgets that can create UI controls for interactive data visualization and manipulation within the notebooks. Example of using an interactive widget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;{.python&amp;quot;&amp;gt;from ipywidgets import IntSlider&lt;br /&gt;
slider = IntSlider()&lt;br /&gt;
display(slider)&amp;lt;/pre&amp;gt;&lt;br /&gt;
These widgets can be sliders, dropdowns, buttons, etc., which can be connected to Python code running in the backend.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;My conda commands are interrupted with message &#039;Killed&#039;.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Request more memory when starting Jupyter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;How can I navigate to my SDS@hd folder in the file browser?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Open a terminal and set a symbolic link to your SDS@hd folder in your home directory. For example:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Jupyterlab doesn&#039;t let me in but asks for a password.&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Try using more memory for the job. If this doesn&#039;t help, try using the inkognito mode of your browser as the browser cache might be the problem.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;I prefer VSCode over JupyterLab. Can I start a JupyterLab job and then connect with it via VSCode?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
This is not possible. Please start the job directly on Helix instead. You can find the instructions at the [[Development/VS_Code#Connect_to_Remote_Jupyter_Kernel | VSCode page]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=15759</id>
		<title>Helix/bwVisu/Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/bwVisu/Usage&amp;diff=15759"/>
		<updated>2026-02-27T14:21:51Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added small title for sds section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basic Navigation ==&lt;br /&gt;
&lt;br /&gt;
bwVisu is quite simple and intuitively designed to make launching apps on the cluster as user-friendly as possible. Once you have successfully logged into bwVisu, the first thing you see is a list of pinned apps. These are the available apps that you can launch as a job on the cluster.&lt;br /&gt;
&lt;br /&gt;
In the navigation bar, the user has the following options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Files&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Interactive Apps&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;Shell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
Here, you can access your home directory on Helix. In a graphical user interface, files can be downloaded and uploaded, and new files and folders can be created. You will encounter an error message if you try to see data that you have no access to.&lt;br /&gt;
&lt;br /&gt;
In the Home Directory the results and logs from the apps are stored. You get the following interface:&lt;br /&gt;
&lt;br /&gt;
[[File:BwVisuFiles.png|bwVisu-files|center|x300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;For SDS@hd users:&amp;lt;/u&amp;gt;&#039;&#039;&#039; Data on SDS@hd (under /mnt/sds-hd) can only be accessed from within jobs. Therefore, you need to open a terminal (within a JupyterLab or Rstudio job or directly on Helix) and set a symbolic link to your SDS@hd folder in your home directory. For example like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $HOME&lt;br /&gt;
mkdir sds-hd&lt;br /&gt;
cd sds-hd&lt;br /&gt;
ln -s /mnt/sds-hd/sd16a001 sd16a001&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interactive Apps ===&lt;br /&gt;
&lt;br /&gt;
This displays the apps that the user can run on the cluster, possibly across multiple nodes. These apps initiate an interactive session which the user can directly connect to and, depending on the app, receive a graphical interface.&lt;br /&gt;
&lt;br /&gt;
=== My Interactive Sessions ===&lt;br /&gt;
&lt;br /&gt;
At bwVisu, it is possible to start several interactive apps simultaneously. Here, one can view an overview of currently running interactive apps and completed sessions. It is also possible to view the log for each session. As soon as one starts an interactive app, one is automatically redirected here. Even if you log out of bwVisu and log back in, you can still see the information and logs from the finished interactive apps here until you delete it.&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
For bwForCluster Helix users only: After entering your OTP and password a shell on the login node of bwForCluster Helix opens. This way, you can for example create workspaces when you need more space. Please look up the details under [[Helix/Filesystems#Workspaces | Helix Workspaces]]. They can&#039;t be seen in the File Viewer but are available within the bwVisu jobs.&lt;br /&gt;
&lt;br /&gt;
== Start a Job ==&lt;br /&gt;
[[File:bwVisuConcept.png|center|x170px]]&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt; At the start page of the web frontend, you can start a new job by clicking on an application version in the list of pinned apps.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You will now see the application description and options to adjust the job resources.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To find the best resource settings for your jobs, please have a look at the [https://helix-monitoring.bwservices.uni-heidelberg.de/ bwForCluster Helix monitoring portal] . There, you can see how much of the requested resources where actually used by your jobs.&lt;br /&gt;
&amp;lt;li&amp;gt; At the bottom of the page, beneath the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button, you can find a link for accessing the logs/session data of all your jobs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The interface can differ per app because each app can have individual configuration options. &amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:bwVisuRStudio.png|bwVisu-rstudio|center|x200px]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;code&amp;gt;Launch&amp;lt;/code&amp;gt; button to start a new job with this application. You can&#039;t start two jobs with the same application. Launching an app can take some time depending on the requested resources and cluster utilization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;Interactive Sessions&amp;lt;/code&amp;gt; page opens with the details of your job.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Host:&#039;&#039;&#039; Indicates on which nodes the application is running.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Time Remaining:&#039;&#039;&#039; Each application is given a time limit, which can also be set in advance. In this example, the application is supposed to run for one hour.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Session ID:&#039;&#039;&#039; This is a link that leads to the folder of the session. Among other things, application logs are displayed here, which can be viewed in the UI.&lt;br /&gt;
[[File:BwVisuRstudioRun.png|bwVisu-rstudio-run|center|x200px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Connect to the job with your browser by clicking &amp;lt;code&amp;gt;connect to &amp;amp;lt;application&amp;amp;gt;&amp;lt;/code&amp;gt;. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adjust noVNC Applications ==&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: middle; float: right;&amp;quot;&amp;gt; [[File:bwVisu Fiji noVNCMenu.png|thumb|none|x200px|noVNC menu within Fiji]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block; vertical-align: top; float: right;&amp;quot;&amp;gt; [[File:bwVisu_Fiji_Running.png|thumb|none|x200px|Job details view of a running Fiji Job]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
noVNC is an open-source VNC browser client. Some bwVisu applications use noVNC and therefore, come with additional options in the view of the job details and an additional menu within the running application.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Running Job View&#039;&#039;&#039; on the interactive sessions page&lt;br /&gt;
** Compression slider: Before opening the application, you can choose the compression level to use. 0 means no compression while 9 offers the best compression but uses more CPU resources on the cluster which can be slower. &lt;br /&gt;
** Image Quality slider: Before opening the application, you can choose the image quality level. With this you can control the desired JPEG quality.&lt;br /&gt;
** View Only (Share-able Link) button: By clicking this button the application opens in view only mode. You can share this link with collaborators or students while you launch your noVNC application normally for yourself. This way, others can follow what you are doing. For every job you need to generate a new link. &lt;br /&gt;
* &#039;&#039;&#039;noVNC menu&#039;&#039;&#039; within the running application&lt;br /&gt;
** When you open the application you can see an additional menu on the left with options. For the ones using the application in view-only mode it is helpful to select the option to show a dot instead of not showing the mouse cursor at all. Therefore go to &amp;quot;Options&amp;quot; and then &amp;quot;Expand&amp;quot;. &lt;br /&gt;
** For copying data, you need to use the clipboard. When copying something locally, you need to put it into the clipboard before you can use it within the application. The same goes the other way around.&lt;br /&gt;
* &#039;&#039;&#039;Adjust window size&#039;&#039;&#039; and position of the app by executing a right click at the edge of the app window frame, so that a menu shows up.&lt;br /&gt;
&lt;br /&gt;
== Terminate a Job ==&lt;br /&gt;
&lt;br /&gt;
The job will terminate when the job runtime requested in the job submission form has expired To terminate an application yourself, you can click the delete button or end the application in the interactive session. If the app is terminated in the interactive session, the window no longer shows &amp;lt;code&amp;gt;Running&amp;lt;/code&amp;gt; but &amp;lt;code&amp;gt;Completed&amp;lt;/code&amp;gt;. With the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; button, you end the session and also remove the list entry from &amp;lt;code&amp;gt;My Interactive Sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
In case of problems, it can help to look up the related bwForCluster Helix wiki pages. &lt;br /&gt;
For example: &lt;br /&gt;
* Error: Disk space exceeded &amp;amp;rarr; &#039;&#039;&#039;[https://wiki.bwhpc.de/e/Helix/Filesystems#Troubleshooting Filesystems: Troubleshooting]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Workspace&amp;diff=15758</id>
		<title>Workspace</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Workspace&amp;diff=15758"/>
		<updated>2026-02-27T12:13:55Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added &amp;quot;groups&amp;quot; command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Workspace tools&#039;&#039;&#039; provide temporary scratch space so called &#039;&#039;&#039;workspaces&#039;&#039;&#039; for your calculation on a central file storage. They are meant to keep data for a limited time – but usually longer than the time of a single job run. &lt;br /&gt;
&lt;br /&gt;
== No Backup ==&lt;br /&gt;
&lt;br /&gt;
Workspaces are not meant for permanent storage, hence data in workspaces is not backed up and may be lost in case of problems on the storage system. Please copy/move important results to $HOME or storage space outside the cluster.&lt;br /&gt;
&lt;br /&gt;
== Create workspace ==&lt;br /&gt;
To create a workspace you need to state &lt;br /&gt;
* &#039;&#039;name&#039;&#039; of your workspace and &lt;br /&gt;
* &#039;&#039;lifetime&#039;&#039; in days. &lt;br /&gt;
A maximum value for &#039;&#039;lifetime&#039;&#039; and a maximum number of renewals is defined on each cluster.  Execution of:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate mySpace 30&lt;br /&gt;
&lt;br /&gt;
e.g. returns:&lt;br /&gt;
 &lt;br /&gt;
   Workspace created. Duration is 720 hours. &lt;br /&gt;
   Further extensions available: 3&lt;br /&gt;
   /work/workspace/scratch/username-mySpace-0&lt;br /&gt;
&lt;br /&gt;
For more information read the program&#039;s help, i.e. &#039;&#039;$ ws_allocate -h&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== List all your workspaces ==&lt;br /&gt;
&lt;br /&gt;
To list all your workspaces, execute:&lt;br /&gt;
&lt;br /&gt;
   $ ws_list&lt;br /&gt;
&lt;br /&gt;
which will return:&lt;br /&gt;
* Workspace ID&lt;br /&gt;
* Workspace location&lt;br /&gt;
* available extensions&lt;br /&gt;
* creation date and remaining time&lt;br /&gt;
&lt;br /&gt;
To list expired workspaces, see [[Workspace#Restore_an_Expired_Workspace|Restore an Expired Workspace]].&lt;br /&gt;
&lt;br /&gt;
== Find workspace location ==&lt;br /&gt;
&lt;br /&gt;
Workspace location/path can be prompted for any workspace &#039;&#039;ID&#039;&#039; using &#039;&#039;&#039;ws_find&#039;&#039;&#039;, in case of workspace &#039;&#039;mySpace&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
   $ ws_find mySpace&lt;br /&gt;
&lt;br /&gt;
returns the one-liner:&lt;br /&gt;
&lt;br /&gt;
   /work/workspace/scratch/username-mySpace-0&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Extend lifetime of your workspace ==&lt;br /&gt;
&lt;br /&gt;
Any workspace&#039;s lifetime can be only extended a cluster-specific number of times. There several commands to extend workspace lifetime&lt;br /&gt;
#&amp;lt;pre&amp;gt;$ ws_extend mySpace 40&amp;lt;/pre&amp;gt; which extends workspace ID &#039;&#039;mySpace&#039;&#039; by &#039;&#039;40&#039;&#039; days from now,&lt;br /&gt;
#&amp;lt;pre&amp;gt;$ ws_extend mySpace&amp;lt;/pre&amp;gt; which extends workspace ID &#039;&#039;mySpace&#039;&#039; by the number days used previously&lt;br /&gt;
#&amp;lt;pre&amp;gt;$ ws_allocate -x mySpace 40&amp;lt;/pre&amp;gt; which extends workspace ID &#039;&#039;mySpace&#039;&#039; by &#039;&#039;40&#039;&#039; days from now.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Permissions for Sharing Files ==&lt;br /&gt;
The examples will assume you want to change the directory in $DIR. If you want to share a workspace, DIR could be set with &amp;lt;code&amp;gt;DIR=$(ws_find my_workspace)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Workspace Tools ===&lt;br /&gt;
&lt;br /&gt;
* ws_share&lt;br /&gt;
&amp;lt;code syntax=bash&amp;gt;ws_share share workspacename username&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
allows you to grant the user username read access to the workspace.&lt;br /&gt;
&lt;br /&gt;
Newer versions of the workspace tools have sharing options to ws_allocate:&lt;br /&gt;
&lt;br /&gt;
* -G option of ws_allocate&lt;br /&gt;
&amp;lt;code syntax=bash&amp;gt;ws_allocate -G groupname workspacename duration&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. for the group bw16e001 and for the workspace  for 30 days:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code syntax=bash&amp;gt;ws_allocate -G bw16e001 commonfiles 30&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
** groupname: name of the group you want to share with&lt;br /&gt;
** workspacename: what you want to call your workspace&lt;br /&gt;
** duration: how long the workspace is supposed to last in days&lt;br /&gt;
&lt;br /&gt;
Essentially this tool sets regular unix rwx permissions for the group plus the &amp;quot;suid&amp;quot; bit on the directory to make the permission inheritable.&lt;br /&gt;
&lt;br /&gt;
=== Regular Unix Permissions ===&lt;br /&gt;
&lt;br /&gt;
Making workspaces world readable/writable using standard unix access rights with &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt; is only feasible if you are in a research group and you and your co-workers share a common unix group  (for example &amp;quot;bw22a222&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Do &#039;&#039;&#039;not&#039;&#039;&#039; make files readable or even writable to everyone or to large common groups (&amp;quot;all students&amp;quot;). &lt;br /&gt;
You can see available groups with the command &amp;lt;code&amp;gt;groups&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:45%&amp;quot; | Command&lt;br /&gt;
!style=&amp;quot;width:55%&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;chgrp -R bw16e001 &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chmod -R g+rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Set group ownership and grant read access to group for files in workspace via unix rights to the group &amp;quot;bw16e001&amp;quot; (has to be re-done if files are added)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;chgrp -R bw16e001 &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt; &lt;br /&gt;
&amp;lt;tt&amp;gt;chmod -R g+rswX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Set group ownership and grant read/write access to group for files in workspace via unix rights (has to be re-done if files are added). Group will be inherited by new files, but rights for the group will have to be re-set with chmod for every new file&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options used:&lt;br /&gt;
* -R: recursive&lt;br /&gt;
* g+rwx&lt;br /&gt;
** g: group&lt;br /&gt;
** + add permissions (- to remove)&lt;br /&gt;
** rwx: read, write, execute&lt;br /&gt;
&lt;br /&gt;
=== ACLs: Access Control Lists ===&lt;br /&gt;
ACLs  allow a much more detailed distribution of permissions but are a bit more complicated and not visible in detail via &amp;quot;ls&amp;quot;. They have the additional advantage that you can set a &amp;quot;default&amp;quot; ACL for a directory, (with a &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt; flag or a &amp;lt;tt&amp;gt;d:&amp;lt;/tt&amp;gt; prefix) which will cause all newly created files to inherit the ACLs from the directory. Regular unix permissions only have limited support (only group ownership, not access rights) for this via the suid bit.&lt;br /&gt;
&lt;br /&gt;
Best practices with respect to ACL usage:&lt;br /&gt;
# Take into account that ACLs take precedence over standard unix access rights&lt;br /&gt;
# The owner of a workspace is responsible for its content and management&lt;br /&gt;
&lt;br /&gt;
Please note that &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt; (List directory contents) shows ACLs on directories and files only when run as &amp;lt;tt&amp;gt;ls -l&amp;lt;/tt&amp;gt; as in long format, as &amp;quot;plus&amp;quot; sign after the standard unix access rights. &lt;br /&gt;
&lt;br /&gt;
Examples with regard to &amp;quot;my_workspace&amp;quot;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:45%&amp;quot; | Command&lt;br /&gt;
!style=&amp;quot;width:55%&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;getfacl &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|List access rights on $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rm user:fr_xy1:rX,default:user:fr_xy1:rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant user &amp;quot;fr_xy1&amp;quot; read-only access to $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -R -m user:fr_me0000:rwX,default:user:fr_me0000:rwX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;setfacl -R -m user:fr_xy1:rwX,default:user:fr_xy1:rwX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant your own user &amp;quot;fr_me0000&amp;quot; and &amp;quot;fr_xy1&amp;quot; inheritable (&amp;quot;default&amp;quot;) read and write access to $DIR, so you can also read/write files put into the workspace by a coworker&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rm group:bw16e001:rX,default:group:bw16e001:rX &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Grant group (Rechenvorhaben) &amp;quot;bw16e001&amp;quot; read-only access to $DIR&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;setfacl -Rb &amp;quot;$DIR&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Remove all ACL rights. Standard Unix access rights apply again.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Options used:&lt;br /&gt;
* -R: recursive&lt;br /&gt;
* -m: modify&lt;br /&gt;
* user:username:rwX user: next name is a user; rwX read, write, eXecute (only where execute is set for user)&lt;br /&gt;
* default:[user|group] set the default for user or group for new files or dierctories&lt;br /&gt;
&lt;br /&gt;
== Delete a Workspace ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release mySpace # Manually erase your workspace mySpace&lt;br /&gt;
&lt;br /&gt;
Note: workspaces are kept for some time after release. To immediately delete and free space e.g. for quota reasons, delete the files with rm before release.&lt;br /&gt;
&lt;br /&gt;
Newer versions of workspace tools have a --delete-data flag that immediately deletes data. Note that deleted data from workspaces is permanently lost.&lt;br /&gt;
&lt;br /&gt;
== Restore an Expired Workspace ==&lt;br /&gt;
&lt;br /&gt;
For a certain (system-specific) grace time following workspace expiration, a workspace can be restored by performing the following steps:&lt;br /&gt;
&lt;br /&gt;
(1) Display restorable workspaces.&lt;br /&gt;
 ws_restore -l&lt;br /&gt;
&lt;br /&gt;
(2) Create a new workspace as the target for the restore:&lt;br /&gt;
 ws_allocate restored 60&lt;br /&gt;
&lt;br /&gt;
(3) Restore:&lt;br /&gt;
 ws_restore &amp;lt;full_name_of_expired_workspace&amp;gt; restored&lt;br /&gt;
&lt;br /&gt;
The expired workspace has to be specified using the &#039;&#039;&#039;full name&#039;&#039;&#039;, including username prefix and timestamp suffix (otherwise, it cannot be uniquely identified).&lt;br /&gt;
The target workspace, on the other hand, must be given with just its short name as listed by &amp;lt;code&amp;gt;ws_list&amp;lt;/code&amp;gt;, without the username prefix.&lt;br /&gt;
&lt;br /&gt;
If the workspace is no visible/restorable, it has been &#039;&#039;&#039;permanently deleted&#039;&#039;&#039; and cannot be restored, not even by us. Please always remember, that workspaces are intended solely for temporary work data, and there is no backup of data in the workspaces.&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Helix/Slurm&amp;diff=15757</id>
		<title>Helix/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Helix/Slurm&amp;diff=15757"/>
		<updated>2026-02-27T00:29:09Z</updated>

		<summary type="html">&lt;p&gt;H Schumacher: Added info about --begin paramer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General information about Slurm =&lt;br /&gt;
The bwForCluster Helix uses Slurm as batch system.&lt;br /&gt;
* Slurm documentation: https://slurm.schedmd.com/documentation.html&lt;br /&gt;
* Slurm cheat sheet: https://slurm.schedmd.com/pdfs/summary.pdf&lt;br /&gt;
* Slurm tutorials: https://slurm.schedmd.com/tutorials.html&lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Job Submission =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ sbatch &amp;lt;job-script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with #SBATCH as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu-single&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=00:20:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
#SBATCH --export=NONE&lt;br /&gt;
echo &#039;Hello world&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This jobs requests one core (--ntasks=1) and 1 GB memory (--mem=1gb) for 20 minutes (--time=00:20:00) on nodes provided by the partition &#039;cpu-single&#039;.&lt;br /&gt;
&lt;br /&gt;
For the sake of a better reproducibility of jobs it is recommended to use the option --export=NONE to prevent the propagation of environment variables from the submit session into the job environment and to load required software modules in the job script.&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster Helix it is necessary to request a partition with &amp;quot;--partition=&amp;lt;partition_name&amp;gt;&amp;quot; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The devel partition is the default partition, if no partition is requested. &lt;br /&gt;
&lt;br /&gt;
The partitions devel, cpu-single and gpu-single are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;quot;--exclusive&amp;quot; option. The partitions cpu-multi and gpu-multi are operated in exclusive mode. Jobs in these partitions automatically get exclusive access to the requested compute nodes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Node Access Policy&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| [https://wiki.bwhpc.de/e/Helix/Hardware#Compute_Nodes Node Types]&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Default&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| devel&lt;br /&gt;
| shared&lt;br /&gt;
| cpu, gpu4&lt;br /&gt;
| ntasks=1, time=00:10:00, mem-per-cpu=2gb&lt;br /&gt;
| nodes=2, time=00:30:00&lt;br /&gt;
|-&lt;br /&gt;
| cpu-single&lt;br /&gt;
| shared&lt;br /&gt;
| cpu, fat&lt;br /&gt;
| ntasks=1, time=00:30:00, mem-per-cpu=2gb&lt;br /&gt;
| nodes=1, time=120:00:00&lt;br /&gt;
|-&lt;br /&gt;
| gpu-single&lt;br /&gt;
| shared&lt;br /&gt;
| gpu4, gpu8&lt;br /&gt;
| ntasks=1, time=00:30:00, mem-per-cpu=2gb&lt;br /&gt;
| nodes=1, time=120:00:00&lt;br /&gt;
|- &lt;br /&gt;
| cpu-multi&lt;br /&gt;
| job exclusive&lt;br /&gt;
| cpu&lt;br /&gt;
| nodes=2, time=00:30:00&lt;br /&gt;
| nodes=32, time=48:00:00&lt;br /&gt;
|- &lt;br /&gt;
| gpu-multi&lt;br /&gt;
| job exclusive&lt;br /&gt;
| gpu4&lt;br /&gt;
| nodes=2, time=00:30:00&lt;br /&gt;
| nodes=8, time=48:00:00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPU requests ==&lt;br /&gt;
&lt;br /&gt;
For the partitions gpu-single and gpu-multi is it required to request GPU ressources.&lt;br /&gt;
* The number of GPUs is requested with the option &amp;quot;--gres=gpu:&amp;lt;number-of-gpus&amp;gt;&amp;quot;.   &lt;br /&gt;
* A specific GPU type can be requested with the option &amp;quot;--gres=gpu:&amp;lt;gpu-type&amp;gt;:&amp;lt;number-of-gpus&amp;gt;&amp;quot;. Possible values for &amp;lt;gpu-type&amp;gt; are listed in the line &#039;GPU Type&#039; of the [https://wiki.bwhpc.de/e/Helix/Hardware#Compute_Nodes Compute Nodes table].&lt;br /&gt;
* GPUs that are suitable for a specific GPU memory requirement can be requested with option &amp;quot;--gres=gpu:&amp;lt;number-of-gpus&amp;gt;,gpumem_per_gpu:&amp;lt;required-gpumem&amp;gt;GB&amp;quot;. This only restricts the selection of possible GPU types. For the job the total GPU memory per GPU is available as listed in the line &#039;GPU memory per GPU&#039; of the [https://wiki.bwhpc.de/e/Helix/Hardware#Compute_Nodes Compute Nodes table].&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
It is possible to refine the resource request for a job with the option &amp;quot;--constraint=&amp;lt;feature&amp;gt;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Feature&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Meaning&lt;br /&gt;
|-&lt;br /&gt;
| fp64&lt;br /&gt;
| request GPU types with FP64 capability (double precision)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu-single&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=4gb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;quot;--mem&amp;quot; up to 236gb can run on all node types associated with the cpu-single partition.&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu-single&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=16&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;quot;--ntasks-per-node&amp;quot; up to 64 and &amp;quot;--mem&amp;quot; up to 236gb can run on all node types associated with the cpu-single partition.&lt;br /&gt;
* With &amp;quot;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;quot; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu-multi&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=64&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load compiler/gnu&lt;br /&gt;
module load mpi/openmpi&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;quot;--mem&amp;quot; requests the memory per node. The maximum is 236gb.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* It is recommended to start MPI programs with &#039;srun&#039;.&lt;br /&gt;
&lt;br /&gt;
=== GPU Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=gpu-single &lt;br /&gt;
#SBATCH --nodes=1 &lt;br /&gt;
#SBATCH --ntasks=1 &lt;br /&gt;
#SBATCH --cpus-per-task=8&lt;br /&gt;
#SBATCH --gres=gpu:A40:1 &lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
#SBATCH --mem=16gb&lt;br /&gt;
&lt;br /&gt;
module load devel/cuda &lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
 ./my_cuda_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The number of GPUs per node is requested with the option &amp;quot;--gres=gpu:&amp;lt;number-of-gpus&amp;gt;&amp;quot;&lt;br /&gt;
* It is recommended to request a suitable GPU type for your application with the option &amp;quot;--gres=gpu:&amp;lt;gpu-type&amp;gt;:&amp;lt;number-of-gpus&amp;gt;&amp;quot;. For &amp;lt;gpu-type&amp;gt; put the &#039;GPU Type&#039; listed in the [https://wiki.bwhpc.de/e/Helix/Hardware#Compute_Nodes Compute Nodes table].&lt;br /&gt;
** Example for a request of two A40 GPUs: --gres=gpu:A40:2&lt;br /&gt;
** Example for a request of one A100 GPU: --gres=gpu:A100:1&lt;br /&gt;
* If you are unsure on which GPU type your code runs faster, please run a test case and compare the run times. In general the following applies:&lt;br /&gt;
** A40 GPUs are optimized for single precision computations.&lt;br /&gt;
** A100 and H200 GPUs offer better performance for double precision computations or if the code makes use of tensor cores.&lt;br /&gt;
* The CUDA module used for compilation must be loaded before the start of the program.&lt;br /&gt;
&lt;br /&gt;
=== More examples ===&lt;br /&gt;
&lt;br /&gt;
Further batch script examples are available on bwForCluster Helix in the directory: &amp;lt;code&amp;gt;/opt/bwhpc/common/system/slurm-examples&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun. The following example requests an interactive session on 1 core for 2 hours:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ salloc --partition=cpu-single --ntasks=1 --time=2:00:00 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ salloc --partition=cpu-single --ntasks=1 --time=2:00:00 --x11 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
For convenient access to specific GUI applications (JupyterLab, RStudio, ...) on the cluster, we provide a web-based platform: &#039;&#039;&#039;[[Helix/bwVisu | bwVisu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delay the start of a job&#039;&#039;&#039; by using [https://slurm.schedmd.com/sbatch.html#OPT_begin -b] (or [https://slurm.schedmd.com/sbatch.html#OPT_begin --begin]) option in order to defer the allocation of the job until the specified time. Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ salloc --begin=20:00 ...               # job can start after 8 p.m. &lt;br /&gt;
$ salloc --begin=now+1hour ...           # job can start 1 hour after submission&lt;br /&gt;
$ salloc --begin=teatime ...             # job can start at teatime (4 p.m.)&lt;br /&gt;
$ salloc --begin=2023-12-24T20:00:00 ... # job can start after specified date/time&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ squeue&lt;br /&gt;
# Additionally show the estimated start time:&lt;br /&gt;
$ squeue --start&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&#039;sstat -e&#039; command shows a list of fields that can be specified with the &#039;--format&#039; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &#039;top&#039; show you the most busy processes on the node. To exit &#039;top&#039; type &#039;q&#039;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &#039;nvidia-smi&#039;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
============================= JOB FEEDBACK =============================&lt;br /&gt;
Job ID: 12345678&lt;br /&gt;
Cluster: helix&lt;br /&gt;
User/Group: hd_ab123/hd_hd&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 64&lt;br /&gt;
CPU Utilized: 3-04:11:46&lt;br /&gt;
CPU Efficiency: 97.90% of 3-05:49:52 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:36:29&lt;br /&gt;
Memory Utilized: 432.74 GB (estimated maximum)&lt;br /&gt;
Memory Efficiency: 85.96% of 503.42 GB (251.71 GB/node)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when srun is used instead of mpirun.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
== Job Monitoring Portal ==&lt;br /&gt;
For more detailed information about your jobs visit the job monitoring portal: https://helix-monitoring.bwservices.uni-heidelberg.de&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Jobs are billed for allocated CPU cores, memory and GPUs.&lt;br /&gt;
&lt;br /&gt;
To see the accounting data of a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrive the job history for a specific user for a certain time frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2022-08-20 -E 2022-08-30 --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Overview about free resources =&lt;br /&gt;
&lt;br /&gt;
On the login nodes the following command shows what resources are available for immediate use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;$ sinfo_t_idle&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>H Schumacher</name></author>
	</entry>
</feed>