{"use\/1\/2\/b":{"title":"USE1.2 Shell Scripts","id":"use\/1\/2\/b","requirements":["* [[skill-tree:use:1:1:b]]"],"learning outcomes":["* Create a basic shell script that executes a sequence of programs.","* Design a script using the bash construct \"if\" that handles conditional execution based on:","* Performing a test for the existing of a file\/directory\/variable,","* Testing for the presence of certain text in a file,","* Design a script that performs a task repeatedly using the bash \"for\" or \"while\" loop.","* Utilize debugging options for troubleshooting of shell programs:","* Options to bash: -e, -x","* Use shell functions to break large, complex sequences, into a series of small functions.","* Learn how to manipulate filenames.","* Learn to manage temporary files:","* Choose an adequate file system (or top directory) for temporary files.","* Automatically generate a unique folder name for temporary files.","* Automatically delete temporary folder whenever the script exits."],"exams":{"questions":5}},"use\/1\/b":{"title":"USE1 Cluster Operating System","id":"use\/1\/b","learning outcomes":["* Describe the command line interface and the bash shell as well es perform basic commands.","* Use and write basic shell scripts, e.g., to automate the execution of several commands.","* Sketch the organization of the typical file system tree.","* Utilize essential tools to navigate and manage files.","* Understand how to access a Cluster via SSH.","* Understand terminal multiplexers and use them to run longer commands without keeping a connection alive.","* Utilize tools to transfer data between a desktop\/laptop system and a remote HPC system.","* Utilize package management tools that provide access to a wide variety of software.","* Demonstrate the usage of an editor to open a file in write mode and save the file and define why CLI based editors are useful in an HPC environment.","* Utilize screen or tmux to preserve a session between logins and classify usecases for these three operations:","* Creation of a session.","* Detaching from the current session.","* Resuming a previous session.","* Illustrate the use of CTRL-Z and CTRL-C in combination with the commands jobs and fg to send the signals SIGINT and SIGTSTP.","* Experiment with the kill command and send the signals SIGKILL, SIGINT, SIGTSTP, also via the numbers instead of the names to a specific process id"],"subskills":["use\/1\/1\/b","use\/1\/2\/b","use\/1\/3\/b","use\/1\/4\/b","use\/1\/5\/b","use\/1\/6\/b","use\/1\/7\/b","use\/1\/8\/b"],"exams":{"questions":7}},"use\/1\/8\/b":{"title":"USE1.8 Manage background processes and signals","id":"use\/1\/8\/b","requirements":["* [[skill-tree:use:1:1:b]]"],"learning outcomes":["* Understand interrupting or aborting of a program execution using CTRL-C and CTRL-Z.","* Describe the difference between SIGINT and SIGTSTP.","* Demonstrate the use of CTRL-Z in combination with the commands jobs and fg.","* Understand what a Process ID is and how it can be used to identify any programs.","* Demonstrate how the command jobs can display the process id.","* Understand the behaviour of the kill command.","* Demonstrate the kill command and send the signals SIGKILL, SIGINT, SIGTSTP, also via the numbers instead of the names"],"exams":{"questions":0}},"use\/1\/5\/2\/b":{"title":"USE1.5.2 Spack","id":"use\/1\/5\/2\/b","learning outcomes":["* Describe the concept of configurations and used hashing.","* Query information about packages:","* list","* info","* find (also use -d to reveal their dependencies)","* spec","* Load\/Unload software modules.","* Describe the spec syntax to specify package configurations."],"exams":{"questions":0}},"use\/1\/5\/b":{"title":"USE1.5 Software Environment","id":"use\/1\/5\/b","learning outcomes":["* Query available software using the package manager and select the appropriate versions for deployment in the session environment.","* Describe the MODULEPATH variable and understand shell variables relevant for executing and building software","* Query information about packages using SPACK and install as well as load and unload software modules","* Understand what conda environments are for and how a user can install their own environments"],"subskills":["use\/1\/5\/1\/b","use\/1\/5\/2\/b","use\/1\/5\/3\/b"],"exams":{"questions":2}},"use\/1\/5\/1\/b":{"title":"USE1.5.1 Environment Modules","id":"use\/1\/5\/1\/b","requirements":[],"learning outcomes":["* Comprehend that Modules can have dependencies and conflicts:","* A Module can enforce other Modules that it depends on must be loaded before the Module itself can be loaded.","* Conflicting modules must not be loaded at the same time (e.g. two versions of a compiler).","* Query information about packages:","* list","* avail","* whatis","* search","* display","* help","* Load\/Unload software modules:","* load\/unload","* purge","* swap","* switch","* Describe the MODULEPATH variable.","* Describe the general dependency structure of software.","* Describe how a package manager makes software available.","* Understand shell variables relevant for executing and building software:","* PATH for executables","* LD\\_LIBRARY\\_PATH for libraries","* MANPATH for manual pages (man command)","* PKG\\_CONFIG\\_PATH for pkg-config","* Manipulate shell variables to include additional software:","* Setting shell variables for a single program by prefixing or by using export."],"exams":{"questions":0}},"use\/1\/5\/3\/b":{"title":"USE1.5.3 Conda environments","id":"use\/1\/5\/3\/b","requirements":["* [[skill-tree:use:1:5:1:b]]"],"learning outcomes":["* Understand what conda environments are for","* Understand the difference between a module system and conda environment","* Discuss how such an environment can be constructed and what dependencies it has","* Prepare a conda environment for basic python packages","* Analyse the loading time for a conda environment for different file storage location"],"exams":{"questions":0}},"use\/1\/1\/b":{"title":"USE1.1 Command Line Interface","id":"use\/1\/1\/b","requirements":[],"learning outcomes":["* Use the bash shell to execute individual programs with arguments.","* List the set of basic programs and their tasks:","* pwd","* ls","* cd","* whoami","* sleep","* kill","* echo","* clear","* man","* vi, vim, emacs, nano","* exit","* ...","* Demonstrate interrupting or aborting of a program execution using CTRL-C.","* Use the available help of a program (--help argument and the man pages).","* Use the shell history to search and execute previously executed commands.","* Demonstrate setting and printing shell variables.","* Show all currently set variables and set as well as unset one manually.","* Identify potential special characters that must be handled with care.","* List strings that could refer to files\/directories","* Utilize escaping to ensure correct handling of arguments.","* Understand wildcard characters to select a group of files\/directories: \"*\", \"?\", \"[-,]\""],"material":[{"@type":"Book","identifier":"m1","name":"The great MPI course","description":"a description...","creator":[{"name":"Its-a Leader","familyName":"Leader","givenName":"Its-a"}],"contributor":[{"name":"Hans Lastname"}],"inLanguage":"en","teaches":["use\/1\/1\/b","use\/1\/2\/b"],"educationalAlignment":{"educationalFramework":"HPC CF Competence Standard v1.0","targetUrl":"https:\/\/www.hpc-certification.org\/cs\/v1.0"},"keywords":"test,test2","educationalLevel":"beginner","url":"https:\/\/xx","datePublished":"2020-10-03","dateCreated":"2020-10-01"}],"events":[{"identifier":"e1","name":"interesting course","description":"description","inLanguage":"en","location":{"url":"http:\/\/","PostalAddress":{"addressCountry":"","addressRegion":"","postalCode":"","streetAddress":""},"VirtualLocation":{"name":"Zoom","url":"https:\/\/"}},"maximumAttendeeCapacity":30,"url":"https:\/\/xx","datePublished":"2020-10-03","startDate":"2020-11-03T10:20:00","endDate":"2020-11-03T12:20:00"}],"exams":{"questions":4}},"use\/1\/6\/b":{"error":"skill is incomplete","id":"use\/1\/6\/b"},"use\/1\/3\/b":{"title":"USE1.3 UNIX File System Tree","id":"use\/1\/3\/b","requirements":["* [[skill-tree:use:1:1:b]]"],"learning outcomes":["* Describe the organization of a hierarchical file system.","* Explain the basic UNIX permission model and metadata of files.","* Describe the Filesystem Hierarchy Standard and the relevance of the directories:","* etc","* home","* opt","* lib and \/usr\/lib","* bin and \/usr\/bin","* sbin and \/usr\/sbin","* tmp","* Utilize tools to navigate and traverse the file system:","* ls (-R, -l)","* cd","* pushd\/popd","* stat","* Use tools to read files:","* cat","* head\/tail","* less\/more","* cmp","* Utilize tools to manipulate the file system:","* mkdir\/rmdir","* touch","* cp\/mv","* ln","* Utilize tools to identify and manipulate permissions:","* chmod","* chown\/chgrp"],"exams":{"questions":8}},"use\/1\/7\/b":{"title":"USE1.7 Terminal multiplexer","id":"use\/1\/7\/b","requirements":["* [[skill-tree:use:1:1:b]]","* [[skill-tree:use:1:4:b]]"],"learning outcomes":["* Give examples for use cases for such a multiplexer.","* Discuss using such a session for longer data transfers using SSH.","* Review editing files using a terminal multiplexer","* Utilize screen or tmux to preserve a session between logins:","* Creation of a session.","* Detaching from the current session.","* Resuming a previous session."],"exams":{"questions":0}},"use\/1\/4\/b":{"title":"USE1.4 Remote Access","id":"use\/1\/4\/b","requirements":["* [[skill-tree:use:1:1:b]]"],"learning outcomes":["* Describe how SSH-authentication works:","* Password authentication.","* Public-key authentication.","* The role of an authentication agent and the security implications.","* Generate an SSH public\/private key under Linux.","* Register a key for public-key authentication using ssh-copy-id or other local methods.","* Perform a remote login from Linux using SSH.","* Use SSH-agent or equivalents.","* Use Agent forwarding to connect to a third HPC system from an HPC system that you logged into with ssh from your computer.","* Know when to use and how to create a config file.","* Utilize tools to transfer data between the local and remote system:","* scp","* sftp","* rsync (-avz)"],"exams":{"questions":0}}}