<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bwhpc.de/wiki/index.php?action=history&amp;feed=atom&amp;title=BinAC2%2FSoftware%2FJupyterlab</id>
	<title>BinAC2/Software/Jupyterlab - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bwhpc.de/wiki/index.php?action=history&amp;feed=atom&amp;title=BinAC2%2FSoftware%2FJupyterlab"/>
	<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;action=history"/>
	<updated>2026-04-11T14:00:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=15227&amp;oldid=prev</id>
		<title>F Bartusch at 12:39, 20 August 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=15227&amp;oldid=prev"/>
		<updated>2025-08-20T12:39:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 20 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Don&#039;t change these settings&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Don&#039;t change these settings&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --nodes=1&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --nodes=1&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --partition=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;compute&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --partition=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interactive&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --job-name=minimal-notebook-7.4.1&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#SBATCH --job-name=minimal-notebook-7.4.1&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#PBS -j oe&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#PBS -j oe&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>F Bartusch</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=15216&amp;oldid=prev</id>
		<title>F Bartusch: Remove typo</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=15216&amp;oldid=prev"/>
		<updated>2025-08-19T12:24:03Z</updated>

		<summary type="html">&lt;p&gt;Remove typo&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:24, 19 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 148:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 148:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ cd ~&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ cd ~&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ ln -s /pfs/10/work/ $HOME/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;workv&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ ln -s /pfs/10/work/ $HOME/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;work&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ ln -s /pfs/10/project $HOME/project&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ ln -s /pfs/10/project $HOME/project&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>F Bartusch</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=14819&amp;oldid=prev</id>
		<title>F Bartusch at 15:11, 7 May 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=14819&amp;oldid=prev"/>
		<updated>2025-05-07T15:11:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:11, 7 May 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 81:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 81:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ jobid=$(sbatch --parsable binac2-minimal-notebook.slurm)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$ jobid=$(sbatch --parsable binac2-minimal-notebook.slurm)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{|style=&quot;background:#deffee; width:100%;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&quot;padding:5px; background:#cef2e0; text-align:left&quot;|&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Attention.svg|center|25px]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|style=&quot;padding:5px; background:#cef2e0; text-align:left&quot;|&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Depending on the current load on BinAC 2 and the resources you requested in your job script, it may take some time for the job to start.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Create SSH tunnel ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Create SSH tunnel ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>F Bartusch</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=14818&amp;oldid=prev</id>
		<title>F Bartusch: Created page with &quot;{{Softwarepage|devel/jupyterlab}}  {| width=700px class=&quot;wikitable&quot; |- ! Description   !! Content |- | module load | devel/jupyterlab |- | License | [https://github.com/jupyterlab/jupyterlab/blob/main/LICENSE JupyterLab License] |- | Links | [https://jupyter.org/ Homepage] |- | Graphical Interface |  Yes |}  = Description =   JupyterLab is a web-based interactive development environment for notebooks, code, and data.  Currently, BinAC 2 provides the following [https://ju...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BinAC2/Software/Jupyterlab&amp;diff=14818&amp;oldid=prev"/>
		<updated>2025-05-07T15:05:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Softwarepage|devel/jupyterlab}}  {| width=700px class=&amp;quot;wikitable&amp;quot; |- ! Description   !! Content |- | module load | devel/jupyterlab |- | License | [https://github.com/jupyterlab/jupyterlab/blob/main/LICENSE JupyterLab License] |- | Links | [https://jupyter.org/ Homepage] |- | Graphical Interface |  Yes |}  = Description =   JupyterLab is a web-based interactive development environment for notebooks, code, and data.  Currently, BinAC 2 provides the following [https://ju...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Softwarepage|devel/jupyterlab}}&lt;br /&gt;
&lt;br /&gt;
{| width=700px 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;
| devel/jupyterlab&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| [https://github.com/jupyterlab/jupyterlab/blob/main/LICENSE JupyterLab License]&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://jupyter.org/ Homepage]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
|  Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Description = &lt;br /&gt;
&lt;br /&gt;
JupyterLab is a web-based interactive development environment for notebooks, code, and data.&lt;br /&gt;
&lt;br /&gt;
Currently, BinAC 2 provides the following [https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html#jupyter-minimal-notebook JupyterLab Docker images] via Apptainer:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline&amp;gt;minimal-notebook&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline&amp;gt;r-notebook&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline&amp;gt;julia-notebook&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline&amp;gt;scipy-notebook&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
This guide is valid for &amp;lt;syntaxhighlight inline&amp;gt;minimal-notebook&amp;lt;/syntaxhighlight&amp;gt;. You can also follow it for the other notebook flavors &amp;amp;mdash; just replace &amp;lt;syntaxhighlight inline&amp;gt;minimal-notebook&amp;lt;/syntaxhighlight&amp;gt; with one of the other notebooks listed above.&lt;br /&gt;
&lt;br /&gt;
You will start a job on the cluster as usual, create an SSH tunnel, and connect to the running JupyterLab instance via your browser.&lt;br /&gt;
&lt;br /&gt;
== Start JupyterLab ==&lt;br /&gt;
&lt;br /&gt;
The module &amp;lt;syntaxhighlight inline&amp;gt;devel/jupyterlab&amp;lt;/syntaxhighlight&amp;gt; provides a job script for starting a JupyterLab instance on BinAC 2. Load the module and copy the template job script into your workspace:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ module load devel/jupyterlab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon loading the module, you can list the available template job scripts and copy the one you need into your workspace:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ ls $JUPYTERLAB_EXA_DIR &lt;br /&gt;
binac2-julia-notebook.slurm  binac2-minimal-notebook.slurm  binac2-r-notebook.slurm  binac2-scipy-notebook.slurm&lt;br /&gt;
&lt;br /&gt;
$ cp $JUPYTERLAB_EXA_DIR/binac2-minimal-notebook.slurm &amp;lt;your workspace&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The job script is very simple; you only need to adjust the hardware resources according to your needs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Adjust these values as needed&lt;br /&gt;
#SBATCH --cpus-per-task=1&lt;br /&gt;
#SBATCH --mem=2gb&lt;br /&gt;
#SBATCH --time=6:00:00&lt;br /&gt;
&lt;br /&gt;
# Don&amp;#039;t change these settings&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --partition=compute&lt;br /&gt;
#SBATCH --job-name=minimal-notebook-7.4.1&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
&lt;br /&gt;
# Load Jupyterlab module&lt;br /&gt;
module load devel/jupyterlab/7.4.1&lt;br /&gt;
&lt;br /&gt;
# Start jupyterlab&lt;br /&gt;
$ ${JUPYTERLAB_BIN_DIR}/minimal-notebook.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now submit the job to SLURM. This command will store the job ID in the variable &amp;lt;syntaxhighlight inline&amp;gt;jobid&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ jobid=$(sbatch --parsable binac2-minimal-notebook.slurm)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create SSH tunnel ==&lt;br /&gt;
&lt;br /&gt;
The compute node on which JupyterLab is running is not directly reachable from your local workstation. Therefore, you need to create an SSH tunnel from your workstation to the compute node via the BinAC 2 login node.&lt;br /&gt;
&lt;br /&gt;
The job&amp;#039;s standard output file (&amp;lt;syntaxhighlight inline&amp;gt;slurm-${jobid}.out&amp;lt;/syntaxhighlight&amp;gt;) contains all the information you need. Please note that details such as the IP address, port number, and access URL will differ in your case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cat slurm-${jobid}.out&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Binac2_jupyterlab_connection_details.png | 800px | center | JupyterLab connection info]]&lt;br /&gt;
&lt;br /&gt;
=== Linux Users ===&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;lt;syntaxhighlight inline&amp;gt;ssh -N -L ... &amp;lt;/syntaxhighlight&amp;gt; command and execute it in a shell on your workstation. After successful authentication, the SSH tunnel will be ready to use. The ssh command does not return any output. If there are no error messages, everything should be fine:&lt;br /&gt;
&lt;br /&gt;
[[File:Binac2_jupyterlab_ssh_tunnel_linux.png | 800px | center | SSH tunnel creation with Linux]]&lt;br /&gt;
&lt;br /&gt;
=== Windows Users ===&lt;br /&gt;
&lt;br /&gt;
If you are using Windows, you will need to create the SSH tunnel using an SSH client of your choice (e.g. MobaXTerm, PuTTY, etc.). Her, we will show how to create an SSH tunnel with MobaXTerm.&lt;br /&gt;
&lt;br /&gt;
Select &amp;lt;syntaxhighlight inline&amp;gt;Tunneling&amp;lt;/syntaxhighlight&amp;gt; in the top ribbon. Then click &amp;lt;syntaxhighlight inline&amp;gt;New SSH tunnel&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
Configure the SSH tunnel with the correct values taken from the SSH tunnel information provided above.&lt;br /&gt;
For the example in this tutorial it looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Binac2_jupyterlab_mobaxterm.png | 800px | center | SSH tunnel creation with MobaXTerm]]&lt;br /&gt;
&lt;br /&gt;
== Access JupyterLab ==&lt;br /&gt;
&lt;br /&gt;
JupyterLab is now running on a BinAC 2 compute node, and you have created an SSH tunnel from your workstation to that compute node. Open a browser and paste the URL with the access token into the address bar:&lt;br /&gt;
&lt;br /&gt;
[[File:Binac2_jupyterlab_browser_url.png | 800px | center | JupyterLab URL in browser ]]&lt;br /&gt;
&lt;br /&gt;
Your browser should now display the JupyterLab interface:&lt;br /&gt;
&lt;br /&gt;
[[File:Binac2_jupyterlab_browser_lab.png | 800px | center ]]&lt;br /&gt;
&lt;br /&gt;
== Shut Down JupyterLab ==&lt;br /&gt;
&lt;br /&gt;
You can shut down JupyterLab via &amp;lt;syntaxhighlight inline&amp;gt;File -&amp;gt; Shut Down&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
Please note that this will also terminate your compute job on BinAC 2!&lt;br /&gt;
&lt;br /&gt;
[[ File:Binac2_jupyterlab_browser_shutdown.png | 800px | center | JupyterLab user interface]]&lt;br /&gt;
&lt;br /&gt;
== Tips &amp;amp; Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Managing Notebooks ===&lt;br /&gt;
&lt;br /&gt;
JupyterLab&amp;#039;s root directory will be your home directory. Since your home directory is backed up daily, you may want to store your notebooks there.&lt;br /&gt;
It may also be a good idea to place your notebooks under proper version control using Git.&lt;br /&gt;
&lt;br /&gt;
=== Access &amp;lt;syntaxhighlight inline&amp;gt;work&amp;lt;/syntaxhighlight&amp;gt; and &amp;lt;syntaxhighlight inline&amp;gt;project&amp;lt;/syntaxhighlight&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The notebooks will always be able to access your data stored in &amp;lt;syntaxhighlight inline&amp;gt;work&amp;lt;/syntaxhighlight&amp;gt; and &amp;lt;syntaxhighlight inline&amp;gt;project&amp;lt;/syntaxhighlight&amp;gt;. However, the file browser shows the content in your home directory and you won’t be able to access &amp;lt;syntaxhighlight inline&amp;gt;work&amp;lt;/syntaxhighlight&amp;gt; and &amp;lt;syntaxhighlight inline&amp;gt;project&amp;lt;/syntaxhighlight&amp;gt; initially.&lt;br /&gt;
You can create symbolic links in your home directory to work and project, making these two partitions available in JupyterLab&amp;#039;s file browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ ln -s /pfs/10/work/ $HOME/workv&lt;br /&gt;
$ ln -s /pfs/10/project $HOME/project&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Through that link in your home directory you can navigate to your research data in Jupyterlab&amp;#039;s file browser.&lt;br /&gt;
Here is an example how I linked to my directory:&lt;br /&gt;
&lt;br /&gt;
[[ File:Binac2_jupyterlab_link.png | 800px | center | Access work and project storage in JupyterLab file browser ]]&lt;br /&gt;
&lt;br /&gt;
=== Managing Kernels ===&lt;br /&gt;
&lt;br /&gt;
Depending on the notebook you started, the available kernels will differ.&lt;br /&gt;
The Python notebook, for example, only has one Python kernel, whereas the R notebook has only one R kernel, and so on.&lt;br /&gt;
Given the nearly endless combinations of programming languages and packages they provide, we suggest creating your own kernels if needed.&lt;br /&gt;
The kernels are stored in your hone directory on BinAC 2: &amp;lt;syntaxhighlight inline&amp;gt;$HOME/.local/share/jupyter/kernels/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You cannot install new kernels directly from within JupyterLab; this must be done from the command line in your usual BinAC 2 shell session.&lt;br /&gt;
&lt;br /&gt;
=== Add a new Kernel ===&lt;br /&gt;
&lt;br /&gt;
We will show you how to create new kernels for Python and R.&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load devel/miniforge&lt;br /&gt;
conda create --name kernel_env python=3.13 pandas numpy matplotlib ipykernel            # 1&lt;br /&gt;
conda activate kernel_env                                                               # 2&lt;br /&gt;
python -m ipykernel install --user --name pandas --display-name=&amp;quot;Python 3.13 (pandas)&amp;quot;  # 3&lt;br /&gt;
# Installed kernelspec pandas in $HOME/.local/share/jupyter/kernels/pandas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first command creates a new Conda environment called &amp;lt;syntaxhighlight inline&amp;gt;kernel_env&amp;lt;/syntaxhighlight&amp;gt; and installs a specific Python packages , along with a few additional Python packages.&lt;br /&gt;
It&amp;#039;s important that you also install &amp;lt;syntaxhighlight inline&amp;gt;ipykernel&amp;lt;/syntaxhighlight&amp;gt;, as we will need it later to create the JupyterLab kernel.&lt;br /&gt;
The second command activates the &amp;lt;syntaxhighlight inline&amp;gt;kernel_env&amp;lt;/syntaxhighlight&amp;gt; Conda environment.&lt;br /&gt;
The third command creates the new JupyterLab kernel.&lt;br /&gt;
&lt;br /&gt;
[[ File:Binac2_jupyterlab_new_kernel.png | 800px | center | New Python kernel in JupyterLab]]&lt;br /&gt;
&lt;br /&gt;
==== R ====&lt;br /&gt;
&lt;br /&gt;
The instructions for creating new R kernels are slightly different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load devel/miniforge&lt;br /&gt;
conda create --name r_kernel_env r-base=4.4.3 jupyter r-irkernel&lt;br /&gt;
conda activate r_kernel_env &lt;br /&gt;
R&lt;br /&gt;
# In the R-Session&lt;br /&gt;
install.packages(...)&lt;br /&gt;
IRkernel::installspec(name = &amp;#039;ir44&amp;#039;, displayname = &amp;#039;R 4.4.3&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first command creates a new Conda environment called &amp;lt;syntaxhighlight inline&amp;gt;r_kernel_env&amp;lt;/syntaxhighlight&amp;gt; and installs a specific R version.&lt;br /&gt;
It&amp;#039;s important to also install &amp;lt;syntaxhighlight inline&amp;gt;r-irkernel&amp;lt;/syntaxhighlight&amp;gt;, as we will need it later to create the JupyterLab kernel.&lt;br /&gt;
The second command activates the &amp;lt;syntaxhighlight inline&amp;gt;r_kernel_env&amp;lt;/syntaxhighlight&amp;gt; Conda environment and open an R session.&lt;br /&gt;
In this session, you can install any R packages you need for your kernel.&lt;br /&gt;
Finally, create the new kernel with the &amp;lt;syntaxhighlight inline&amp;gt;installspec&amp;lt;/syntaxhighlight&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
=== Remove a Kernel ===&lt;br /&gt;
&lt;br /&gt;
To remove a kernel from JupyterLab, simply delete the corresponding directory at &amp;lt;syntaxhighlight inline&amp;gt;$HOME/.local/share/jupyter/kernels/&amp;lt;/syntaxhighlight&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Remove the JupyterLab kernel installed in the previous example&lt;br /&gt;
rm -rf $HOME/.local/share/jupyter/kernels/pandas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, remove the corresponding Conda environment if you do not need it any more:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
conda env remove --name kernel_env&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>F Bartusch</name></author>
	</entry>
</feed>