CINXE.COM
No.208, December 2021 — Technical Documentation
<!DOCTYPE html> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /> <meta property="article:modified_time" content="2024-03-26T20:38:25+01:00" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>No.208, December 2021 — Technical Documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/css/theme.css" /> <link rel="stylesheet" type="text/css" href="../_static/copybutton.css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <link rel="shortcut icon" href="../_static/favicon.ico"/> <!--[if lt IE 9]> <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/doctools.js"></script> <script src="../_static/sphinx_highlight.js"></script> <script src="../_static/clipboard.min.js"></script> <script src="../_static/copybutton.js"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="No.207, August 2021" href="207.html" /> <link rel="prev" title="No.209, April 2022" href="209.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" style="background: #EEEEEE" > <a href="https://www.mpcdf.mpg.de"> <img src="../_static/mpcdflogo.png" class="logo" alt="Logo"/> </a> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul> <li class="toctree-l1"><a class="reference internal" href="../faq/index.html">Frequently Asked Questions</a><ul> <li class="toctree-l2"><a class="reference internal" href="../faq/account.html">Account registration</a></li> <li class="toctree-l2"><a class="reference internal" href="../faq/connecting.html">Connecting</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/connecting.html#how-can-i-log-into-the-machines-at-the-mpcdf">How can I log into the machines at the MPCDF?</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#what-are-the-gateway-machines-for-ssh-login">What are the gateway machines for SSH login?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#two-factor-authentication-2fa">Two-factor authentication (2FA)</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#are-ssh-keys-supported">Are SSH keys supported?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#can-ssh-scp-sftp-performance-be-improved">Can ssh/scp/sftp performance be improved?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#i-get-a-ssh-security-warning-about-a-host-key-change-when-trying-to-log-in-what-does-this-mean-and-what-should-i-do">I get a SSH security warning about a host key change when trying to log in. What does this mean and what should I do?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/connecting.html#how-can-i-run-applications-with-graphical-user-interfaces-on-mpcdf-systems">How can I run applications with graphical user interfaces on MPCDF systems?</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#x11-forwarding">X11 forwarding</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#vnc">VNC</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/connecting.html#remote-visualization-service">Remote Visualization Service</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../faq/2fa.html">Two-factor authentication (2FA)</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#general-information-about-2fa">General information about 2FA</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#do-i-need-to-enable-2fa">Do I need to enable 2FA?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#do-i-already-have-2fa-activated">Do I already have 2FA activated?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#why-is-2fa-enforced">Why is 2FA enforced?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#what-is-a-token-otp-and-seed">What is a token, OTP, and seed?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#what-kinds-of-tokens-are-there">What kinds of tokens are there?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#why-am-i-asked-for-an-otp">Why am I asked for an OTP?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#activation-of-2fa">Activation of 2FA</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-do-i-enable-2fa">How do I enable 2FA?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-do-i-enroll-and-use-an-app-token">How do I enroll and use an app token?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#what-app-do-i-need-to-install">What app do I need to install?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-do-i-register-my-existing-token">How do I register my existing token?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-do-i-enroll-and-use-a-secondary-backup-token">How do I enroll and use a secondary/backup token?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#why-can-t-i-have-both-an-app-token-and-a-hardware-token">Why can’t I have both an app token and a hardware token?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#fa-tips-and-tricks">2FA Tips and Tricks</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#do-i-have-to-type-in-an-otp-every-time-i-access-the-secured-systems">Do I have to type in an OTP every time I access the secured systems?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#fa-troubleshooting">2FA Troubleshooting</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#i-need-to-factory-reset-my-phone-how-can-i-preserve-my-app-token">I need to factory-reset my phone. How can I preserve my app token?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-do-i-transfer-my-token-to-a-new-phone">How do I transfer my token to a new phone?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#i-can-t-validate-activate-the-token-i-just-scanned-wrong-otp">I can’t validate/activate the token I just scanned (“Wrong OTP”)</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#i-can-t-log-in-to-the-selfservice-anymore">I can’t log in to the SelfService anymore</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#i-can-t-log-in-to-a-gate-machine-via-ssh">I can’t log in to a gate machine via SSH</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#i-can-t-access-the-hpc-clusters-through-vnc-anymore">I can’t access the HPC clusters through VNC anymore</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#hardware-and-client-support">Hardware and client support</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-can-i-use-my-sshfs-rsync-scp-sftp-gui-with-2fa">How can I use my sshfs/rsync/scp/sftp GUI with 2FA?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-can-i-use-filezilla-with-2fa">How can I use FileZilla with 2FA?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#how-to-use-2fa-on-a-phone-with-a-time-shift">How to use 2FA on a phone with a time shift?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#do-you-or-are-you-planning-to-support-fido2-u2f-yubikeys">Do you or are you planning to support FIDO2/U2F/YubiKeys?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/2fa.html#on-security">On security</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#if-the-seed-is-stored-on-the-server-how-secure-is-it">If the seed is stored on the server, how secure is it?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/2fa.html#where-do-the-hardware-tokens-come-from-does-the-vendor-know-the-seeds">Where do the hardware tokens come from? Does the vendor know the seeds?</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../faq/hpc_software.html">HPC Software and Applications</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#general-questions">General questions</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-and-where-can-i-install-software-myself">How and where can I install software myself?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#environment-modules">Environment modules</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-use-environment-modules-interactively">How can I use environment modules interactively?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-use-environment-modules-in-scripts">How can I use environment modules in scripts?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-use-environment-modules-to-avoid-absolute-paths-in-my-scripts">How can I use environment modules to avoid absolute paths in my scripts?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#examples">Examples</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-do-the-hierarchical-environment-modules-work">How do the hierarchical environment modules work?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-do-i-quickly-find-a-module">How do I quickly find a module?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-disable-the-mpcdf-specific-note-for-module-avail">How can I disable the “MPCDF specific note” for <code class="docutils literal notranslate"><span class="pre">module</span> <span class="pre">avail</span></code>?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#why-there-are-no-blas-lapack-modules-available-on-the-clusters">Why there are no BLAS/LAPACK modules available on the clusters?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#compiled-languages">Compiled Languages</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#cmake">CMake</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#c-c-and-fortran">C/C++ and Fortran</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#debugging-of-c-c-and-fortran-codes">Debugging of C/C++ and Fortran codes</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#interpreted-languages">Interpreted Languages</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#python">Python</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#r">R</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#julia">Julia</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#jupyter-notebooks">Jupyter Notebooks</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#matlab">MATLAB</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#message-passing-interface-mpi-libraries-and-runtimes">Message Passing Interface (MPI) Libraries and Runtimes</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#which-mpi-implementations-are-supported">Which MPI implementations are supported?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-compile-and-link-my-mpi-application">How can I compile and link my MPI application?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#cmake-cannot-find-mpi-what-can-i-do">CMake cannot find MPI, what can I do?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#i-cannot-launch-my-mpi-code-using-mpirun-what-am-i-doing-wrong">I cannot launch my MPI code using <code class="docutils literal notranslate"><span class="pre">mpirun</span></code>, what am I doing wrong?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#visualization">Visualization</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-combine-many-image-files-jpg-png-into-a-movie-mp4">How can I combine many image files (JPG, PNG) into a movie (MP4)?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#how-can-i-install-additional-packages-for-tex-latex-locally">How can I install additional packages for TeX/LaTeX locally?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_software.html#gui-applications">GUI applications</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#visual-studio-code-in-combination-with-the-remote-ssh-extension-does-not-work-any-more-on-certain-hpc-clusters">Visual Studio Code (in combination with the Remote-SSH extension) does not work any more on certain HPC clusters</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_software.html#why-do-certain-gui-applications-not-work-any-more-on-the-login-nodes-of-hpc-clusters-what-are-the-alternatives">Why do certain GUI applications not work (any more) on the login nodes of HPC clusters? What are the alternatives?</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../faq/hpc_systems.html">HPC Systems and Services</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#raven">Raven</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#what-are-the-recommended-compiler-optimization-flags-for-raven">What are the recommended compiler optimization flags for Raven?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#slurm-batch-system">Slurm batch system</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-do-i-submit-jobs-to-the-slurm-batch-system">How do I submit jobs to the Slurm batch system?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#can-i-submit-jobs-longer-than-24-hours-why-are-job-run-times-limited-to-24-hours">Can I submit jobs longer than 24 hours? Why are job run times limited to 24 hours?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-do-i-launch-an-mpi-code">How do I launch an MPI code?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#what-is-the-correct-order-of-executable-commands-and-sbatch-directives-in-a-slurm-job-script">What is the correct order of executable commands and ‘#SBATCH’ directives in a Slurm job script?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#can-i-work-interactively-for-debugging-and-development-work">Can I work interactively for debugging and development work?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-query-the-estimated-start-time-of-my-job">How can I query the estimated start time of my job?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-get-information-about-my-job-at-runtime">How can I get information about my job at runtime?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-get-information-about-my-job-after-it-has-finished">How can I get information about my job after it has finished?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#what-happens-when-a-running-job-is-hit-by-a-hardware-failure">What happens when a running job is hit by a hardware failure?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-do-i-do-pinning-correctly">How do I do pinning correctly?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#parallel-file-systems-gpfs">Parallel File Systems (GPFS)</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#which-file-systems-are-available-and-how-should-i-use-them">Which file systems are available and how should I use them?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#i-do-not-get-the-io-performance-i-would-expect-am-i-doing-something-wrong">I do not get the IO performance I would expect. Am I doing something wrong?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-grant-other-users-access-to-my-files-how-do-i-use-acls">How can I grant other users access to my files? How do I use ACLs?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-transfer-files-to-and-from-the-hpc-systems">How can I transfer files to and from the HPC systems?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#performance-monitoring">Performance Monitoring</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-find-out-about-the-performance-of-my-runs">How can I find out about the performance of my runs?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-stop-the-background-performance-monitoring">How can I stop the background performance monitoring?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#gpu-computing">GPU Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-launch-the-nvidia-multi-process-service-mps">How can I launch the NVIDIA Multi-Process Service (MPS)?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-profile-my-gpu-code">How can I profile my GPU code?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#are-there-dedicated-gpu-resources-available-for-interactive-gpu-development">Are there dedicated GPU resources available for interactive GPU development?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#containers">Containers</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#which-container-solutions-are-supported-can-i-run-docker-containers">Which container solutions are supported? Can I run Docker containers?</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../faq/hpc_systems.html#remote-visualization">Remote Visualization</a><ul> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-run-visualization-tools-or-any-software-that-uses-opengl-on-mpcdf-systems">How can I run visualization tools or any software that uses OpenGL on MPCDF systems?</a></li> <li class="toctree-l4"><a class="reference internal" href="../faq/hpc_systems.html#how-can-i-get-access-to-mpcdf-remote-visualization-services">How can I get access to MPCDF remote visualization services?</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../faq/tricks.html">Hints, Tips, and Tricks</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/tricks.html#how-can-i-change-my-default-shell">How can I change my default shell?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/tricks.html#how-can-i-launch-ssh-agent-in-a-terminal-session">How can I launch <code class="docutils literal notranslate"><span class="pre">ssh-agent</span></code> in a terminal session?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/tricks.html#how-can-i-avoid-having-to-type-my-password-repeatedly-how-can-i-tunnel-through-the-gateway-machines">How can I avoid having to type my password repeatedly? How can I tunnel through the gateway machines?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/tricks.html#how-can-i-access-the-clusters-using-a-windows-machine">How can I access the clusters using a Windows machine?</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../faq/help.html">Help, Support, and Training</a><ul> <li class="toctree-l3"><a class="reference internal" href="../faq/help.html#how-can-i-get-help-and-support">How can I get Help and Support?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/help.html#are-you-offering-trainings-on-how-to-use-mpcdf-resources">Are you offering trainings on how to use MPCDF resources?</a></li> <li class="toctree-l3"><a class="reference internal" href="../faq/help.html#how-to-acknowledge-mpcdf">How to acknowledge MPCDF?</a></li> </ul> </li> </ul> </li> </ul> <ul> <li class="toctree-l1"><a class="reference internal" href="../doc/index.html">Documentation</a><ul> <li class="toctree-l2"><a class="reference internal" href="../doc/computing/index.html">Computing</a><ul> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/overview.html">Introduction</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/overview.html#overview">Overview</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/overview.html#compute-facilities">Compute Facilities</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/application-support.html">Application Support for HPC, AI and HPDA</a></li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/gateways.html">Gateway machines</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/gateways.html#login">Login</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/gateways.html#gssapi-based-logins-to-mpcdf-hosts">GSSAPI-based logins to MPCDF hosts</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/gateways.html#tunneled-access-to-mpcdf-services">Tunneled access to MPCDF services</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/viper-user-guide.html">Viper User Guide</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#system-overview">System overview</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#access">Access</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#hardware-configuration">Hardware configuration</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#file-systems">File systems</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#software">Software</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#slurm-batch-system">Slurm batch system</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#slurm-example-batch-scripts">Slurm example batch scripts</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/viper-user-guide.html#migration-guide-for-users-coming-from-intel-based-hpc-systems">Migration guide for users coming from Intel-based HPC systems</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/raven-user-guide.html">Raven User Guide</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#system-overview">System Overview</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#access">Access</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#hardware-configuration">Hardware configuration</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#file-systems">File systems</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#software">Software</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#slurm-batch-system">Slurm batch system</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/raven-user-guide.html#slurm-example-batch-scripts">Slurm example batch scripts</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/clusters/index.html">Dedicated clusters</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Astronomy.html">Astronomy</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Astrophysics.html">Astrophysics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Biochemistry.html">Biochemistry</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Biological_Cybernetics.html">Biological Cybernetics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Biological_Intelligence.html">Biological Intelligence</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Biophysics.html">Biophysics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Brain_Research.html">Brain Research</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Chemical_Physics_Solids.html">Chemical Physics of Solids</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Extraterrestrial_Physics.html">Extraterrestrial Physics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/FHI_MPIE_MPIP_TALOS.html">FHI / MPIE / MPIP</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Gravitational_Physics.html">Gravitational Physics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Gravitational_Physics_ACR.html">Gravitational Physics - ACR</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Gravitational_Physics_CRA.html">Gravitational Physics - CRA</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Iron_Research.html">Iron Research</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/MPSD_PKS_ADA.html">MPSD / PKS</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Neurobiology_of_Behavior.html">Neurobiology of Behavior – caesar</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Physics.html">Physics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Plasma_Physics.html">Plasma Physics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Psychiatry.html">Psychiatry</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Quantum_Optics.html">Quantum Optics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Radioastronomy.html">Radioastronomy</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/clusters/systems/Science_of_Light.html">Science of Light</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/software/index.html">Software</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/environment-modules.html">Environment Modules</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/hpc-application-packages.html">HPC Application Packages</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/compilers_languages.html">Compilers and languages</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/libraries.html">Libraries</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/debugging-tools.html">Debugging tools</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/performance-tools.html">Performance tools</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/mathematical-tools.html">Mathematical tools</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/bioinformatics.html">Bioinformatics</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/containers.html">Containers</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/data_analytics-machine_learning.html">Data Analytics / Machine Learning</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/software/vnc.html">VNC</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/hpc-get-started.html">Quickstart guide to HPC</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/hpc-get-started.html#software-environment-modules">Software environment (modules)</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/hpc-get-started.html#mpi-parallel-hpc-applications">MPI parallel HPC applications</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/hpc-get-started.html#multithreaded-openmp-or-hybrid-mpi-openmp-hpc-applications">Multithreaded (OpenMP) or hybrid (MPI/OpenMP) HPC applications</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/hpc-get-started.html#execution-of-parallel-programs-via-slurm">Execution of (parallel) programs via Slurm</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/performance-monitoring.html">Performance Monitoring</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#introduction">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#pdf-performance-reports-for-users">PDF Performance Reports for Users</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#suspending-the-performance-monitoring-system-for-specific-jobs">Suspending the Performance Monitoring System for Specific Jobs</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#technical-background">Technical Background</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#overhead">Overhead</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/performance-monitoring.html#further-information">Further information</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/computing/training.html">Training</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/training.html#courses-and-workshops-arranged-by-or-in-collaboration-with-the-mpcdf">Courses and workshops arranged by or in collaboration with the MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/computing/training.html#training-programmes-of-other-institutions">Training programmes of other institutions</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../doc/data/index.html">Data</a><ul> <li class="toctree-l3"><a class="reference internal" href="../doc/data/share/index.html">DataShare: Sync and Share Service</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/share/datashare.html">DataShare: An Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/share/domainchange.html">Update the domain of the client</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/share/faq.html">FAQ</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/share/sync-share-clients.html">Desktop and Mobile clients</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/globusonline/index.html">Globus Online: Large-Scale data Transfer and Sharing</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/globusonline/mpcdf-datahub-and-globus-online.html">MPCDF DataHub and Globus Online</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/globusonline/datahub-file-staging.html">Staging Files to HPC systems via Globus Online</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/globusonline/datahub-staging-flow.html">Staging data via Flows</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/globusonline/go-nexus.html">GO-Nexus</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/globusonline/globus-demo-videos.html">Globus Demo Videos - Demonstrating Globus Functionality for end users</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/object-storage/index.html">Nexus-S3: Object Storage for data Transfer and Sharing</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/object-storage/nexus-s3.html">Nexus-S3</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/object-storage/publishing-data-via-s3.html">Publishing Data for public access via S3</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/data-transfer/index.html">Small to Medium Scale Data Transfers</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/data-transfer/data-transfer.html">Data Transfer: Tools & Tips</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/data-transfer/mpcdf-datahub-and-globus-online.html">MPCDF DataHub and Globus Online</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/data-transfer/sharing-large-files-with-datashare.html">Sharing Large Files with DataShare</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/gitlab/index.html">GitLab: Software Development</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/gitlab/gitlab.html">The MPCDF GitLab Instance: an introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/gitlab/devop-tutorial.html">Poetry and GitLab: Devops for Python developers</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/gitlab/gitlabrunners.html">GitLab Runners for CI/CD</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/publication/index.html">Data Publication and Metadata Management</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/publication/datapublishing.html">Service: Data Repositories</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/publication/mmd.html">The MPCDF Metadata Tools: User Documentation</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/publication/mmd-dev.html">The MPCDF Metadata Tools: Developer Documentation</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/publication/metastore-documentation.html">MetaStore User Documentation</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/backup-archive/index.html">Backup and Archive</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/backup-archive-system.html">Backup & Archive Systems</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/archives.html">How to archive data</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/BA_HPC/index.html">Backup HPC</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/BA_Linux_clusters/index.html">Backup Linux Clusters</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/BA_AFS/index.html">Backup AFS</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/backup-archive/BA_desktops/index.html">Backup Desktops</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/data/store/index.html">Deprecated: The Andrew File System (AFS)</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/data/store/introduction-to-afs.html">Store (AFS)</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/store/introduction/index.html">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/store/specific-technical/index.html">Specific-Technical</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/store/glossary/index.html">Glossary</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/data/store/troubleshooting/index.html">Troubleshooting</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../doc/cloud/index.html">HPC-Cloud</a><ul> <li class="toctree-l3"><a class="reference internal" href="../doc/cloud/technical/index.html">Technical and User Documentation</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/quickstart.html">Quick Start</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/compute.html">Compute</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/storage.html">Storage</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/network.html">Network</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/clients.html">Command Line Interface and Scripting</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/technical/recipes.html">Recipes</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/cloud/renting/index.html">Rental Model</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#introduction">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#cost-components">Cost components</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#setup-procedure-and-billing-procedure">Setup procedure and billing procedure</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#available-resources">Available Resources</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#compute-resources">Compute resources</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/renting/index.html#storage-resources">Storage resources</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html">Terms of Use</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#general">General</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#backup-and-recovery">Backup and Recovery</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#data-privacy-and-sensitive-data">Data Privacy and Sensitive Data</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#proprietary-software">Proprietary Software</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#service-interventions-and-scheduled-down-times">Service Interventions and Scheduled Down times</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#performance">Performance</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#support">Support</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/cloud/terms_of_use/index.html#potential-sanctions">Potential Sanctions</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../doc/visualization/index.html">Visualization</a><ul> <li class="toctree-l3"><a class="reference internal" href="../doc/visualization/index.html#support-for-the-visualization-of-scientific-data">Support for the Visualization of Scientific Data</a></li> <li class="toctree-l3"><a class="reference internal" href="../doc/visualization/index.html#remote-visualization-and-jupyter-notebook-services">Remote Visualization and Jupyter Notebook Services</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/visualization/index.html#web-interface">Web Interface</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/visualization/index.html#command-line-interface">Command line interface</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/visualization/index.html#technical-details">Technical details</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/visualization/index.html#troubleshooting">Troubleshooting</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/visualization/index.html#robin">Robin</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../doc/campus/index.html">Campus</a><ul> <li class="toctree-l3"><a class="reference internal" href="../doc/campus/software/index.html">Software</a></li> <li class="toctree-l3"><a class="reference internal" href="../doc/campus/vpn/index.html">VPN</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/vpn/index.html#vpn-server-gateway">VPN Server (Gateway)</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/vpn/index.html#connection-profile-group">Connection Profile (Group)</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/vpn/index.html#desktop-and-notebook-windows-mac-os-x-linux">Desktop and Notebook (Windows, Mac OS X, Linux)</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/vpn/index.html#linux-clients">Linux Clients</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/vpn/index.html#mobile-devices-android-and-ios">Mobile Devices (Android and iOS)</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/campus/wifi/index.html">Wi-Fi</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/wifi/index.html#guest-networks">Guest networks</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/wifi/index.html#eduroam">Eduroam</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/wifi/index.html#installation-mpcdf-mpq-staff-only">Installation (<em>MPCDF/MPQ staff only</em>)</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../doc/campus/email/index.html">Email Configuration</a><ul> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/email/electronic-mail-at-mpcdf.html">Email Service</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/email/email_client_config/config.html">Email Client configuration</a></li> <li class="toctree-l4"><a class="reference internal" href="../doc/campus/email/mailing-lists.html">Mailing Lists</a></li> </ul> </li> </ul> </li> </ul> </li> </ul> <ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="index.html">Bits and Bytes</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="216.html">No.216, August 2024</a><ul> <li class="toctree-l3"><a class="reference internal" href="216.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#new-hpc-system-viper-phase-1-cpu">New HPC system <em>Viper</em> (Phase-1: CPU)</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="216.html#hpc-software-news">HPC Software News</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#mpcdf-gitlab-module-image-to-be-discontinued-on-october-31">MPCDF GitLab <code class="docutils literal notranslate"><span class="pre">module-image</span></code> to be discontinued on October 31</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#new-module-images-available-in-mpcdf-gitlab">New module images available in MPCDF GitLab</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#nvidia-hpc-sdk-version-24-3-available-on-raven">Nvidia HPC SDK version 24.3 available on <em>Raven</em></a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="216.html#major-change-in-the-python-infrastructure-on-the-hpc-clusters">Major Change in the Python Infrastructure on the HPC Clusters</a></li> <li class="toctree-l3"><a class="reference internal" href="216.html#introducing-containerized-applications-as-part-of-the-mpcdf-software-stack">Introducing containerized Applications as Part of the MPCDF Software Stack</a></li> <li class="toctree-l3"><a class="reference internal" href="216.html#nexus-s3-object-storage-in-the-hpc-cloud-and-beyond">Nexus-S3: Object Storage in the HPC-Cloud and beyond</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#example-use-case">Example use case</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#opt-in-via-selfservice">Opt-in via SelfService</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#object-storage-for-larger-projects">Object storage for larger projects</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="216.html#the-metastore-research-data-publication-platform">The MetaStore Research Data Publication Platform</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#managing-data-sets-and-resources-in-metastore">Managing data sets and resources in MetaStore</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#who-can-use-it">Who can use it</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="216.html#news">News</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#password-policy">Password policy</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#fa-for-datashare-and-gitlab">2FA for DataShare and GitLab</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="216.html#events">Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="216.html#amd-gpu-workshop-hackathon-november-5-7">AMD GPU workshop & hackathon (November 5-7)</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#introduction-to-mpcdf-services-october-24">Introduction to MPCDF services (October 24)</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#mpcdf-at-garching-campus-open-doors-october-3">MPCDF at Garching Campus Open Doors (October 3)</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#hpc-cloud-workshop-september-10-12">HPC-Cloud workshop (September 10-12)</a></li> <li class="toctree-l4"><a class="reference internal" href="216.html#course-on-python-for-hpc-november-26-28">Course on “Python for HPC” (November 26-28)</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="215.html">No.215, April 2024</a><ul> <li class="toctree-l3"><a class="reference internal" href="215.html#high-performance-computing">High-performance computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="215.html#licensed-software-in-slurm-comsol">Licensed software in Slurm (Comsol)</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="215.html#hpc-software-news">HPC Software News</a><ul> <li class="toctree-l4"><a class="reference internal" href="215.html#improved-workflow-for-multimer-predictions-with-alphafold2-on-raven">Improved workflow for multimer predictions with AlphaFold2 on <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#new-version-of-intel-oneapi-with-deprecation-of-ifort-compiler">New version of Intel oneAPI with deprecation of ifort compiler</a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#cuda-modules-on-raven">CUDA modules on <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#new-amd-gpu-elpa-release">New AMD-GPU ELPA release</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="215.html#kubernetes-in-the-hpc-cloud">Kubernetes in the HPC-Cloud</a><ul> <li class="toctree-l4"><a class="reference internal" href="215.html#usage">Usage</a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#function">Function</a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#existing-applications">Existing applications</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="215.html#gitlab-graphs-diagrams">GitLab: Graphs & Diagrams</a><ul> <li class="toctree-l4"><a class="reference internal" href="215.html#alternatives">Alternatives</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="215.html#llms-meet-mpcdf">LLMs meet MPCDF</a></li> <li class="toctree-l3"><a class="reference internal" href="215.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="215.html#introduction-to-mpcdf-services">Introduction to MPCDF services</a></li> <li class="toctree-l4"><a class="reference internal" href="215.html#meet-mpcdf">Meet MPCDF</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="214.html">No.214, December 2023</a><ul> <li class="toctree-l3"><a class="reference internal" href="214.html#hpc-software-news">HPC Software News</a><ul> <li class="toctree-l4"><a class="reference internal" href="214.html#cuda-aware-openmpi-on-raven">CUDA-aware OpenMPI on <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#gpu-accelerated-vasp">GPU-accelerated VASP</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#intel-oneapi-transition-from-ifort-to-ifx">Intel oneAPI: transition from ifort to ifx</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="214.html#module-software-stacks-for-continuous-integration-pipelines-on-mpcdf-gitlab-shared-cloud-runners">Module Software Stacks for Continuous Integration Pipelines on MPCDF GitLab Shared Cloud Runners</a><ul> <li class="toctree-l4"><a class="reference internal" href="214.html#introducing-a-novel-module-enabled-docker-image-infrastructure">Introducing a novel module-enabled Docker image infrastructure</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#announcing-legacy-status-and-later-discontinuation-of-the-module-image">Announcing legacy status and later discontinuation of the <code class="docutils literal notranslate"><span class="pre">module-image</span></code></a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="214.html#compressed-portable-conda-environments-for-hpc-systems">Compressed Portable Conda Environments for HPC Systems</a><ul> <li class="toctree-l4"><a class="reference internal" href="214.html#introduction-and-motivation">Introduction and Motivation</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#move-conda-environments-into-compressed-image-files">Move Conda environments into compressed image files</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#basic-usage-examples">Basic usage examples</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#limitations">Limitations</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#availability">Availability</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="214.html#new-features-in-the-hpc-cloud">New Features in the HPC-Cloud</a><ul> <li class="toctree-l4"><a class="reference internal" href="214.html#expanded-menu-of-flavors-and-images">Expanded menu of flavors and images</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#ssd-based-block-volumes">SSD-based block volumes</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#automated-domain-name-service">Automated domain name service</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#shared-filesystem-service">Shared filesystem service</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#the-robin-cluster">The Robin cluster</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="214.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="214.html#amd-gpu-development-workshop">AMD-GPU development workshop</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="214.html#rda-deutschland-tagung-2024">RDA Deutschland Tagung 2024</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="213.html">No.213, August 2023</a><ul> <li class="toctree-l3"><a class="reference internal" href="213.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="213.html#new-gpu-development-partition-on-raven">New GPU development partition on <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#memory-profiling-with-heaptrack">Memory profiling with heaptrack</a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#new-compilers-and-libraries-intel-oneapi-2023-1">New compilers and libraries: Intel oneAPI 2023.1</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="213.html#using-linters-to-improve-and-maintain-code-quality">Using linters to improve and maintain code quality</a></li> <li class="toctree-l3"><a class="reference internal" href="213.html#hpc-cloud-object-storage">HPC-Cloud Object Storage</a></li> <li class="toctree-l3"><a class="reference internal" href="213.html#jade-automated-slurm-deployments-in-the-hpc-cloud">JADE - Automated Slurm deployments in the HPC-Cloud</a></li> <li class="toctree-l3"><a class="reference internal" href="213.html#gitlab-tips-tricks">GitLab: Tips & Tricks</a><ul> <li class="toctree-l4"><a class="reference internal" href="213.html#online-editing-of-source-code-revisited">Online editing of source code revisited</a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#custom-badges">Custom badges</a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#security-warning">Security warning</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="213.html#new-ibm-tape-library-and-tape-drives-installed-at-mpcdf">New IBM tape library and tape drives installed at MPCDF</a></li> <li class="toctree-l3"><a class="reference internal" href="213.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="213.html#open-positions-at-mpcdf">Open positions at MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="213.html#amd-gpu-development-workshop">AMD-GPU development workshop</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="212.html">No.212, April 2023</a><ul> <li class="toctree-l3"><a class="reference internal" href="212.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="212.html#new-supercomputer-of-the-mpg-cobra-successor">New Supercomputer of the MPG - <em>Cobra</em> successor</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#documentation-of-hpc-hardware-characteristics">Documentation of HPC hardware characteristics</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#cmake-recipes-repository">CMake Recipes Repository</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="212.html#mpcdf-hpc-cloud">MPCDF HPC Cloud</a><ul> <li class="toctree-l4"><a class="reference internal" href="212.html#introduction">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#hardware-resources">Hardware Resources</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#project-support">Project Support</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#summary">Summary</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="212.html#news">News</a><ul> <li class="toctree-l4"><a class="reference internal" href="212.html#mpcdf-selfservice">MPCDF SelfService</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#pushing-fusion-plasma-simulations-towards-exascale">Pushing Fusion-Plasma Simulations Towards Exascale</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#base4nfdi-creating-nfdi-wide-basic-services-in-a-world-of-specific-domains">Base4NFDI: Creating NFDI-wide basic services in a world of specific domains</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="212.html#events">Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="212.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#introduction-to-mpcdf-services">Introduction to MPCDF services</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#ai-training-course">AI Training Course</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#course-on-python-for-hpc">Course on “Python for HPC”</a></li> <li class="toctree-l4"><a class="reference internal" href="212.html#rda-deutschland-conference">RDA-Deutschland Conference</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="211.html">No.211, December 2022</a><ul> <li class="toctree-l3"><a class="reference internal" href="211.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="211.html#anaconda-python-modules">Anaconda Python modules</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#hints-for-architecture-specific-and-optimized-cuda-compilation">Hints for architecture-specific and optimized CUDA compilation</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#new-intel-c-c-compilers-and-associated-mpcdf-software-stack">New Intel C/C++ compilers and associated MPCDF software stack</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#turbomole-license-for-mpg-renewed">Turbomole license for MPG renewed</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#apptainer-on-hpc-clusters-the-linux-foundation-successor-to-singularity">Apptainer on HPC clusters, the Linux Foundation successor to Singularity</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="211.html#gitlab-tips-tricks-use-of-docker-images-in-gitlab-ci">GitLab Tips & Tricks: Use of Docker Images in GitLab CI</a></li> <li class="toctree-l3"><a class="reference internal" href="211.html#go-nexus">GO-Nexus</a></li> <li class="toctree-l3"><a class="reference internal" href="211.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="211.html#discontinuation-of-general-vpn">Discontinuation of General VPN</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#python-for-hpc">Python for HPC</a></li> <li class="toctree-l4"><a class="reference internal" href="211.html#advanced-hpc-workshop">Advanced HPC Workshop</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="210.html">No.210, August 2022</a><ul> <li class="toctree-l3"><a class="reference internal" href="210.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="210.html#cobra-successor-procurement">Cobra successor procurement</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#co-sub-2-sub-footprint-of-mpcdf">CO<sub>2</sub> footprint of MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#software-news">Software news</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="210.html#gitlab-ci-distributed-cache">GitLab CI Distributed Cache</a><ul> <li class="toctree-l4"><a class="reference internal" href="210.html#introduction">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#adding-a-cache-to-your-ci-configuration">Adding a cache to your CI configuration</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#ci-of-software-that-depends-on-third-party-packages">CI of software that depends on third-party packages</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#ci-of-a-complex-hpc-code-that-requires-cpu-and-partly-gpu-resources">CI of a complex HPC code that requires CPU and partly GPU resources</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#concluding-remarks">Concluding remarks</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="210.html#globus-flows">Globus Flows</a><ul> <li class="toctree-l4"><a class="reference internal" href="210.html#id1">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#flows-in-detail">Flows in detail</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#example">Example</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#summary">Summary</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="210.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="210.html#introduction-to-mpcdf-services">Introduction to MPCDF services</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#meet-mpcdf">Meet MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#advanced-hpc-workshop">Advanced HPC workshop</a></li> <li class="toctree-l4"><a class="reference internal" href="210.html#python-for-hpc">Python for HPC</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="209.html">No.209, April 2022</a><ul> <li class="toctree-l3"><a class="reference internal" href="209.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="209.html#alphafold2-on-the-hpc-system-raven">AlphaFold2 on the HPC system <em>Raven</em></a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="209.html#gitlab-ci">GitLab CI</a><ul> <li class="toctree-l4"><a class="reference internal" href="209.html#gitlab-shared-runners-on-gpus">GitLab shared runners on GPUs</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#continuous-integration-testing-for-hpc-codes-on-mpcdf-gitlab">Continuous integration testing for HPC codes on MPCDF GitLab</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="209.html#globus-online">Globus Online</a><ul> <li class="toctree-l4"><a class="reference internal" href="209.html#datahub-access-via-the-globus-online-portal">DataHub access via the Globus Online Portal</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#enhanced-functionality">Enhanced functionality</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#more-information">More information</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="209.html#new-selfservice-features-and-improvements">New SelfService Features and Improvements</a><ul> <li class="toctree-l4"><a class="reference internal" href="209.html#redesign-of-the-login-process">Redesign of the login process</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#viewing-accounting-data">Viewing accounting data</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#additional-improvements">Additional improvements</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="209.html#access-to-afs-restricted-for-local-access-only">Access to AFS restricted for local Access only</a></li> <li class="toctree-l3"><a class="reference internal" href="209.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="209.html#ai-bootcamp">AI bootcamp</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#international-hpc-summer-school-2022">International HPC Summer School 2022</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#workshop-introduction-to-mpcdf-services-online">Workshop “Introduction to MPCDF services (online)”</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#meet-mpcdf-new-online-forum-and-lectures-for-mpcdf-users">“Meet MPCDF”: New online forum and lectures for MPCDF users</a></li> <li class="toctree-l4"><a class="reference internal" href="209.html#rda-deutschland-tagung-2022">RDA-Deutschland-Tagung 2022</a></li> </ul> </li> </ul> </li> <li class="toctree-l2 current"><a class="current reference internal" href="#">No.208, December 2021</a><ul> <li class="toctree-l3"><a class="reference internal" href="#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="#termination-of-general-user-operation-for-draco-login-nodes">Termination of general user operation for <em>Draco</em> login nodes</a></li> <li class="toctree-l4"><a class="reference internal" href="#announcement-of-cuda-no-defaults-on-cobra-and-raven">Announcement of CUDA no-defaults on <em>Cobra</em> and <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="#usage-of-tmp-and-dev-shm-on-cobra-and-raven">Usage of /tmp and /dev/shm on <em>Cobra</em> and <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="#eigensolver-library-elpa">Eigensolver library ELPA</a></li> <li class="toctree-l4"><a class="reference internal" href="#using-python-based-hybrid-parallel-codes-on-hpc-systems">Using Python-based hybrid-parallel codes on HPC systems</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#python-bindings-for-c-using-pybind11-and-scikit-build">Python bindings for C++ using pybind11 and scikit-build</a><ul> <li class="toctree-l4"><a class="reference internal" href="#interfacing-python-numpy-with-c-using-pybind11">Interfacing Python/NumPy with C++ using pybind11</a></li> <li class="toctree-l4"><a class="reference internal" href="#build-with-scikit-build">Build with scikit-build</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#the-gitlab-package-registry">The Gitlab Package Registry</a><ul> <li class="toctree-l4"><a class="reference internal" href="#example-publishing-python-packages">Example: Publishing Python packages</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#using-application-tokens-instead-of-passwords">Using Application Tokens instead of Passwords</a><ul> <li class="toctree-l4"><a class="reference internal" href="#datashare">DataShare</a></li> <li class="toctree-l4"><a class="reference internal" href="#gitlab">GitLab</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#software-publishing">Software Publishing</a><ul> <li class="toctree-l4"><a class="reference internal" href="#do-it-yourself">Do it yourself</a></li> <li class="toctree-l4"><a class="reference internal" href="#publish-via-a-data-archiving-site">Publish via a data archiving site</a></li> <li class="toctree-l4"><a class="reference internal" href="#software-heritage">Software Heritage</a></li> <li class="toctree-l4"><a class="reference internal" href="#final-remarks">Final remarks</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="#international-hpc-summer-school-2022">International HPC Summer School 2022</a></li> <li class="toctree-l4"><a class="reference internal" href="#advanced-hpc-workshop-2021">Advanced HPC workshop 2021</a></li> <li class="toctree-l4"><a class="reference internal" href="#years-max-planck-computing-centre-in-garching">60 Years Max Planck Computing Centre in Garching</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="207.html">No.207, August 2021</a><ul> <li class="toctree-l3"><a class="reference internal" href="207.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="207.html#hpc-system-raven-fully-operational">HPC system <em>Raven</em> fully operational</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#gpu-computing-on-raven">GPU Computing on <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#hpc-system-cobra-module-system-to-be-aligned-with-raven">HPC system <em>Cobra</em> - Module system to be aligned with <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#decommissioning-of-draco">Decommissioning of <em>Draco</em></a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="207.html#hpc-cloud">HPC Cloud</a></li> <li class="toctree-l3"><a class="reference internal" href="207.html#poetry-packaging-and-dependency-management-for-python">Poetry: Packaging and Dependency Management for Python</a><ul> <li class="toctree-l4"><a class="reference internal" href="207.html#introduction">Introduction</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#a-poetry-project-and-initial-configuration">A Poetry project and initial configuration</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#dependency-management">Dependency Management</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#running-your-code">Running your code</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#package-creation-and-publishing">Package creation and publishing</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#conclusion">Conclusion</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="207.html#more-functionality-for-the-selfservice-call-to-action-for-2fa-users">More functionality for the SelfService - Call to action for 2FA users</a><ul> <li class="toctree-l4"><a class="reference internal" href="207.html#migration-of-mympcdf-functionality">Migration of MyMPCDF functionality</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#updated-password-policy">Updated password policy</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#two-factor-authentication-2fa-call-to-action">Two-Factor Authentication (2FA) - Call to action</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="207.html#news-events">News & Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="207.html#brochure-high-performance-computing-and-data-science-in-the-mpg">Brochure “High-Performance Computing and Data Science in the MPG”</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#gpu-bootcamp">GPU bootcamp</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#introductory-course-for-new-users-of-mpcdf">Introductory course for new users of MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#advanced-hpc-workshop">Advanced HPC workshop</a></li> <li class="toctree-l4"><a class="reference internal" href="207.html#python-for-hpc">Python for HPC</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="206.html">No.206, April 2021</a><ul> <li class="toctree-l3"><a class="reference internal" href="206.html#high-performance-computing">High-performance Computing</a><ul> <li class="toctree-l4"><a class="reference internal" href="206.html#hpc-system-raven-deployment-of-the-final-system">HPC System <em>Raven</em>: deployment of the final system</a></li> <li class="toctree-l4"><a class="reference internal" href="206.html#charliecloud-and-singularity-containers-supported-on-cobra-and-raven">Charliecloud and Singularity containers supported on <em>Cobra</em> and <em>Raven</em></a></li> <li class="toctree-l4"><a class="reference internal" href="206.html#control-and-verification-of-the-cpu-affinity-of-processes-and-threads">Control and verification of the CPU affinity of processes and threads</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="206.html#high-performance-data-analytics-and-ai-software-stack-at-mpcdf">High-performance data analytics and AI software stack at MPCDF</a></li> <li class="toctree-l3"><a class="reference internal" href="206.html#decommissioning-of-afs">Decommissioning of AFS</a></li> <li class="toctree-l3"><a class="reference internal" href="206.html#relaunch-of-mpcdf-website-and-new-technical-documentation-platform">Relaunch of MPCDF website and new technical documentation platform</a></li> <li class="toctree-l3"><a class="reference internal" href="206.html#events">Events</a><ul> <li class="toctree-l4"><a class="reference internal" href="206.html#new-online-introductory-course-for-new-users-of-mpcdf">New online introductory course for new users of MPCDF</a></li> <li class="toctree-l4"><a class="reference internal" href="206.html#advanced-hpc-workshop-save-the-date">Advanced HPC workshop: save the date</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="previous.html">Previous Editions</a></li> </ul> </li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #EEEEEE" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../index.html">Technical Documentation</a> </nav> <div class="wy-nav-content"> <div class="rst-content style-external-links"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> <li class="breadcrumb-item"><a href="index.html">Bits and Bytes</a></li> <li class="breadcrumb-item active">No.208, December 2021</li> <li class="wy-breadcrumbs-aside"> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <img src="_static/bblogo.jpg" alt="Bits and Bytes Logo" width="25%" height="25%" style="float:right"><div class="section" id="no-208-december-2021"> <h1>No.208, December 2021<a class="headerlink" href="#no-208-december-2021" title="Permalink to this heading"></a></h1> <div class="contents local topic" id="contents"> <p class="topic-title">Contents</p> <ul class="simple"> <li><p><a class="reference internal" href="#high-performance-computing" id="id1">High-performance Computing</a></p> <ul> <li><p><a class="reference internal" href="#termination-of-general-user-operation-for-draco-login-nodes" id="id2">Termination of general user operation for <em>Draco</em> login nodes</a></p></li> <li><p><a class="reference internal" href="#announcement-of-cuda-no-defaults-on-cobra-and-raven" id="id3">Announcement of CUDA no-defaults on <em>Cobra</em> and <em>Raven</em></a></p></li> <li><p><a class="reference internal" href="#usage-of-tmp-and-dev-shm-on-cobra-and-raven" id="id4">Usage of /tmp and /dev/shm on <em>Cobra</em> and <em>Raven</em></a></p></li> <li><p><a class="reference internal" href="#eigensolver-library-elpa" id="id5">Eigensolver library ELPA</a></p></li> <li><p><a class="reference internal" href="#using-python-based-hybrid-parallel-codes-on-hpc-systems" id="id6">Using Python-based hybrid-parallel codes on HPC systems</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#python-bindings-for-c-using-pybind11-and-scikit-build" id="id7">Python bindings for C++ using pybind11 and scikit-build</a></p> <ul> <li><p><a class="reference internal" href="#interfacing-python-numpy-with-c-using-pybind11" id="id8">Interfacing Python/NumPy with C++ using pybind11</a></p></li> <li><p><a class="reference internal" href="#build-with-scikit-build" id="id9">Build with scikit-build</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#the-gitlab-package-registry" id="id10">The Gitlab Package Registry</a></p> <ul> <li><p><a class="reference internal" href="#example-publishing-python-packages" id="id11">Example: Publishing Python packages</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#using-application-tokens-instead-of-passwords" id="id12">Using Application Tokens instead of Passwords</a></p> <ul> <li><p><a class="reference internal" href="#datashare" id="id13">DataShare</a></p></li> <li><p><a class="reference internal" href="#gitlab" id="id14">GitLab</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#software-publishing" id="id15">Software Publishing</a></p> <ul> <li><p><a class="reference internal" href="#do-it-yourself" id="id16">Do it yourself</a></p></li> <li><p><a class="reference internal" href="#publish-via-a-data-archiving-site" id="id17">Publish via a data archiving site</a></p></li> <li><p><a class="reference internal" href="#software-heritage" id="id18">Software Heritage</a></p></li> <li><p><a class="reference internal" href="#final-remarks" id="id19">Final remarks</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#news-events" id="id20">News & Events</a></p> <ul> <li><p><a class="reference internal" href="#international-hpc-summer-school-2022" id="id21">International HPC Summer School 2022</a></p></li> <li><p><a class="reference internal" href="#advanced-hpc-workshop-2021" id="id22">Advanced HPC workshop 2021</a></p></li> <li><p><a class="reference internal" href="#years-max-planck-computing-centre-in-garching" id="id23">60 Years Max Planck Computing Centre in Garching</a></p></li> </ul> </li> </ul> </div> <p><a class="reference external" href="./pdf/bits_and_bytes_issue_208.pdf">PDF version</a></p> <div class="section" id="high-performance-computing"> <h2><a class="toc-backref" href="#id1">High-performance Computing</a><a class="headerlink" href="#high-performance-computing" title="Permalink to this heading"></a></h2> <div class="section" id="termination-of-general-user-operation-for-draco-login-nodes"> <h3><a class="toc-backref" href="#id2">Termination of general user operation for <em>Draco</em> login nodes</a><a class="headerlink" href="#termination-of-general-user-operation-for-draco-login-nodes" title="Permalink to this heading"></a></h3> <p>As announced previously, starting from January 10, 2022 access to the <em>Draco</em> login nodes will be restricted to the users belonging to institutes which own dedicated <em>Draco</em> nodes; namely the Fritz Haber Institute, the Max Planck Institute for the Structure and Dynamics of Matter, and the Max Planck Institute for Animal Behaviour. The file systems /draco/u and /draco/ptmp will stay available on <em>Cobra</em> and <em>Raven</em> until further notice.</p> <p><em>Renate Dohmen</em></p> </div> <div class="section" id="announcement-of-cuda-no-defaults-on-cobra-and-raven"> <h3><a class="toc-backref" href="#id3">Announcement of CUDA no-defaults on <em>Cobra</em> and <em>Raven</em></a><a class="headerlink" href="#announcement-of-cuda-no-defaults-on-cobra-and-raven" title="Permalink to this heading"></a></h3> <p>Please note that in the near future you will need to specify an explicit version when loading the “cuda” module, just as is already required for the Intel compiler and MPI modules. This will be enforced after the next maintenance window and a plain <code class="docutils literal notranslate"><span class="pre">module</span> <span class="pre">load</span> <span class="pre">cuda</span></code> will fail, then. Instead, use</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>module<span class="w"> </span>load<span class="w"> </span>cuda/11.2 </pre></div> </div> <p>to load version 11.2 explicitly, for example. In case you need to load the “cuda” module for your jobs, please adapt your job scripts already now. The actual dates of the maintenances will be announced in due time.</p> <p><em>Sebastian Ohlmann, Klaus Reuter</em></p> </div> <div class="section" id="usage-of-tmp-and-dev-shm-on-cobra-and-raven"> <h3><a class="toc-backref" href="#id4">Usage of /tmp and /dev/shm on <em>Cobra</em> and <em>Raven</em></a><a class="headerlink" href="#usage-of-tmp-and-dev-shm-on-cobra-and-raven" title="Permalink to this heading"></a></h3> <p>On the HPC systems at MPCDF neither the /tmp file system nor the <code class="docutils literal notranslate"><span class="pre">TMPDIR</span></code> environment variable should be used for storing scratch data. Instead, the /ptmp directory which is accessible as a parallel file system from all compute nodes is provided for such purposes. On the other hand some applications require access to the local file system on the compute nodes for storing temporary files. In this case the /tmp or /dev/shm directories can be used. Since RAM is significantly faster than disk storage, it is advantageous to use /dev/shm instead of /tmp for higher I/O performance. This becomes important when an application extensively uses temporary files, e.g. for interprocess communication through files. For such cases users can use the variables <code class="docutils literal notranslate"><span class="pre">JOB_TMPDIR</span></code> and <code class="docutils literal notranslate"><span class="pre">JOB_SHMTMPDIR</span></code> in their batch scripts, which are set individually for each job. For codes which use the variable <code class="docutils literal notranslate"><span class="pre">TMPDIR</span></code> it is recommended to set it like <code class="docutils literal notranslate"><span class="pre">TMPDIR=$JOB_TMPDIR</span></code>. Using the variables <code class="docutils literal notranslate"><span class="pre">JOB_TMPDIR</span></code> and <code class="docutils literal notranslate"><span class="pre">JOB_SHMTMPDIR</span></code> guarantees that all temporary files stored in these temporarily created directories will be cleaned after the job has finished. Note, that the <em>Raven</em> HPC cluster is a diskless system, therefore the /tmp directory can be used only for files which do not exceed 2 GB in total.</p> <p><em>Mykola Petrov</em></p> </div> <div class="section" id="eigensolver-library-elpa"> <h3><a class="toc-backref" href="#id5">Eigensolver library ELPA</a><a class="headerlink" href="#eigensolver-library-elpa" title="Permalink to this heading"></a></h3> <p>Further enhancements of the eigensolver library ELPA can be found in the ELPA release 2021.05.001. This version includes extensions of the infrastructure for GPU usage, such that AMD GPUs are now fully supported, and an initial (experimental) support for Intel GPUs has been added. The hybrid usage of MPI and OpenMP has also been improved: ELPA now can automatically detect which level of thread support (such as “MPI_THREAD_SERIALIZED” or “MPI_THREAD_MULTIPLE”) is available in the MPI library used, and ELPA adapts the OpenMP parallelisation accordingly. The ELPA library is publicly available as open-source software and can be downloaded from the <a class="reference external" href="https://elpa.mpcdf.mpg.de">ELPA git repository</a> hosted by the MPCDF. A new release 2021.11.001 of ELPA is currently being prepared and the new version will be available on the MPCDF systems within the next days. Among others, the new release will feature imporved support for Nvidia A100 GPUs, the option to use non-blocking MPI collectives, and a faster implementation of the autotuning.</p> <p><em>Andreas Marek, Hermann Lederer</em></p> </div> <div class="section" id="using-python-based-hybrid-parallel-codes-on-hpc-systems"> <h3><a class="toc-backref" href="#id6">Using Python-based hybrid-parallel codes on HPC systems</a><a class="headerlink" href="#using-python-based-hybrid-parallel-codes-on-hpc-systems" title="Permalink to this heading"></a></h3> <p>NumPy and SciPy are arguably the most important base packages when it comes to scientific computing with Python. Most Python-based packages in HPC and in HPDA/AI use them, and in doing so leverage the high-performance and implicit thread parallelization these packages provide. Typically, NumPy is linked to a highly optimized math library such as Intel MKL which automatically parallelizes using threads.</p> <p>Care has to be taken when additional process-based layers of parallelism are employed on top. Python’s ‘multiprocessing’ and ‘mpi4py’ are to be named in this context, and moreover high-level parallelization frameworks such as ‘dask’ or ‘ray’. In each case, processes are spawned by such packages to distribute and parallelize work. It is crucial to limit the number of threads used by each of these processes in order to avoid overloading of the compute resources. In many cases, on each process the NumPy-internal threading would just use the total number of cores logically available on the system, independently of the other processes running on the same system.</p> <p>To give a simple example for the Raven system with 72 cores per node, a multiprocessing-based code with 72 worker processes would use several thousand threads in total if each worker internally used NumPy naively, leading to very bad overall performance and to potential harm to the stability of the compute node. Obviously, in this example each worker process would need to cap the number of threads to 1.</p> <p>To limit the number of threads NumPy and similar threaded packages are using, set the influential environment variables accordingly in your job scripts before launching the Python code. Such variables are for example <code class="docutils literal notranslate"><span class="pre">OMP_NUM_THREADS</span></code>, <code class="docutils literal notranslate"><span class="pre">MKL_NUM_THREADS</span></code>, <code class="docutils literal notranslate"><span class="pre">NUMEXPR_NUM_THREADS</span></code>, and <code class="docutils literal notranslate"><span class="pre">NUMBA_NUM_THREADS</span></code>. Some packages support function calls to set the number of threads. For more details, please consult the documentation of the packages you’re using. Example scripts for important use cases are given in the user guides for the HPC systems, e.g. for <a class="reference external" href="https://docs.mpcdf.mpg.de/doc/computing/raven-user-guide.html#single-node-example-job-scripts-for-sequential-programs-plain-openmp-cases-python-julia-matlab">Raven</a>. Similar to the Python cases for which such issues have been seen many times on the HPC systems recently, the same argument applies to Julia-based codes and in general to any hybrid code including the canonical MPI+OpenMP setup.</p> <p><em>Klaus Reuter</em></p> </div> </div> <div class="section" id="python-bindings-for-c-using-pybind11-and-scikit-build"> <h2><a class="toc-backref" href="#id7">Python bindings for C++ using pybind11 and scikit-build</a><a class="headerlink" href="#python-bindings-for-c-using-pybind11-and-scikit-build" title="Permalink to this heading"></a></h2> <p>With the rising popularity of the Python programming language it has become increasingly important for computational scientists to be able to make their software easily available to the Python ecosystem and community. Historically, exposing compiled extensions from C/C++ to Python has often been cumbersome, error prone and technically challenging, given the plethora of compilers, libraries and relevant target platforms developers have to deal with. The present article introduces a combination of two Python packages that promise to make this daunting task much easier and more stable. First, the <a class="reference external" href="https://github.com/pybind/pybind11">pybind11</a> header-only library provides a convenient approach to generate Python bindings for existing or newly developed C++ code. Second, the <a class="reference external" href="https://github.com/scikit-build/scikit-build">scikit-build</a> package can be used to bridge Python’s setuptools with <a class="reference external" href="https://cmake.org/">CMake</a>, leveraging the power of CMake for the build process of the Python extension. As a result, CMake’s native features such as discovering and linking of numerical libraries, dependency management, support of various build-generators, or even cross-compilation can easily be taken advantage of during the build process of the Python extension. A key advantage is that the file ‘setup.py’ stays minimal and simple, instead the aforementioned complexities are handled by CMake.</p> <p>The basic usage of pybind11 in combination with scikit-build is demonstrated below by means of a simple Python extension package. The code example can be obtained from the <a class="reference external" href="https://gitlab.mpcdf.mpg.de/sebak/pybind11-hello-world">MPCDF GitLab</a>.</p> <div class="section" id="interfacing-python-numpy-with-c-using-pybind11"> <h3><a class="toc-backref" href="#id8">Interfacing Python/NumPy with C++ using pybind11</a><a class="headerlink" href="#interfacing-python-numpy-with-c-using-pybind11" title="Permalink to this heading"></a></h3> <p>pybind11 is a header-only library that provides conversion from C/C++ types to Python, and vice versa. The following C++ Python extension module demonstrates its use in combination with NumPy arrays.</p> <div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="c1">// Python example module 'cumsum'</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><numeric></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><functional></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><pybind11/pybind11.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><pybind11/numpy.h></span> <span class="k">namespace</span><span class="w"> </span><span class="nn">py</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nn">pybind11</span><span class="p">;</span> <span class="c1">// numpy-like cumulative sum, taking a NumPy</span> <span class="c1">// array as input and returning a NumPy array</span> <span class="n">py</span><span class="o">::</span><span class="n">array_t</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="w"> </span><span class="n">cumsum</span><span class="p">(</span><span class="n">py</span><span class="o">::</span><span class="n">array_t</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="w"> </span><span class="n">a</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="c1">// obtain information about the n-d </span> <span class="w"> </span><span class="c1">// input array</span> <span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">shape</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">request</span><span class="p">().</span><span class="n">shape</span><span class="p">;</span> <span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">accumulate</span><span class="p">(</span><span class="n">shape</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span> <span class="w"> </span><span class="n">shape</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">multiplies</span><span class="o"><</span><span class="kt">size_t</span><span class="o">></span><span class="p">());</span> <span class="w"> </span><span class="c1">// create output array</span> <span class="w"> </span><span class="n">py</span><span class="o">::</span><span class="n">array_t</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="w"> </span><span class="n">b</span><span class="p">(</span><span class="n">count</span><span class="p">);</span> <span class="w"> </span><span class="c1">// obtain raw pointers</span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">a_p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">request</span><span class="p">().</span><span class="n">ptr</span><span class="p">;</span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">b_p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">request</span><span class="p">().</span><span class="n">ptr</span><span class="p">;</span> <span class="w"> </span><span class="c1">// compute cumulative sum into b</span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">cs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0.0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">size_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o"><</span><span class="n">count</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">cs</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">a_p</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">b_p</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">cs</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">b</span><span class="p">;</span> <span class="p">}</span> <span class="n">PYBIND11_MODULE</span><span class="p">(</span><span class="n">_cumsum</span><span class="p">,</span><span class="w"> </span><span class="n">m</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// module docstring</span> <span class="w"> </span><span class="n">m</span><span class="p">.</span><span class="n">doc</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"pybind11 cumulative sum example"</span><span class="p">;</span> <span class="w"> </span><span class="c1">// function definition</span> <span class="w"> </span><span class="c1">// third parameter is the function docstring</span> <span class="w"> </span><span class="n">m</span><span class="p">.</span><span class="n">def</span><span class="p">(</span><span class="s">"cumsum"</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">cumsum</span><span class="p">,</span> <span class="w"> </span><span class="s">"return cumulative sum of array"</span><span class="p">);</span> <span class="p">}</span> </pre></div> </div> <p>The example C++ code implements a simple cumulative sum computation similar to the one provided by NumPy. The binary Python module is labeled ‘_cumsum’ which we wrap into ‘cumsum’ (not shown here, cf. the GitLab repository). Our ‘cumsum’ example module can finally be used and tested as follows:</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">cumsum</span> <span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cumsum</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="n">c</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">assert</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">allclose</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">))</span> </pre></div> </div> <p>In order for this example to be compiled, the pybind11 headers (as any other potential dependency) must be available. pybind11 can be installed in <a class="reference external" href="https://pybind11.readthedocs.io/en/stable/installing.html">several ways</a>, and it natively supports various <a class="reference external" href="https://pybind11.readthedocs.io/en/stable/compiling.html#compiling">build systems</a>. However using scikit-build provides a particularly easy approach which is shown in the following.</p> </div> <div class="section" id="build-with-scikit-build"> <h3><a class="toc-backref" href="#id9">Build with scikit-build</a><a class="headerlink" href="#build-with-scikit-build" title="Permalink to this heading"></a></h3> <p>The package scikit-build provides a drop-in replacement for the setuptools.setup function that can be used in a project’s ‘setup.py’ via</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">skbuild</span> <span class="kn">import</span> <span class="n">setup</span> </pre></div> </div> <p>Beside the standard setuptools options, it provides <a class="reference external" href="https://scikit-build.readthedocs.io/en/latest/usage.html#scikit-build-options">extra options</a> to control the CMake build. In addition, a minimal ‘CMakeLists.txt’ file must be available in the top-level directory of the project, e.g.:</p> <div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">cmake_minimum_required</span><span class="p">(</span><span class="s">VERSION</span><span class="w"> </span><span class="s">3.18</span><span class="p">)</span> <span class="nb">project</span><span class="p">(</span><span class="s">pybind11-hello-world</span><span class="w"> </span><span class="s">VERSION</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">)</span> <span class="nb">find_package</span><span class="p">(</span><span class="s">pybind11</span><span class="p">)</span> <span class="nb">pybind11_add_module</span><span class="p">(</span><span class="s">_cumsum</span><span class="w"> </span><span class="s">MODULE</span><span class="w"> </span> <span class="w"> </span><span class="s">src/cumsum/cumsum.cpp</span><span class="p">)</span> <span class="nb">install</span><span class="p">(</span><span class="s">TARGETS</span><span class="w"> </span><span class="s">_cumsum</span><span class="w"> </span><span class="s">DESTINATION</span><span class="w"> </span><span class="s">.</span><span class="p">)</span> </pre></div> </div> <p>Build-system dependencies have to be specified via the project’s ‘pyproject.toml’ file:</p> <div class="highlight-toml notranslate"><div class="highlight"><pre><span></span><span class="k">[build-system]</span> <span class="n">requires</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="s2">"setuptools>=42"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"wheel"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"pybind11[global]>=2.6.0"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"cmake>=3.18"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"scikit-build"</span><span class="p">,</span> <span class="p">]</span> <span class="n">build-backend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"setuptools.build_meta"</span> </pre></div> </div> <p>Now the Python module can be compiled and installed by running the command <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">--user</span> <span class="pre">.</span></code> in the root directory of the project. Similarly Wheel archives can be created for distribution.</p> <p>Note that with modern Python packaging tools it is not necessary to manually install pybind11 and scikit-build, instead all build dependencies will be installed into an isolated build environment by <code class="docutils literal notranslate"><span class="pre">pip</span></code>. The ‘[global]’ feature of the pybind11 requirement is necessary to install the include and cmake files correctly into the dedicated build environment, it does not affect the Python installation or environment in use and can thus be used safely.</p> <p><em>Sebastian Kehl, Klaus Reuter</em></p> </div> </div> <div class="section" id="the-gitlab-package-registry"> <h2><a class="toc-backref" href="#id10">The Gitlab Package Registry</a><a class="headerlink" href="#the-gitlab-package-registry" title="Permalink to this heading"></a></h2> <p>Ready-to-use applications or libraries are often published via <em>package portals</em>. Nearly every programming ecosystem has such a common and widely used web portal: for example, the “Python Package Index (PyPi)” in the Python world, “Maven Central” for Java. With the <em>GitLab Package Registry</em>, you can now publish application packages in various formats directly via the MPCDF GitLab instance.</p> <p>The <em>GitLab Package Registry</em> was introduced to the open-source variant of GitLab in version 13.3. The Package Registry can be used by any GitLab user to publish packages in various formats. In contrast to publicly available package management portals, GitLab’s Package Registry allows the user to keep a package completely private or share it just with the other members of the current repository or group. In addition, GitLab’s <em>Continous Integration</em> capabilities are a convenient way of building and testing a package automatically from source code stored in a GitLab repository. The Package Registry should not be confused with GitLab’s <em>Container Registry</em>, which can be used to store and distribute Docker images, but not application packages.</p> <p>GitLab’s Package Registry supports currently a wide variety of package formats, including Maven (for Java/JDK based applications), npm (JavaScript) and PyPi (Python). Further package formats are under development and some are still in beta or alpha status, you can find the whole list of supported package formats in the <a class="reference external" href="https://docs.gitlab.com/ee/user/packages/package_registry/index.html#supported-package-managers">GitLab documentation</a>.</p> <p>If you want to use the package registry in your GitLab repository, you need to enable it under “Settings / General / Visibility, project features, permissions / Packages”:</p> <p><img alt="../_images/settings.png" src="../_images/settings.png" /></p> <p>After activation, you can access the package registry under “Packages & Registries / Package Registry” in the left menu.</p> <p>The concrete procedure how to build and upload a package to the package registry depends on the format of the package. The <a class="reference external" href="https://gitlab.mpcdf.mpg.de/help/user/packages/package_registry/index">GitLab documentation</a> has examples for the most common package formats.</p> <div class="section" id="example-publishing-python-packages"> <h3><a class="toc-backref" href="#id11">Example: Publishing Python packages</a><a class="headerlink" href="#example-publishing-python-packages" title="Permalink to this heading"></a></h3> <p>For building and publishing Python packages, you can find a detailed tutorial in the MPCDF documentation: <a class="reference external" href="https://docs.mpcdf.mpg.de/doc/data/gitlab/devop-tutorial.html">Poetry and GitLab: Devops for Python developers</a>. The tutorial makes use of Poetry, a packaging and dependency management tool for Python. It was already introduced in the previous edition of Bits&Bytes (<a class="reference external" href="https://docs.mpcdf.mpg.de/bnb/207.html#poetry-packaging-and-dependency-management-for-python">Poetry: Packaging and Dependency Management for Python</a>). Testing, creation and uploading a PyPi package is done via GitLab’s <em>Continous Integration</em> pipelines. After you have successfully created and uploaded a PyPi Package to the package registry, GitLab shows the package details and how a user can download and install it into his local Python environment:</p> <p><img alt="../_images/publishedPackage.png" src="../_images/publishedPackage.png" /></p> <p><em>Thomas Zastrow</em></p> </div> </div> <div class="section" id="using-application-tokens-instead-of-passwords"> <h2><a class="toc-backref" href="#id12">Using Application Tokens instead of Passwords</a><a class="headerlink" href="#using-application-tokens-instead-of-passwords" title="Permalink to this heading"></a></h2> <p>The MPCDF offers several services which can be used on a wide variety of (electronic) devices. For example, the DataShare client can be installed on any smartphone, tablet or laptop: the client makes uploading and downloading files from or to your device easy and convenient. But using these kind of services on mobile devices has a disadvantage: if you don’t want to type it every time, you need to save your MPCDF password on the mobile device. And even if the client stores the password encrypted, if you loose your device or someone steals it, your password may be in the wild. Another, but similar use case are server based applications which need to access services like DataShare or GitLab. If such an application should run automatically and unsupervised, your personal MPCDF password needs to be made available to it.</p> <p>In order to avoid such security issues, services like DataShare and GitLab are offering <em>application specific tokens</em> (sometimes also called <em>device tokens</em>). These tokens are additional credentials which can be created by the user himself – no help from a service administrator is necessary. Every device can get its own application token: if your laptop got stolen, you just need to delete its application tokens and go on with all other devices and MPCDF services without any change.</p> <p><img alt="../_images/appTokens.png" src="../_images/appTokens.png" /></p> <p><strong>Its strongly recommended that you create for every device its own token!</strong></p> <p>To clarify: unless your hard disk is encrypted, a potential thief still has access to the data <em>locally</em> stored on the device. But he can’t access the application itself anymore and update, change or delete data on the server. The following sections describe the procedure of creating application tokens in DataShare and Gitlab.</p> <div class="section" id="datashare"> <h3><a class="toc-backref" href="#id13">DataShare</a><a class="headerlink" href="#datashare" title="Permalink to this heading"></a></h3> <p>After logging in to DataShare, go to your account settings (top right of the screen). In the menu on the left, there is an entry “Security”. On the bottom of this page, you can find the option “App passwords / tokens”. Enter a name for your device into the text box and click “Create new app passcode”:</p> <p><img alt="../_images/app-tokens-ds-1.png" src="../_images/app-tokens-ds-1.png" /></p> <p>DataShare will now create a secure and safe token for you - make sure that you copy and paste it! DataShare will never be able to show you the token again. If you forgot to save the token, you need to delete the entry for the device and create a new app token. In any DataShare client, you can now use the app token in combination with your MPCDF user name to log in.</p> </div> <div class="section" id="gitlab"> <h3><a class="toc-backref" href="#id14">GitLab</a><a class="headerlink" href="#gitlab" title="Permalink to this heading"></a></h3> <p>In GitLab, you can find the application tokens under your personal account, “Access tokens”:</p> <p><img alt="../_images/app-tokens-gl-1.png" src="../_images/app-tokens-gl-1.png" /></p> <p>In contrast to DataShare’s App Tokens, GitLab’s Access Tokens have more functionality. Every token can have an expiration date and one or more scopes. Via scopes, you can set the token permissions to GitLab in a fine-granular way.</p> <p><em>Thomas Zastrow</em></p> </div> </div> <div class="section" id="software-publishing"> <h2><a class="toc-backref" href="#id15">Software Publishing</a><a class="headerlink" href="#software-publishing" title="Permalink to this heading"></a></h2> <p>Software written in the context of research receives more and more attention and is increasingly considered as genuine research output that is publishable in its own right. In this article we outline three ways of publishing software, thereby making it referenceable and citable.</p> <div class="section" id="do-it-yourself"> <h3><a class="toc-backref" href="#id16">Do it yourself</a><a class="headerlink" href="#do-it-yourself" title="Permalink to this heading"></a></h3> <p>In order to make software citable one needs at a minimum an identifier such as a digital object identifier (DOI) pointing to a place on the web from where the software can be obtained. The latter can be any website of your choosing or just a tagged revision of your code in a publicly accessible version control system such as MPCDF’s Gitlab. Being affiliated with the MPG you can request a DOI from the Max Planck Digital Library (MPDL) through their <a class="reference external" href="https://doi.mpdl.mpg.de/">DOI service</a>. You <a class="reference external" href="https://doi.mpdl.mpg.de/request-doi">fill in the form</a> and thereby specify the URL of your code plus some basic metadata and that’s it.</p> </div> <div class="section" id="publish-via-a-data-archiving-site"> <h3><a class="toc-backref" href="#id17">Publish via a data archiving site</a><a class="headerlink" href="#publish-via-a-data-archiving-site" title="Permalink to this heading"></a></h3> <p>In many cases, however, you want a copy of your code to be available from a 3rd-party data repository thereby delegating the responsibility for the long-term preservation of your code. You also often want to publish multiple versions of your code over time and you want to be able to refer to individual revisions as well as your coding project in general and expect that the metadata associated with the identifiers reflect these relationships.</p> <p>An example of how this can be achieved is Github in concert with Zenodo as <a class="reference external" href="https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content">explained on Github</a>. While there is no such tight integration of Zenodo with Gitlab you can achieve essentially the same by setting up your own code publication pipeline using, for example, <a class="reference external" href="https://pypi.org/project/gitlab2zenodo/">gitlab2zenodo</a>.</p> </div> <div class="section" id="software-heritage"> <h3><a class="toc-backref" href="#id18">Software Heritage</a><a class="headerlink" href="#software-heritage" title="Permalink to this heading"></a></h3> <p>A further option to archive and publish your code is via <a class="reference external" href="https://www.softwareheritage.org/">Software Heritage</a>. Software Heritage maintains an infrastructure and services that will crawl your public code repository (no matter whether it is based on git, subversion, or any other common revision control system) on a regular basis once you have prepared your code repository and registered it as <a class="reference external" href="https://www.softwareheritage.org/howto-archive-and-reference-your-code/">explained on their website</a>. They will store a copy of your code, preserve it and assign a unique intrinsic identifier which can then be used much in the same way as a DOI.</p> </div> <div class="section" id="final-remarks"> <h3><a class="toc-backref" href="#id19">Final remarks</a><a class="headerlink" href="#final-remarks" title="Permalink to this heading"></a></h3> <p>No matter which way you publish your code it is a recommended best practice to also make the repository of the (to-be) published code publicly accessible. Some of the approaches mentioned above even require that. In all cases you are expected to add metadata including authorship and usage rights (aka a license). And as a general recommendation: a license should be chosen under all circumstance and it is advisable to do this as early as possible. If in doubt ask your peers or seek advice, e.g., on <a class="reference external" href="https://choosealicense.com/">websites such as “Choose a license”</a>.</p> <p><em>Raphael Ritz</em></p> </div> </div> <div class="section" id="news-events"> <h2><a class="toc-backref" href="#id20">News & Events</a><a class="headerlink" href="#news-events" title="Permalink to this heading"></a></h2> <div class="section" id="international-hpc-summer-school-2022"> <h3><a class="toc-backref" href="#id21">International HPC Summer School 2022</a><a class="headerlink" href="#international-hpc-summer-school-2022" title="Permalink to this heading"></a></h3> <p>The international HPC summer school (IHPCSS) 2022 is planned as an in-person event from June 19th to June 24th in Athens, Greece. The series of these annual events started 2010 in Sicily, Italy. Due to the Covid-19 pandemic, IHPCSS 2020 had to be cancelled and was carried out as a virtual event in 2021, with mirrored sessions in two different time zones to allow for convenient participation from any part of the world.</p> <p>Now for 2022, the organizing partners XSEDE for the US, PRACE for Europe, RIKEN CCS for Japan and the SciNet HPC Consortium for Canada are inviting again for applications for participation in Greece. In case pandemic conditions will not allow to ensure health-safety, the organizers will switch to a virtual event. A final decision is expected by March 2022. Eligible candidates for applications are graduate students and postdoctoral scholars from institutions in Canada, Europe, Japan and the United States. Interested students are invited to apply by the end of January 2022. School fees, meals and housing will be covered for all accepted applicants. 30 seats out of the total number of 80 are reserved for applicants from European institutions, and 50 seats are given to students from the US, Canada and Japan. Traditionally, students from Max Planck Institutes were participating. For further information and application, please visit the <a class="reference external" href="https://ss22.ihpcss.org/">website of the summer school</a>.</p> <p><em>Hermann Lederer</em></p> </div> <div class="section" id="advanced-hpc-workshop-2021"> <h3><a class="toc-backref" href="#id22">Advanced HPC workshop 2021</a><a class="headerlink" href="#advanced-hpc-workshop-2021" title="Permalink to this heading"></a></h3> <p>From November 22nd to 25th, the MPCDF hosted its annual Advanced HPC Workshop for the MPG, as an online event. Around 20 participants listened to 21 lectures given by members of the applications group, the AI group and by experts from Intel and Nvidia. The topics included software carpentry, debugging, profiling and optimizing codes for CPUs and GPUs. The last day was dedicated to five code projects brought in by the participants. Together with the code owners and the experts from Intel and Nvidia, various tools were applied to the codes and optimization strategies were developed. Material of the MPCDF training programs, including semi-annual introductory courses for new users, as well as upcoming events can be found at the MPCDF webpage under <a class="reference external" href="https://www.mpcdf.mpg.de/services/training">“Training & Education”</a></p> <p><em>Tilman Dannert</em></p> </div> <div class="section" id="years-max-planck-computing-centre-in-garching"> <h3><a class="toc-backref" href="#id23">60 Years Max Planck Computing Centre in Garching</a><a class="headerlink" href="#years-max-planck-computing-centre-in-garching" title="Permalink to this heading"></a></h3> <p>In August 1961 the Institute for Plasmaphysics (IPP) in Garching procured one of the most powerful computers at that time – an IBM 7090 system with a performance of 100 kFlop/s. The IPP had been founded in 1960 by Werner Heisenberg and the Max Planck Society. To the first users besides IPP belonged the Max Planck Institutes for Physics and Astrophysics, for Biochemistry, and both Munich Universities. The German Computing Centre in Darmstadt procured the same system und used the Garching computer in addition in phases of capacity shortage. In 1969 an IBM 360/91 system was installed which also belonged to the world’s top systems. In 1979 the first vector computer worldwide for general basic science was installed at the “Rechenzentrum Garching” (RZG). In the following years and decades the RZG has evolved from a local to a central facility of the Max Planck Society, and in 2015 it was renamed to Max Planck Computing and Data Facility (MPCDF), underlining that it also belongs to the world’s largest academic data centers. More than 50 Max Planck Institutes make use of the services for computing, storage, leading-edge HPC and AI application development, and carry out data management projects in collaboration with MPCDF. In addition, the MPCDF is engaged in many national and international projects.</p> <p>On October 14th, the 60-year anniversary was celebrated with a <a class="reference external" href="https://www.mpcdf.mpg.de/anniversary-mpcdf.html">scientific symposium</a> in Garching. Vice president of the Max Planck Society, Prof. Blaum, gave a honorific speech, and renowned scientists from Plasma und Astrophysics, Materials and Life Sciences, Quantum Physics and Computer Science inspired the auditorium with brilliant presentations on the state of the art of computer-based basic science. The celebration act was finished with a dinner in the rotating restaurant of the Munich Olympic Tower, enabled by sponsorships of technology partner companies IBM, Lenovo and Nvidia.</p> <p><em>Hermann Lederer</em></p> </div> </div> </div> </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="209.html" class="btn btn-neutral float-left" title="No.209, April 2022" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="207.html" class="btn btn-neutral float-right" title="No.207, August 2021" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> <div role="contentinfo"> <p> <span class="lastupdated">Last updated on Mar 26, 2024. </span></p> </div> <p> © Copyright <a href="https://www.mpcdf.mpg.de/">Max Planck Computing and Data Facility</a> | <a href="https://www.mpcdf.mpg.de/imprint">Imprint</a> | <a href="https://www.mpcdf.mpg.de/privacy-policy">Privacy Policy</a> </p> <p> Built with <a href="https://www.sphinx-doc.org">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </p> </footer> </div> </div> </section> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>