|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
| = Urika GX = | | = Urika GX = |
| | |
| | {{Warning|text=Urika GX system was shut down on 1. February 2021.}} |
|
| |
|
| Oficial Documentation: | | Oficial Documentation: |
Line 31: |
Line 33: |
| * 3 Service | | * 3 Service |
| * 41 Compute | | * 41 Compute |
|
| |
| == Workflow/Software ==
| |
|
| |
|
| |
| === SSH ===
| |
|
| |
| ssh access from "Mitarbeiter"-Network and Uni-VPN network:
| |
|
| |
| * <code>ssh enkidu-login1.hlrs.de</code>
| |
| * <code>ssh gilgamesch-login1.hlrs.de</code>
| |
|
| |
| You can download a VPN Client [https://vpn.rus.uni-stuttgart.de/ here].
| |
|
| |
| Recommended ssh config (<code>~/.ssh/config</code>):
| |
|
| |
| <pre>Host gilgamesch
| |
| Hostname gilgamesch-login1.hlrs.de
| |
| User hpcXXXXX
| |
| DynamicForward 8080
| |
| Host enkidu
| |
| Hostname enkidu-login1.hlrs.de
| |
| User hpcXXXXX
| |
| DynamicForward 8080</pre>
| |
| '''Change your password after first login:'''
| |
|
| |
| <source lang="bash">module load tools/ldap
| |
| passwd</source>
| |
| Create (if you don't have any) ssh-keys on your local PC: <code>ssh-keygen</code>
| |
|
| |
| Copy your public key to Urika (change your default password first!):
| |
|
| |
| <source lang="bash">ssh-copy-id gilgamesch
| |
| ssh-copy-id enkidu</source>
| |
| === Useful Modules ===
| |
|
| |
| * <code>module load tools/ldap</code> - makes custom <code>passwd</code> command available for changing own password
| |
| * <code>module load tools/mesos</code> - provides <code>minfo</code> and <code>mreserve</code> commands to work with Mesos.
| |
| * <code>module load tools/proxy</code> - configures proxy settings to use Internet (http, https, ftp). Don't forget to remove this module when you do not need any Internet access, as this is a potetntial security issue.
| |
| * <code>module load tools/forceproxy</code> - forwards all "external" traffic to go through the proxy. This is helpful for application without proxy support. Don't forget to remove this module when you do not need any Internet access, as this is a potential security issue.
| |
| * <code>module load python/3.6</code> - custom Python with Jupyter and HLRS Kernel.
| |
|
| |
| === Mesos tools ===
| |
|
| |
| Check resources usage:
| |
|
| |
| <source lang="bash">module load tools/mesos
| |
| minfo</source>
| |
| This will show you a list off all compute nodes and jobs running on them. You will get an error message if the system runs in Secure mode or being maintained.
| |
|
| |
| For debug purposes there is <code>mreserve</code> script, allowing you to exclusively reserve certain compute nodes.
| |
|
| |
| Following example reserves <code>nid00001</code> and <code>nid00002</code> (as soon as any of them is free) for 15 minutes with the job name <code>Maintenance</code>. You may need to use it with <code>tmux</code> or <code>screen</code>, because <code>mreserve</code> reserves nodes until timeout expires, reservation task dies or user preses Ctrl+C.
| |
|
| |
| <source lang="bash">module load tools/mesos
| |
| mreserve Maintenance 15 nid00001 nid00002</source>
| |
| === Using Web GUIs ===
| |
|
| |
| SSH-Config above has DynamicForward options (<code>-D</code> parameter if you do not use the config). This allows access to local Urika Services over socks-proxy.
| |
|
| |
| For that I recommend using Firefox and creating a new profile.
| |
|
| |
| * Open <code>about:profiles</code>, create and launch a new profile.
| |
| * In the new profile open <code>about:preferences</code> and search fo proxy
| |
| * Enter following settings (as shown below):
| |
| ** Manual proxy configuration
| |
| ** SOCKS Host: 127.0.0.1
| |
| ** SOCKS Port: 8080
| |
| ** SOCKS v5
| |
| ** No proxy for - leave the field empty
| |
| ** Proxy DNS
| |
|
| |
| Starting from Firefox v67, you have to do this as well:
| |
|
| |
| * Open <code>about:config</code>
| |
| * Find <code>network.proxy.allow_hijacking_localhost</code> and set it to <code>true</code> (Do NOT do this in your default Firefox profile! This may cause security issues when using proxies!)
| |
|
| |
| [[File:Firefox-proxy.png|frame|none|alt=|Firefox proxy settings]]
| |
|
| |
| ==== Jupyter Hub ====
| |
|
| |
| Urika GX is shipped with Jupyter and Jupyter Hub. Create an ssh connection with ssh_config previously and configure Firefox proxy settings, then open http://login1:7800/. After logging in a copy of Jupyter will be started for you.
| |
|
| |
| '''Important notice.''' Don't forget to terminate any Kernels after you finish, otherwise they may keep resources reserved, and you will be billed for these resources.
| |
|
| |
| ==== Custom Jupyter on login node ====
| |
|
| |
| <source lang="bash">cd
| |
| module load python/3.6
| |
| jupyter notebook --no-browser</source>
| |
| This will print you a link to open in Firefox (with proxy). Do not share this link with others and do not disable token/password authentication!
| |
|
| |
| Create a new notebook with <code>HLRS Python 3.6</code> kernel or change a Kernel of an existing notebook. This Kernel supports some extra magics and has Internet enabled for you to be able to install pip packages.
| |
|
| |
| '''Important notice.''' Don't forget to terminate any Kernels after you finish, otherwise they may keep resources reserved, and you will be billed for these resources.
| |
|
| |
| ==== Custom Jupyter on compute node ====
| |
|
| |
| Everything is almost like in the previous step. Start command:
| |
|
| |
| <source lang="bash">cd
| |
| module load tools/mesos
| |
| mnotebook</source>
| |
| This will print you a link to open in Firefox (with proxy). Do not share this link with others and do not disable token/password authentication!
| |
|
| |
| Create a new notebook with <code>HLRS Python 3.6</code> kernel or change a Kernel of an existing notebook. This Kernel supports some extra magics. There is no Internet acces on compute nodes.
| |
|
| |
| '''Important notice.''' Don't forget to terminate any Kernels after you finish, otherwise they may keep resources reserved, and you will be billed for these resources.
| |
|
| |
| ==== Special magics ====
| |
|
| |
| ==== %spark / %%spark ====
| |
|
| |
| <ul>
| |
| <li><p>'''<code>%spark</code>''' - will start a spark session with default values: <code>--name "Jupyter PySpark" --total-executor-cores 36 --executor-memory 1g</code></p></li>
| |
| <li><p>'''<code>%spark 180 450g MyTask</code>''' - will start a park session overwriting default values</p></li>
| |
| <li><p>'''<code>%spark 180 450g MyTask --driver-memory 100g --packages p1,p2</code>''' - will start a park session overwriting default values and adding extra arguments</p></li>
| |
| <li><p>Last magic in multi-line format:</p>
| |
| <pre>%%spark 180 450g MyTask
| |
| --driver-memory 100g
| |
| --packages p1,p2</pre></li></ul>
| |
|
| |
| ==== %spark_nohive / %%spark_nohive ====
| |
|
| |
| Work like <code>%spark</code> and <code>%%spark</code> magics but don't load Hive support. May be useful for debugging
| |
|
| |
| ==== %project ====
| |
|
| |
| * <code>%project project_name</code> - will create <code>~/.pyprojects/project_name</code> path for pip packages. environment variable and <code>sys.path</code> are updated for making it possible to install custom packages.
| |
|
| |
| After calling this magic <code>!pip install</code> and <code>!pip install --user</code> will both install packages into sub-folders of <code>~/.pyprojects/project_name</code>. User packages will have priority before system ones (usually this is not the case in Python). <code>!pip uninstall -y</code> first uninstalls a user package if any. It fails if trying to uninstall a system package.
| |
|
| |
| Known issues:
| |
|
| |
| * some packages may not be installed in this mode. You can still try installing them with <code>!pip install --user</code> without <code>%project</code> magic;
| |
| * package installation from Internet is available only on the <code>login1</code> node.
| |