diff --git a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/outgoing-connections.md b/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/outgoing-connections.md index f43ed041f1efad27eea824b186d9e3f200856675..a4d2ed19453be74114c3b4e5ba4cb8e6ed659106 100644 --- a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/outgoing-connections.md +++ b/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/outgoing-connections.md @@ -1,118 +1,82 @@ -Outgoing connections +Outgoing connections ==================== - - Connection restrictions ----------------------- +Outgoing connections, from Anselm Cluster login nodes to the outside world, are restricted to following ports: -Outgoing connections, from Anselm Cluster login nodes to the outside -world, are restricted to following ports: - - |Port|Protocol| - |---|---| - |22|ssh| - |80|http| - |443|https| - |9418|git| +|Port|Protocol| +|---|---| +|22|ssh| +|80|http| +|443|https| +|9418|git| -Please use **ssh port forwarding** and proxy servers to connect from -Anselm to all other remote ports. +>Please use **ssh port forwarding** and proxy servers to connect from Anselm to all other remote ports. -Outgoing connections, from Anselm Cluster compute nodes are restricted -to the internal network. Direct connections form compute nodes to -outside world are cut. +Outgoing connections, from Anselm Cluster compute nodes are restricted to the internal network. Direct connections form compute nodes to outside world are cut. Port forwarding --------------- ### Port forwarding from login nodes -Port forwarding allows an application running on Anselm to connect to -arbitrary remote host and port. +>Port forwarding allows an application running on Anselm to connect to arbitrary remote host and port. -It works by tunneling the connection from Anselm back to users -workstation and forwarding from the workstation to the remote host. +It works by tunneling the connection from Anselm back to users workstation and forwarding from the workstation to the remote host. -Pick some unused port on Anselm login node (for example 6000) and -establish the port forwarding: +Pick some unused port on Anselm login node (for example 6000) and establish the port forwarding: -` +```bash local $ ssh -R 6000:remote.host.com:1234 anselm.it4i.cz -` +``` -In this example, we establish port forwarding between port 6000 on -Anselm and port 1234 on the remote.host.com. By accessing -localhost:6000 on Anselm, an application will see response of -remote.host.com:1234. The traffic will run via users local workstation. +In this example, we establish port forwarding between port 6000 on Anselm and port 1234 on the remote.host.com. By accessing localhost:6000 on Anselm, an application will see response of remote.host.com:1234. The traffic will run via users local workstation. -Port forwarding may be done **using PuTTY** as well. On the PuTTY -Configuration screen, load your Anselm configuration first. Then go to -Connection->SSH->Tunnels to set up the port forwarding. Click -Remote radio button. Insert 6000 to Source port textbox. Insert -remote.host.com:1234. Click Add button, then Open. +Port forwarding may be done **using PuTTY** as well. On the PuTTY Configuration screen, load your Anselm configuration first. Then go to Connection->SSH->Tunnels to set up the port forwarding. Click Remote radio button. Insert 6000 to Source port textbox. Insert remote.host.com:1234. Click Add button, then Open. -Port forwarding may be established directly to the remote host. However, -this requires that user has ssh access to remote.host.com +Port forwarding may be established directly to the remote host. However, this requires that user has ssh access to remote.host.com -` +```bash $ ssh -L 6000:localhost:1234 remote.host.com -` +``` Note: Port number 6000 is chosen as an example only. Pick any free port. ### Port forwarding from compute nodes -Remote port forwarding from compute nodes allows applications running on -the compute nodes to access hosts outside Anselm Cluster. +Remote port forwarding from compute nodes allows applications running on the compute nodes to access hosts outside Anselm Cluster. -First, establish the remote port forwarding form the login node, as -[described +First, establish the remote port forwarding form the login node, as [described above](outgoing-connections.html#port-forwarding-from-login-nodes). -Second, invoke port forwarding from the compute node to the login node. -Insert following line into your jobscript or interactive shell +Second, invoke port forwarding from the compute node to the login node. Insert following line into your jobscript or interactive shell -` +```bash $ ssh -TN -f -L 6000:localhost:6000 login1 -` +``` -In this example, we assume that port forwarding from login1:6000 to -remote.host.com:1234 has been established beforehand. By accessing -localhost:6000, an application running on a compute node will see -response of remote.host.com:1234 +In this example, we assume that port forwarding from login1:6000 to remote.host.com:1234 has been established beforehand. By accessing localhost:6000, an application running on a compute node will see response of remote.host.com:1234 ### Using proxy servers -Port forwarding is static, each single port is mapped to a particular -port on remote host. Connection to other remote host, requires new -forward. +Port forwarding is static, each single port is mapped to a particular port on remote host. Connection to other remote host, requires new forward. -Applications with inbuilt proxy support, experience unlimited access to -remote hosts, via single proxy server. +>Applications with inbuilt proxy support, experience unlimited access to remote hosts, via single proxy server. -To establish local proxy server on your workstation, install and run -SOCKS proxy server software. On Linux, sshd demon provides the -functionality. To establish SOCKS proxy server listening on port 1080 -run: +To establish local proxy server on your workstation, install and run SOCKS proxy server software. On Linux, sshd demon provides the functionality. To establish SOCKS proxy server listening on port 1080 run: -` +```bash local $ ssh -D 1080 localhost -` +``` -On Windows, install and run the free, open source [Sock -Puppet](http://sockspuppet.com/) server. +On Windows, install and run the free, open source [Sock Puppet](http://sockspuppet.com/) server. -Once the proxy server is running, establish ssh port forwarding from -Anselm to the proxy server, port 1080, exactly as [described -above](outgoing-connections.html#port-forwarding-from-login-nodes). +Once the proxy server is running, establish ssh port forwarding from Anselm to the proxy server, port 1080, exactly as [described above](outgoing-connections.html#port-forwarding-from-login-nodes). -` +```bash local $ ssh -R 6000:localhost:1080 anselm.it4i.cz -` +``` -Now, configure the applications proxy settings to **localhost:6000**. -Use port forwarding to access the [proxy server from compute -nodes](outgoing-connections.html#port-forwarding-from-compute-nodes) -as well . +Now, configure the applications proxy settings to **localhost:6000**. Use port forwarding to access the [proxy server from compute nodes](outgoing-connections.html#port-forwarding-from-compute-nodes) as well . diff --git a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/shell-and-data-access/shell-and-data-access.md b/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/shell-and-data-access/shell-and-data-access.md deleted file mode 100644 index 7fb3a55a6994bc2a357e6d8f214af6f426c5ae25..0000000000000000000000000000000000000000 --- a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/shell-and-data-access/shell-and-data-access.md +++ /dev/null @@ -1,137 +0,0 @@ -Shell access and data transfer -============================== - - - -Interactive Login ------------------ - -The Anselm cluster is accessed by SSH protocol via login nodes login1 -and login2 at address anselm.it4i.cz. The login nodes may be addressed -specifically, by prepending the login node name to the address. - - Login address |Port|Protocol| Login node - ----------------------- |---|---| ---------------------------------------------- - anselm.it4i.cz |22|ssh| round-robin DNS record for login1 and login2 - login1.anselm.it4i.cz |22|ssh| login1 - login2.anselm.it4i.cz |22|ssh| login2 - -The authentication is by the [private -key](../../../get-started-with-it4innovations/accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.html) - -Please verify SSH fingerprints during the first logon. They are -identical on all login nodes: -29:b3:f4:64:b0:73:f5:6f:a7:85:0f:e0:0d:be:76:bf (DSA) -d4:6f:5c:18:f4:3f:70:ef:bc:fc:cc:2b:fd:13:36:b7 (RSA) - - - -Private key (`id_rsa/id_rsa.ppk` ): `600 (-rw-------)`s authentication: - -On **Linux** or **Mac**, use - -` -local $ ssh -i /path/to/id_rsa username@anselm.it4i.cz -` - -If you see warning message "UNPROTECTED PRIVATE KEY FILE!", use this -command to set lower permissions to private key file. - -` -local $ chmod 600 /path/to/id_rsa -` - -On **Windows**, use [PuTTY ssh -client](../../../get-started-with-it4innovations/accessing-the-clusters/shell-access-and-data-transfer/putty/putty.html). - -After logging in, you will see the command prompt: - - _ - / | | - / _ __ ___ ___| |_ __ ___ - / / | '_ / __|/ _ | '_ ` _ - / ____ | | | __ __/ | | | | | | - /_/ __| |_|___/___|_|_| |_| |_| - -                        http://www.it4i.cz/?lang=en - - Last login: Tue Jul 9 15:57:38 2013 from your-host.example.com - [username@login2.anselm ~]$ - -The environment is **not** shared between login nodes, except for -[shared filesystems](../storage-1.html#section-1). - -Data Transfer -------------- - -Data in and out of the system may be transferred by the -[scp](http://en.wikipedia.org/wiki/Secure_copy) and sftp -protocols. (Not available yet.) In case large -volumes of data are transferred, use dedicated data mover node -dm1.anselm.it4i.cz for increased performance. - - |Address|Port|Protocol| - -------------------- |---|---|- ----------------------------------------- - |anselm.it4i.cz|22|scp, sftp| - |login1.anselm.it4i.cz|22|scp, sftp| - |login2.anselm.it4i.cz|22|scp, sftp| - |dm1.anselm.it4i.cz|22|scp, sftp| - - The authentication is by the [private -key](../../../get-started-with-it4innovations/accessing-the-clusters/shell-access-and-data-transfer/ssh-keys.html) - -Data transfer rates up to **160MB/s** can be achieved with scp or sftp. - may be transferred in 1:50h. - -To achieve 160MB/s transfer rates, the end user must be connected by 10G -line all the way to IT4Innovations and use computer with fast processor -for the transfer. Using Gigabit ethernet connection, up to 110MB/s may -be expected. Fast cipher (aes128-ctr) should be used. - -If you experience degraded data transfer performance, consult your local -network provider. - -On linux or Mac, use scp or sftp client to transfer the data to Anselm: - -` -local $ scp -i /path/to/id_rsa my-local-file username@anselm.it4i.cz:directory/file -` - -` -local $ scp -i /path/to/id_rsa -r my-local-dir username@anselm.it4i.cz:directory -` - - or - -` -local $ sftp -o IdentityFile=/path/to/id_rsa username@anselm.it4i.cz -` - -Very convenient way to transfer files in and out of the Anselm computer -is via the fuse filesystem -[sshfs](http://linux.die.net/man/1/sshfs) - -` -local $ sshfs -o IdentityFile=/path/to/id_rsa username@anselm.it4i.cz:. mountpoint -` - -Using sshfs, the users Anselm home directory will be mounted on your -local computer, just like an external disk. - -Learn more on ssh, scp and sshfs by reading the manpages - -` -$ man ssh -$ man scp -$ man sshfs -` - -On Windows, use [WinSCP -client](http://winscp.net/eng/download.php) to transfer -the data. The [win-sshfs -client](http://code.google.com/p/win-sshfs/) provides a -way to mount the Anselm filesystems directly as an external disc. - -More information about the shared file systems is available -[here](../../storage.html). - diff --git a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/vpn-access.md b/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/vpn-access.md index 2b4f237033d2eb02b9e8a405fc8d8a7f71831c14..a4e7e0fc465ce7200d9a4376a9dfb8b36fa0265b 100644 --- a/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/vpn-access.md +++ b/docs.it4i/anselm-cluster-documentation/accessing-the-cluster/vpn-access.md @@ -1,58 +1,43 @@ -VPN Access +VPN Access ========== - - Accessing IT4Innovations internal resources via VPN --------------------------------------------------- -**Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS -patch** -Workaround can be found at -[https://docs.it4i.cz/vpn-connection-fail-in-win-8.1](../../vpn-connection-fail-in-win-8.1.html) - - +>**Failed to initialize connection subsystem Win 8.1 - 02-10-15 MS patch** +Workaround can be found at [https://docs.it4i.cz/vpn-connection-fail-in-win-8.1](../../vpn-connection-fail-in-win-8.1.html) -For using resources and licenses which are located at IT4Innovations -local network, it is necessary to VPN connect to this network. -We use Cisco AnyConnect Secure Mobility Client, which is supported on -the following operating systems: +For using resources and licenses which are located at IT4Innovations local network, it is necessary to VPN connect to this network. We use Cisco AnyConnect Secure Mobility Client, which is supported on the following operating systems: -- >Windows XP -- >Windows Vista -- >Windows 7 -- >Windows 8 -- >Linux -- >MacOS +- Windows XP +- Windows Vista +- Windows 7 +- Windows 8 +- Linux +- MacOS It is impossible to connect to VPN from other operating systems. VPN client installation ------------------------------------ -You can install VPN client from web interface after successful login -with LDAP credentials on address <https://vpn1.it4i.cz/anselm> +You can install VPN client from web interface after successful login with LDAP credentials on address <https://vpn1.it4i.cz/anselm>  -According to the Java settings after login, the client either -automatically installs, or downloads installation file for your -operating system. It is necessary to allow start of installation tool -for automatic installation. +According to the Java settings after login, the client either automatically installs, or downloads installation file for your operating system. It is necessary to allow start of installation tool for automatic installation.  -access](../executionaccess.jpg/@@images/4d6e7cb7-9aa7-419c-9583-6dfd92b2c015.jpeg "Execution access") -access + +  -After successful installation, VPN connection will be established and -you can use available resources from IT4I network. +After successful installation, VPN connection will be established and you can use available resources from IT4I network.  -If your Java setting doesn't allow automatic installation, you can -download installation file and install VPN client manually. +If your Java setting doesn't allow automatic installation, you can download installation file and install VPN client manually.  @@ -60,22 +45,18 @@ After you click on the link, download of installation file will start.  -After successful download of installation file, you have to execute this -tool with administrator's rights and install VPN client manually. +After successful download of installation file, you have to execute this tool with administrator's rights and install VPN client manually. Working with VPN client ----------------------- -You can use graphical user interface or command line interface to run -VPN client on all supported operating systems. We suggest using GUI. +You can use graphical user interface or command line interface to run VPN client on all supported operating systems. We suggest using GUI. -Before the first login to VPN, you have to fill -URL **https://vpn1.it4i.cz/anselm** into the text field. +Before the first login to VPN, you have to fill URL **https://vpn1.it4i.cz/anselm** into the text field.  -After you click on the Connect button, you must fill your login -credentials. +After you click on the Connect button, you must fill your login credentials.  @@ -84,15 +65,11 @@ If everything works, you can see a lock in the Cisco tray icon.  -If you right-click on this icon, you will see a context menu in which -you can control the VPN connection. +If you right-click on this icon, you will see a context menu in which you can control the VPN connection.  -When you connect to the VPN for the first time, the client downloads the -profile and creates a new item "ANSELM" in the connection list. For -subsequent connections, it is not necessary to re-enter the URL address, -but just select the corresponding item. +When you connect to the VPN for the first time, the client downloads the profile and creates a new item "ANSELM" in the connection list. For subsequent connections, it is not necessary to re-enter the URL address, but just select the corresponding item.  @@ -100,11 +77,9 @@ Then AnyConnect automatically proceeds like in the case of first logon.  -After a successful logon, you can see a green circle with a tick mark on -the lock icon. +After a successful logon, you can see a green circle with a tick mark on the lock icon.  -For disconnecting, right-click on the AnyConnect client icon in the -system tray and select **VPN Disconnect**. +For disconnecting, right-click on the AnyConnect client icon in the system tray and select **VPN Disconnect**. diff --git a/docs.it4i/anselm-cluster-documentation/compute-nodes.md b/docs.it4i/anselm-cluster-documentation/compute-nodes.md index 18ff5199a3a32582e6c25ce3acac1eae7d303e31..ce32d1d6bba053066155adfead818b7acc4dcdae 100644 --- a/docs.it4i/anselm-cluster-documentation/compute-nodes.md +++ b/docs.it4i/anselm-cluster-documentation/compute-nodes.md @@ -1,190 +1,52 @@ -Compute Nodes +Compute Nodes ============= - - Nodes Configuration ------------------- - -Anselm is cluster of x86-64 Intel based nodes built on Bull Extreme -Computing bullx technology. The cluster contains four types of compute -nodes. +Anselm is cluster of x86-64 Intel based nodes built on Bull Extreme Computing bullx technology. The cluster contains four types of compute nodes. ###Compute Nodes Without Accelerator -- - - 180 nodes - - - -- - - 2880 cores in total - - - -- - - two Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node - - - -- - - 64 GB of physical memory per node - - - -- one 500GB SATA 2,5” 7,2 krpm HDD per node -- - - bullx B510 blade servers - - - -- - - cn[1-180] - - +- 180 nodes +- 2880 cores in total +- two Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node +- 64 GB of physical memory per node +- one 500GB SATA 2,5” 7,2 krpm HDD per node +- bullx B510 blade servers +- cn[1-180] ###Compute Nodes With GPU Accelerator -- - - 23 nodes - - - -- - - 368 cores in total - - - -- - - two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node - - - -- - - 96 GB of physical memory per node - - - -- one 500GB SATA 2,5” 7,2 krpm HDD per node -- - - GPU accelerator 1x NVIDIA Tesla Kepler K20 per node - - - -- - - bullx B515 blade servers - - - -- - - cn[181-203] - - +- 23 nodes +- 368 cores in total +- two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node +- 96 GB of physical memory per node +- one 500GB SATA 2,5” 7,2 krpm HDD per node +- GPU accelerator 1x NVIDIA Tesla Kepler K20 per node +- bullx B515 blade servers +- cn[181-203] ###Compute Nodes With MIC Accelerator -- - - 4 nodes - - - -- - - 64 cores in total - - - -- - - two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node - - - -- - - 96 GB of physical memory per node - - - -- one 500GB SATA 2,5” 7,2 krpm HDD per node -- - - MIC accelerator 1x Intel Phi 5110P per node - - - -- - - bullx B515 blade servers - - - -- - - cn[204-207] - - +- 4 nodes +- 64 cores in total +- two Intel Sandy Bridge E5-2470, 8-core, 2.3GHz processors per node +- 96 GB of physical memory per node +- one 500GB SATA 2,5” 7,2 krpm HDD per node +- MIC accelerator 1x Intel Phi 5110P per node +- bullx B515 blade servers +- cn[204-207] ###Fat Compute Nodes -- - - 2 nodes - - - -- - - 32 cores in total - - - -- - - 2 Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node - - - -- - - 512 GB of physical memory per node - - - -- two 300GB SAS 3,5”15krpm HDD (RAID1) per node -- - - two 100GB SLC SSD per node - - - -- - - bullx R423-E3 servers - - - -- - - cn[208-209] - - - - +- 2 nodes +- 32 cores in total +- 2 Intel Sandy Bridge E5-2665, 8-core, 2.4GHz processors per node +- 512 GB of physical memory per node +- two 300GB SAS 3,5”15krpm HDD (RAID1) per node +- two 100GB SLC SSD per node +- bullx R423-E3 servers +- cn[208-209]  @@ -202,10 +64,7 @@ nodes. Processor Architecture ---------------------- -Anselm is equipped with Intel Sandy Bridge processors Intel Xeon E5-2665 -(nodes without accelerator and fat nodes) and Intel Xeon E5-2470 (nodes -with accelerator). Processors support Advanced Vector Extensions (AVX) -256-bit instruction set. +Anselm is equipped with Intel Sandy Bridge processors Intel Xeon E5-2665 (nodes without accelerator and fat nodes) and Intel Xeon E5-2470 (nodes with accelerator). Processors support Advanced Vector Extensions (AVX) 256-bit instruction set. ### Intel Sandy Bridge E5-2665 Processor @@ -214,13 +73,8 @@ with accelerator). Processors support Advanced Vector Extensions (AVX) - peak performance: 19.2 Gflop/s per core - caches: - - - L2: 256 KB per core - L3: 20 MB per processor - - - - memory bandwidth at the level of the processor: 51.2 GB/s ### Intel Sandy Bridge E5-2470 Processor @@ -230,31 +84,23 @@ with accelerator). Processors support Advanced Vector Extensions (AVX) - peak performance: 18.4 Gflop/s per core - caches: - - - L2: 256 KB per core - L3: 20 MB per processor - - - - memory bandwidth at the level of the processor: 38.4 GB/s - - -Nodes equipped with Intel Xeon E5-2665 CPU have set PBS resource -attribute cpu_freq = 24, nodes equipped with Intel Xeon E5-2470 CPU -have set PBS resource attribute cpu_freq = 23. +Nodes equipped with Intel Xeon E5-2665 CPU have set PBS resource attribute cpu_freq = 24, nodes equipped with Intel Xeon E5-2470 CPU have set PBS resource attribute cpu_freq = 23. -` +```bash $ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16:cpu_freq=24 -I -` +``` In this example, we allocate 4 nodes, 16 cores at 2.4GHhz per node. -Intel Turbo Boost Technology is used by default, you can disable it for -all nodes of job by using resource attribute cpu_turbo_boost. +Intel Turbo Boost Technology is used by default, you can disable it for all nodes of job by using resource attribute cpu_turbo_boost. +```bash $ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16 -l cpu_turbo_boost=0 -I +``` Memory Architecture ------------------- @@ -263,44 +109,28 @@ Memory Architecture - 2 sockets - Memory Controllers are integrated into processors. - - - 8 DDR3 DIMMS per node - 4 DDR3 DIMMS per CPU - 1 DDR3 DIMMS per channel - Data rate support: up to 1600MT/s - - - - Populated memory: 8x 8GB DDR3 DIMM 1600Mhz ### Compute Node With GPU or MIC Accelerator - 2 sockets - Memory Controllers are integrated into processors. - - - 6 DDR3 DIMMS per node - 3 DDR3 DIMMS per CPU - 1 DDR3 DIMMS per channel - Data rate support: up to 1600MT/s - - - - Populated memory: 6x 16GB DDR3 DIMM 1600Mhz ### Fat Compute Node - 2 sockets - Memory Controllers are integrated into processors. - - - 16 DDR3 DIMMS per node - 8 DDR3 DIMMS per CPU - 2 DDR3 DIMMS per channel - Data rate support: up to 1600MT/s - - - -- Populated memory: 16x 32GB DDR3 DIMM 1600Mhz - +- Populated memory: 16x 32GB DDR3 DIMM 1600Mhz \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/environment-and-modules.md b/docs.it4i/anselm-cluster-documentation/environment-and-modules.md index 80ac34c467c727502fa3aff1eadafcf0098ee80b..b01936587e7692755b0eb3b7f9514e021c80e069 100644 --- a/docs.it4i/anselm-cluster-documentation/environment-and-modules.md +++ b/docs.it4i/anselm-cluster-documentation/environment-and-modules.md @@ -1,15 +1,11 @@ -Environment and Modules +Environment and Modules ======================= - - ### Environment Customization -After logging in, you may want to configure the environment. Write your -preferred path definitions, aliases, functions and module loads in the -.bashrc file +After logging in, you may want to configure the environment. Write your preferred path definitions, aliases, functions and module loads in the .bashrc file -` +```bash # ./bashrc # Source global definitions @@ -26,89 +22,64 @@ if [ -n "$SSH_TTY" ] then module list # Display loaded modules fi -` +``` -Do not run commands outputing to standard output (echo, module list, -etc) in .bashrc for non-interactive SSH sessions. It breaks fundamental -functionality (scp, PBS) of your account! Take care for SSH session -interactivity for such commands as - stated in the previous example. -in the previous example. +>Do not run commands outputing to standard output (echo, module list, etc) in .bashrc for non-interactive SSH sessions. It breaks fundamental functionality (scp, PBS) of your account! Take care for SSH session interactivity for such commands as stated in the previous example. ### Application Modules -In order to configure your shell for running particular application on -Anselm we use Module package interface. +In order to configure your shell for running particular application on Anselm we use Module package interface. -The modules set up the application paths, library paths and environment -variables for running particular application. +>The modules set up the application paths, library paths and environment variables for running particular application. -We have also second modules repository. This modules repository is -created using tool called EasyBuild. On Salomon cluster, all modules -will be build by this tool. If you want to use software from this -modules repository, please follow instructions in section [Application -Modules -Path Expansion](environment-and-modules.html#EasyBuild). +>We have also second modules repository. This modules repository is created using tool called EasyBuild. On Salomon cluster, all modules will be build by this tool. If you want to use software from this modules repository, please follow instructions in section [Application Modules Path Expansion](environment-and-modules.html#EasyBuild). -The modules may be loaded, unloaded and switched, according to momentary -needs. +The modules may be loaded, unloaded and switched, according to momentary needs. To check available modules use -` +```bash $ module avail -` +``` To load a module, for example the octave module use -` +```bash $ module load octave -` +``` -loading the octave module will set up paths and environment variables of -your active shell such that you are ready to run the octave software +loading the octave module will set up paths and environment variables of your active shell such that you are ready to run the octave software To check loaded modules use -` +```bash $ module list -` +```  To unload a module, for example the octave module use -` +```bash $ module unload octave -` +``` Learn more on modules by reading the module man page -` +```bash $ man module -` +``` Following modules set up the development environment -PrgEnv-gnu sets up the GNU development environment in conjunction with -the bullx MPI library +PrgEnv-gnu sets up the GNU development environment in conjunction with the bullx MPI library -PrgEnv-intel sets up the INTEL development environment in conjunction -with the Intel MPI library +PrgEnv-intel sets up the INTEL development environment in conjunction with the Intel MPI library ### Application Modules Path Expansion -All application modules on Salomon cluster (and further) will be build -using tool called -[EasyBuild](http://hpcugent.github.io/easybuild/ "EasyBuild"). -In case that you want to use some applications that are build by -EasyBuild already, you have to modify your MODULEPATH environment -variable. +All application modules on Salomon cluster (and further) will be build using tool called [EasyBuild](http://hpcugent.github.io/easybuild/ "EasyBuild"). In case that you want to use some applications that are build by EasyBuild already, you have to modify your MODULEPATH environment variable. -` +```bash export MODULEPATH=$MODULEPATH:/apps/easybuild/modules/all/ -` - -This command expands your searched paths to modules. You can also add -this command to the .bashrc file to expand paths permanently. After this -command, you can use same commands to list/add/remove modules as is -described above. +``` +This command expands your searched paths to modules. You can also add this command to the .bashrc file to expand paths permanently. After this command, you can use same commands to list/add/remove modules as is described above. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/hardware-overview.md b/docs.it4i/anselm-cluster-documentation/hardware-overview.md index e70624ac373dd777964cb9144416af656f6bd55a..32110d310a1cb39b0f1cf4eb60b6cd95caee843e 100644 --- a/docs.it4i/anselm-cluster-documentation/hardware-overview.md +++ b/docs.it4i/anselm-cluster-documentation/hardware-overview.md @@ -1,356 +1,516 @@ -Hardware Overview +Hardware Overview ================= - - -The Anselm cluster consists of 209 computational nodes named cn[1-209] -of which 180 are regular compute nodes, 23 GPU Kepler K20 accelerated -nodes, 4 MIC Xeon Phi 5110 accelerated nodes and 2 fat nodes. Each node -is a powerful x86-64 computer, -equipped with 16 cores (two eight-core Intel Sandy Bridge processors), -at least 64GB RAM, and local hard drive. The user access to the Anselm -cluster is provided by two login nodes login[1,2]. The nodes are -interlinked by high speed InfiniBand and Ethernet networks. All nodes -share 320TB /home disk storage to store the user files. The 146TB shared -/scratch storage is available for the scratch data. - -The Fat nodes are equipped with large amount (512GB) of memory. -Virtualization infrastructure provides resources to run long term -servers and services in virtual mode. Fat nodes and virtual servers may -access 45 TB of dedicated block storage. Accelerated nodes, fat nodes, -and virtualization infrastructure are available [upon -request](https://support.it4i.cz/rt) made by a PI. - -Schematic representation of the Anselm cluster. Each box represents a -node (computer) or storage capacity: - -User-oriented infrastructure -Storage -Management infrastructure - -------- - login1 - login2 - dm1 - -------- - -Rack 01, Switch isw5 - - -------- |---|---|---- -------------- -------------- -------------- - cn186 cn187 cn188 cn189 - cn181 cn182 cn183 cn184 cn185 - -------- |---|---|---- -------------- -------------- -------------- - -Rack 01, Switch isw4 - -cn29 -cn30 -cn31 -cn32 -cn33 -cn34 -cn35 -cn36 -cn19 -cn20 -cn21 -cn22 -cn23 -cn24 -cn25 -cn26 -cn27 -cn28 -<col width="100%" /> - | <p> <p>Lustre FS<p>/home320TB<p> <p> \ | - |Lustre FS<p>/scratch146TB\ | - -Management -nodes -Block storage -45 TB -Virtualization -infrastructure -servers -... -Srv node -Srv node -Srv node -... -Rack 01, Switch isw0 - -cn11 -cn12 -cn13 -cn14 -cn15 -cn16 -cn17 -cn18 -cn1 -cn2 -cn3 -cn4 -cn5 -cn6 -cn7 -cn8 -cn9 -cn10 -Rack 02, Switch isw10 - -cn73 -cn74 -cn75 -cn76 -cn77 -cn78 -cn79 -cn80 -cn190 -cn191 -cn192 -cn205 -cn206 -Rack 02, Switch isw9 - -cn65 -cn66 -cn67 -cn68 -cn69 -cn70 -cn71 -cn72 -cn55 -cn56 -cn57 -cn58 -cn59 -cn60 -cn61 -cn62 -cn63 -cn64 -Rack 02, Switch isw6 - -cn47 -cn48 -cn49 -cn50 -cn51 -cn52 -cn53 -cn54 -cn37 -cn38 -cn39 -cn40 -cn41 -cn42 -cn43 -cn44 -cn45 -cn46 -Rack 03, Switch isw15 - -cn193 -cn194 -cn195 -cn207 -cn117 -cn118 -cn119 -cn120 -cn121 -cn122 -cn123 -cn124 -cn125 -cn126 -Rack 03, Switch isw14 - -cn109 -cn110 -cn111 -cn112 -cn113 -cn114 -cn115 -cn116 -cn99 -cn100 -cn101 -cn102 -cn103 -cn104 -cn105 -cn106 -cn107 -cn108 -Rack 03, Switch isw11 - -cn91 -cn92 -cn93 -cn94 -cn95 -cn96 -cn97 -cn98 -cn81 -cn82 -cn83 -cn84 -cn85 -cn86 -cn87 -cn88 -cn89 -cn90 -Rack 04, Switch isw20 - -cn173 -cn174 -cn175 -cn176 -cn177 -cn178 -cn179 -cn180 -cn163 -cn164 -cn165 -cn166 -cn167 -cn168 -cn169 -cn170 -cn171 -cn172 -Rack 04, **Switch** isw19 - -cn155 -cn156 -cn157 -cn158 -cn159 -cn160 -cn161 -cn162 -cn145 -cn146 -cn147 -cn148 -cn149 -cn150 -cn151 -cn152 -cn153 -cn154 -Rack 04, Switch isw16 - -cn137 -cn138 -cn139 -cn140 -cn141 -cn142 -cn143 -cn144 -cn127 -cn128 -cn129 -cn130 -cn131 -cn132 -cn133 -cn134 -cn135 -cn136 -Rack 05, Switch isw21 - - -------- |---|---|---- -------------- -------------- -------------- - cn201 cn202 cn203 cn204 - cn196 cn197 cn198 cn199 cn200 - -------- |---|---|---- -------------- -------------- -------------- - - ---------------- - Fat node cn208 - Fat node cn209 - ... - ---------------- - -The cluster compute nodes cn[1-207] are organized within 13 chassis. +The Anselm cluster consists of 209 computational nodes named cn[1-209] of which 180 are regular compute nodes, 23 GPU Kepler K20 accelerated nodes, 4 MIC Xeon Phi 5110 accelerated nodes and 2 fat nodes. Each node is a powerful x86-64 computer, equipped with 16 cores (two eight-core Intel Sandy Bridge processors), at least 64GB RAM, and local hard drive. The user access to the Anselm cluster is provided by two login nodes login[1,2]. The nodes are interlinked by high speed InfiniBand and Ethernet networks. All nodes share 320TB /home disk storage to store the user files. The 146TB shared /scratch storage is available for the scratch data. + +The Fat nodes are equipped with large amount (512GB) of memory. Virtualization infrastructure provides resources to run long term servers and services in virtual mode. Fat nodes and virtual servers may access 45 TB of dedicated block storage. Accelerated nodes, fat nodes, and virtualization infrastructure are available [upon request](https://support.it4i.cz/rt) made by a PI. + +Schematic representation of the Anselm cluster. Each box represents a node (computer) or storage capacity: + +<table> +<tbody> +<tr><th colspan="3">User-oriented infrastructure</th><th>Storage</th><th>Management infrastructure</th></tr> +<tr> +<td title="Login nodes"> +<table> +<tbody> +<tr> +<td>login1</td> +</tr> +<tr> +<td>login2</td> +</tr> +<tr> +<td>dm1</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 01, Switch isw5<br></strong></p> +<table> +<tbody> +<tr> +<td>cn186</td> +<td>cn187</td> +<td></td> +<td>cn188</td> +<td>cn189</td> +</tr> +<tr> +<td>cn181</td> +<td>cn182</td> +<td>cn183</td> +<td>cn184</td> +<td>cn185</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 01, Switch isw4<br></strong></p> +<table> +<tbody> +<tr> +<td>cn29</td> +<td>cn30</td> +<td>cn31</td> +<td>cn32</td> +<td colspan="2"></td> +<td>cn33</td> +<td>cn34</td> +<td>cn35</td> +<td>cn36</td> +</tr> +<tr> +<td>cn19</td> +<td>cn20</td> +<td>cn21</td> +<td>cn22</td> +<td>cn23</td> +<td>cn24</td> +<td>cn25</td> +<td>cn26</td> +<td>cn27</td> +<td>cn28</td> +</tr> +</tbody> +</table> +</td> +<td rowspan="5" title="Storage"> +<table> +<tbody> +<tr> +<td> +<p> </p> +<p> </p> +<p>Lustre FS</p> +<p>/home<br>320TB</p> +<p> </p> +<p> </p> +</td> +</tr> +<tr> +<td> +<p>Lustre FS</p> +<p>/scratch<br>146TB</p> +</td> +</tr> +</tbody> +</table> +</td> +<td rowspan="5" title="Management infrastructure"> +<table> +<tbody> +<tr> +<td>Management<br>nodes</td> +<td rowspan="10">Block storage<br>45 TB</td> +</tr> +<tr> +<td>Virtualization<br>infrastructure<br>servers</td> +</tr> +<tr></tr> +<tr></tr> +<tr></tr> +<tr> +<td>...</td> +</tr> +<tr> +<td>Srv node</td> +</tr> +<tr> +<td>Srv node</td> +</tr> +<tr> +<td>Srv node</td> +</tr> +<tr> +<td>...</td> +</tr> +</tbody> +</table> +</td> +</tr> +<tr> +<td title="Compute nodes"> +<p><strong>Rack 01, Switch isw0<br></strong></p> +<table> +<tbody> +<tr> +<td>cn11</td> +<td>cn12</td> +<td>cn13</td> +<td>cn14</td> +<td colspan="2"></td> +<td>cn15</td> +<td>cn16</td> +<td>cn17</td> +<td>cn18</td> +</tr> +<tr> +<td>cn1</td> +<td>cn2</td> +<td>cn3</td> +<td>cn4</td> +<td>cn5</td> +<td>cn6</td> +<td>cn7</td> +<td>cn8</td> +<td>cn9</td> +<td>cn10</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 02, Switch isw10<br></strong></p> +<table> +<tbody> +<tr> +<td>cn73</td> +<td>cn74</td> +<td>cn75</td> +<td>cn76</td> +<td colspan="2"></td> +<td>cn77</td> +<td>cn78</td> +<td>cn79</td> +<td>cn80</td> +</tr> +<tr> +<td colspan="2">cn190</td> +<td colspan="2">cn191</td> +<td colspan="2">cn192</td> +<td colspan="2">cn205</td> +<td colspan="2">cn206</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 02, Switch isw9<br></strong></p> +<table> +<tbody> +<tr> +<td>cn65</td> +<td>cn66</td> +<td>cn67</td> +<td>cn68</td> +<td colspan="2"></td> +<td>cn69</td> +<td>cn70</td> +<td>cn71</td> +<td>cn72</td> +</tr> +<tr> +<td>cn55</td> +<td>cn56</td> +<td>cn57</td> +<td>cn58</td> +<td>cn59</td> +<td>cn60</td> +<td>cn61</td> +<td>cn62</td> +<td>cn63</td> +<td>cn64</td> +</tr> +</tbody> +</table> +</td> +</tr> +<tr> +<td title="Compute nodes"> +<p><strong>Rack 02, Switch isw6<br></strong></p> +<table> +<tbody> +<tr> +<td>cn47</td> +<td>cn48</td> +<td>cn49</td> +<td>cn50</td> +<td colspan="2"></td> +<td>cn51</td> +<td>cn52</td> +<td>cn53</td> +<td>cn54</td> +</tr> +<tr> +<td>cn37</td> +<td>cn38</td> +<td>cn39</td> +<td>cn40</td> +<td>cn41</td> +<td>cn42</td> +<td>cn43</td> +<td>cn44</td> +<td>cn45</td> +<td>cn46</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 03, Switch isw15<br></strong></p> +<table> +<tbody> +<tr> +<td colspan="2">cn193</td> +<td colspan="2">cn194</td> +<td colspan="2"></td> +<td colspan="2">cn195</td> +<td colspan="2">cn207</td> +</tr> +<tr> +<td>cn117</td> +<td>cn118</td> +<td>cn119</td> +<td>cn120</td> +<td>cn121</td> +<td>cn122</td> +<td>cn123</td> +<td>cn124</td> +<td>cn125</td> +<td>cn126</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 03, Switch isw14<br></strong></p> +<table> +<tbody> +<tr> +<td>cn109</td> +<td>cn110</td> +<td>cn111</td> +<td>cn112</td> +<td colspan="2"></td> +<td>cn113</td> +<td>cn114</td> +<td>cn115</td> +<td>cn116</td> +</tr> +<tr> +<td>cn99</td> +<td>cn100</td> +<td>cn101</td> +<td>cn102</td> +<td>cn103</td> +<td>cn104</td> +<td>cn105</td> +<td>cn106</td> +<td>cn107</td> +<td>cn108</td> +</tr> +</tbody> +</table> +</td> +</tr> +<tr> +<td title="Compute nodes"> +<p><strong>Rack 03, Switch isw11<br></strong></p> +<table> +<tbody> +<tr> +<td>cn91</td> +<td>cn92</td> +<td>cn93</td> +<td>cn94</td> +<td colspan="2"></td> +<td>cn95</td> +<td>cn96</td> +<td>cn97</td> +<td>cn98</td> +</tr> +<tr> +<td>cn81</td> +<td>cn82</td> +<td>cn83</td> +<td>cn84</td> +<td>cn85</td> +<td>cn86</td> +<td>cn87</td> +<td>cn88</td> +<td>cn89</td> +<td>cn90</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 04, Switch isw20<br></strong></p> +<table> +<tbody> +<tr> +<td>cn173</td> +<td>cn174</td> +<td>cn175</td> +<td>cn176</td> +<td colspan="2"></td> +<td>cn177</td> +<td>cn178</td> +<td>cn179</td> +<td>cn180</td> +</tr> +<tr> +<td>cn163</td> +<td>cn164</td> +<td>cn165</td> +<td>cn166</td> +<td>cn167</td> +<td>cn168</td> +<td>cn169</td> +<td>cn170</td> +<td>cn171</td> +<td>cn172</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 04,<strong> Switch </strong>isw19<br></strong></p> +<table> +<tbody> +<tr> +<td>cn155</td> +<td>cn156</td> +<td>cn157</td> +<td>cn158</td> +<td colspan="2"></td> +<td>cn159</td> +<td>cn160</td> +<td>cn161</td> +<td>cn162</td> +</tr> +<tr> +<td>cn145</td> +<td>cn146</td> +<td>cn147</td> +<td>cn148</td> +<td>cn149</td> +<td>cn150</td> +<td>cn151</td> +<td>cn152</td> +<td>cn153</td> +<td>cn154</td> +</tr> +</tbody> +</table> +</td> +</tr> +<tr> +<td title="Compute nodes"> +<p><strong>Rack 04, Switch isw16<br></strong></p> +<table> +<tbody> +<tr> +<td>cn137</td> +<td>cn138</td> +<td>cn139</td> +<td>cn140</td> +<td colspan="2"></td> +<td>cn141</td> +<td>cn142</td> +<td>cn143</td> +<td>cn144</td> +</tr> +<tr> +<td>cn127</td> +<td>cn128</td> +<td>cn129</td> +<td>cn130</td> +<td>cn131</td> +<td>cn132</td> +<td>cn133</td> +<td>cn134</td> +<td>cn135</td> +<td>cn136</td> +</tr> +</tbody> +</table> +</td> +<td title="Compute nodes"> +<p><strong>Rack 05, Switch isw21<br></strong></p> +<table> +<tbody> +<tr> +<td>cn201</td> +<td>cn202</td> +<td></td> +<td>cn203</td> +<td>cn204</td> +</tr> +<tr> +<td>cn196</td> +<td>cn197</td> +<td>cn198</td> +<td>cn199</td> +<td>cn200</td> +</tr> +</tbody> +</table> +</td> +<td title="Fat nodes"> +<table> +<tbody> +<tr> +<td>Fat node cn208</td> +</tr> +<tr> +<td>Fat node cn209</td> +</tr> +<tr> +<td>...</td> +</tr> +</tbody> +</table> +</td> +</tr> +</tbody> +</table> + +The cluster compute nodes cn[1-207] are organized within 13 chassis. There are four types of compute nodes: - 180 compute nodes without the accelerator -- 23 compute nodes with GPU accelerator - equipped with NVIDIA Tesla - Kepler K20 -- 4 compute nodes with MIC accelerator - equipped with Intel Xeon Phi - 5110P +- 23 compute nodes with GPU accelerator - equipped with NVIDIA Tesla Kepler K20 +- 4 compute nodes with MIC accelerator - equipped with Intel Xeon Phi 5110P - 2 fat nodes - equipped with 512GB RAM and two 100GB SSD drives [More about Compute nodes](compute-nodes.html). -GPU and accelerated nodes are available upon request, see the [Resources -Allocation -Policy](resource-allocation-and-job-execution/resources-allocation-policy.html). - -All these nodes are interconnected by fast -InfiniBand class="WYSIWYG_LINK">QDR -network and Ethernet network. [More about the -Network](network.html). -Every chassis provides Infiniband switch, marked **isw**, connecting all -nodes in the chassis, as well as connecting the chassis to the upper -level switches. - -All nodes share 360TB /home disk storage to store user files. The 146TB -shared /scratch storage is available for the scratch data. These file -systems are provided by Lustre parallel file system. There is also local -disk storage available on all compute nodes /lscratch. [More about - -Storage](storage.html). - -The user access to the Anselm cluster is provided by two login nodes -login1, login2, and data mover node dm1. [More about accessing -cluster.](accessing-the-cluster.html) - - The parameters are summarized in the following tables: +GPU and accelerated nodes are available upon request, see the [Resources Allocation Policy](resource-allocation-and-job-execution/resources-allocation-policy.html). + +All these nodes are interconnected by fast InfiniBand network and Ethernet network. [More about the Network](network.html). +Every chassis provides Infiniband switch, marked **isw**, connecting all nodes in the chassis, as well as connecting the chassis to the upper level switches. + +All nodes share 360TB /home disk storage to store user files. The 146TB shared /scratch storage is available for the scratch data. These file systems are provided by Lustre parallel file system. There is also local disk storage available on all compute nodes /lscratch. [More about Storage](storage.html). + +The user access to the Anselm cluster is provided by two login nodes login1, login2, and data mover node dm1. [More about accessing cluster.](accessing-the-cluster.html) + +The parameters are summarized in the following tables: + +|**In general**|| +|---|---| +|Primary purpose|High Performance Computing| +|Architecture of compute nodes|x86-64| +|Operating system|Linux| +|[**Compute nodes**](compute-nodes.html)|| +|Totally|209| +|Processor cores|16 (2x8 cores)| +|RAM|min. 64 GB, min. 4 GB per core| +|Local disk drive|yes - usually 500 GB| +|Compute network|InfiniBand QDR, fully non-blocking, fat-tree| +|w/o accelerator|180, cn[1-180]| +|GPU accelerated|23, cn[181-203]| +|MIC accelerated|4, cn[204-207]| +|Fat compute nodes|2, cn[208-209]| +|**In total**|| +|Total theoretical peak performance (Rpeak)|94 Tflop/s| +|Total max. LINPACK performance (Rmax)|73 Tflop/s| +|Total amount of RAM|15.136 TB| -In general** -Primary purpose -High Performance Computing -Architecture of compute nodes -x86-64 -Operating system -Linux -[**Compute nodes**](compute-nodes.html) -Totally -209 -Processor cores -16 (2x8 cores) -RAM -min. 64 GB, min. 4 GB per core -Local disk drive -yes - usually 500 GB -Compute network -InfiniBand QDR, fully non-blocking, fat-tree -w/o accelerator -180, cn[1-180] -GPU accelerated -23, cn[181-203] -MIC accelerated -4, cn[204-207] -Fat compute nodes -2, cn[208-209] -In total** -Total theoretical peak performance (Rpeak) -94 Tflop/s -Total max. LINPACK performance (Rmax) -73 Tflop/s -Total amount of RAM -15.136 TB |Node|Processor|Memory|Accelerator| |---|---|---|---| |w/o accelerator|2x Intel Sandy Bridge E5-2665, 2.4GHz|64GB|-| @@ -358,8 +518,5 @@ Total amount of RAM |MIC accelerated|2x Intel Sandy Bridge E5-2470, 2.3GHz|96GB|Intel Xeon Phi P5110| |Fat compute node|2x Intel Sandy Bridge E5-2665, 2.4GHz|512GB|-| - For more details please refer to the [Compute -nodes](compute-nodes.html), -[Storage](storage.html), and -[Network](network.html). +For more details please refer to the [Compute nodes](compute-nodes.html), [Storage](storage.html), and [Network](network.html). diff --git a/docs.it4i/anselm-cluster-documentation/introduction.md b/docs.it4i/anselm-cluster-documentation/introduction.md index 68a2e10aa3b2079f2fb1dce3b25653fb7f494ccc..eb0862b0c5948b947b442444867fabcf3c25416c 100644 --- a/docs.it4i/anselm-cluster-documentation/introduction.md +++ b/docs.it4i/anselm-cluster-documentation/introduction.md @@ -1,39 +1,13 @@ -Introduction +Introduction ============ - +Welcome to Anselm supercomputer cluster. The Anselm cluster consists of 209 compute nodes, totaling 3344 compute cores with 15TB RAM and giving over 94 Tflop/s theoretical peak performance. Each node is a powerful x86-64 computer, equipped with 16 cores, at least 64GB RAM, and 500GB harddrive. Nodes are interconnected by fully non-blocking fat-tree Infiniband network and equipped with Intel Sandy Bridge processors. A few nodes are also equipped with NVIDIA Kepler GPU or Intel Xeon Phi MIC accelerators. Read more in [Hardware Overview](hardware-overview.html). -Welcome to Anselm supercomputer cluster. The Anselm cluster consists of -209 compute nodes, totaling 3344 compute cores with 15TB RAM and giving -over 94 Tflop/s theoretical peak performance. Each node is a -powerful x86-64 computer, equipped with 16 -cores, at least 64GB RAM, and 500GB harddrive. Nodes are interconnected -by fully non-blocking fat-tree Infiniband network and equipped with -Intel Sandy Bridge processors. A few nodes are also equipped with NVIDIA -Kepler GPU or Intel Xeon Phi MIC accelerators. Read more in [Hardware -Overview](hardware-overview.html). +The cluster runs bullx Linux [](http://www.bull.com/bullx-logiciels/systeme-exploitation.html)[operating system](software/operating-system.html), which is compatible with the RedHat [ Linux family.](http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg) We have installed a wide range of [software](software.1.html) packages targeted at different scientific domains. These packages are accessible via the [modules environment](environment-and-modules.html). -The cluster runs bullx Linux [ -](http://www.bull.com/bullx-logiciels/systeme-exploitation.html)[operating -system](software/operating-system.html), which is -compatible with the RedHat [ -Linux -family.](http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg) -We have installed a wide range of -[software](software.1.html) packages targeted at -different scientific domains. These packages are accessible via the -[modules environment](environment-and-modules.html). +User data shared file-system (HOME, 320TB) and job data shared file-system (SCRATCH, 146TB) are available to users. -User data shared file-system (HOME, 320TB) and job data shared -file-system (SCRATCH, 146TB) are available to users. +The PBS Professional workload manager provides [computing resources allocations and job execution](resource-allocation-and-job-execution.html). -The PBS Professional workload manager provides [computing resources -allocations and job -execution](resource-allocation-and-job-execution.html). - -Read more on how to [apply for -resources](../get-started-with-it4innovations/applying-for-resources.html), -[obtain login -credentials,](../get-started-with-it4innovations/obtaining-login-credentials.html) -and [access the cluster](accessing-the-cluster.html). +Read more on how to [apply for resources](../get-started-with-it4innovations/applying-for-resources.html), [obtain login credentials,](../get-started-with-it4innovations/obtaining-login-credentials.html) and [access the cluster](accessing-the-cluster.html). diff --git a/docs.it4i/anselm-cluster-documentation/network.md b/docs.it4i/anselm-cluster-documentation/network.md index b897039fe15a2ddc1374459f610af810a773f42a..38e969fad63ecb1fc95256e50d1aa87fdaf454a3 100644 --- a/docs.it4i/anselm-cluster-documentation/network.md +++ b/docs.it4i/anselm-cluster-documentation/network.md @@ -1,46 +1,26 @@ -Network +Network ======= - - -All compute and login nodes of Anselm are interconnected by -[Infiniband](http://en.wikipedia.org/wiki/InfiniBand) -QDR network and by Gigabit -[Ethernet](http://en.wikipedia.org/wiki/Ethernet) -network. Both networks may be used to transfer user data. +All compute and login nodes of Anselm are interconnected by [Infiniband](http://en.wikipedia.org/wiki/InfiniBand) QDR network and by Gigabit [Ethernet](http://en.wikipedia.org/wiki/Ethernet) network. Both networks may be used to transfer user data. Infiniband Network ------------------ +All compute and login nodes of Anselm are interconnected by a high-bandwidth, low-latency [Infiniband](http://en.wikipedia.org/wiki/InfiniBand) QDR network (IB 4x QDR, 40 Gbps). The network topology is a fully non-blocking fat-tree. -All compute and login nodes of Anselm are interconnected by a -high-bandwidth, low-latency -[Infiniband](http://en.wikipedia.org/wiki/InfiniBand) -QDR network (IB 4x QDR, 40 Gbps). The network topology is a fully -non-blocking fat-tree. - -The compute nodes may be accessed via the Infiniband network using ib0 -network interface, in address range 10.2.1.1-209. The MPI may be used to -establish native Infiniband connection among the nodes. +The compute nodes may be accessed via the Infiniband network using ib0 network interface, in address range 10.2.1.1-209. The MPI may be used to establish native Infiniband connection among the nodes. -The network provides **2170MB/s** transfer rates via the TCP connection -(single stream) and up to **3600MB/s** via native Infiniband protocol. +>The network provides **2170MB/s** transfer rates via the TCP connection (single stream) and up to **3600MB/s** via native Infiniband protocol. -The Fat tree topology ensures that peak transfer rates are achieved -between any two nodes, independent of network traffic exchanged among -other nodes concurrently. +The Fat tree topology ensures that peak transfer rates are achieved between any two nodes, independent of network traffic exchanged among other nodes concurrently. Ethernet Network ---------------- - -The compute nodes may be accessed via the regular Gigabit Ethernet -network interface eth0, in address range 10.1.1.1-209, or by using -aliases cn1-cn209. -The network provides **114MB/s** transfer rates via the TCP connection. +The compute nodes may be accessed via the regular Gigabit Ethernet network interface eth0, in address range 10.1.1.1-209, or by using aliases cn1-cn209. The network provides **114MB/s** transfer rates via the TCP connection. Example ------- -` +```bash $ qsub -q qexp -l select=4:ncpus=16 -N Name0 ./myjob $ qstat -n -u username Req'd Req'd Elap @@ -51,8 +31,6 @@ Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time $ ssh 10.2.1.110 $ ssh 10.1.1.108 -` - -In this example, we access the node cn110 by Infiniband network via the -ib0 interface, then from cn110 to cn108 by Ethernet network. +``` +In this example, we access the node cn110 by Infiniband network via the ib0 interface, then from cn110 to cn108 by Ethernet network. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/prace.md b/docs.it4i/anselm-cluster-documentation/prace.md index 9d29c080f0a885c9022254e5024020f52f0304ba..745fcd59c53076b9b721ce9f51177285d5d6a3ad 100644 --- a/docs.it4i/anselm-cluster-documentation/prace.md +++ b/docs.it4i/anselm-cluster-documentation/prace.md @@ -1,374 +1,258 @@ -PRACE User Support +PRACE User Support ================== - - Intro ----- +PRACE users coming to Anselm as to TIER-1 system offered through the DECI calls are in general treated as standard users and so most of the general documentation applies to them as well. This section shows the main differences for quicker orientation, but often uses references to the original documentation. PRACE users who don't undergo the full procedure (including signing the IT4I AuP on top of the PRACE AuP) will not have a password and thus access to some services intended for regular users. This can lower their comfort, but otherwise they should be able to use the TIER-1 system as intended. Please see the [Obtaining Login Credentials section](../get-started-with-it4innovations/obtaining-login-credentials/obtaining-login-credentials.html), if the same level of access is required. -PRACE users coming to Anselm as to TIER-1 system offered through the -DECI calls are in general treated as standard users and so most of the -general documentation applies to them as well. This section shows the -main differences for quicker orientation, but often uses references to -the original documentation. PRACE users who don't undergo the full -procedure (including signing the IT4I AuP on top of the PRACE AuP) will -not have a password and thus access to some services intended for -regular users. This can lower their comfort, but otherwise they should -be able to use the TIER-1 system as intended. Please see the [Obtaining -Login Credentials -section](../get-started-with-it4innovations/obtaining-login-credentials/obtaining-login-credentials.html), -if the same level of access is required. - -All general [PRACE User -Documentation](http://www.prace-ri.eu/user-documentation/) -should be read before continuing reading the local documentation here. +All general [PRACE User Documentation](http://www.prace-ri.eu/user-documentation/) should be read before continuing reading the local documentation here. Help and Support -------------------- +If you have any troubles, need information, request support or want to install additional software, please use [PRACE Helpdesk](http://www.prace-ri.eu/helpdesk-guide264/). -If you have any troubles, need information, request support or want to -install additional software, please use [PRACE -Helpdesk](http://www.prace-ri.eu/helpdesk-guide264/). - -Information about the local services are provided in the [introduction -of general user documentation](introduction.html). -Please keep in mind, that standard PRACE accounts don't have a password -to access the web interface of the local (IT4Innovations) request -tracker and thus a new ticket should be created by sending an e-mail to -support[at]it4i.cz. +Information about the local services are provided in the [introduction of general user documentation](introduction.html). Please keep in mind, that standard PRACE accounts don't have a password to access the web interface of the local (IT4Innovations) request tracker and thus a new ticket should be created by sending an e-mail to support[at]it4i.cz. Obtaining Login Credentials --------------------------- +In general PRACE users already have a PRACE account setup through their HOMESITE (institution from their country) as a result of rewarded PRACE project proposal. This includes signed PRACE AuP, generated and registered certificates, etc. -In general PRACE users already have a PRACE account setup through their -HOMESITE (institution from their country) as a result of rewarded PRACE -project proposal. This includes signed PRACE AuP, generated and -registered certificates, etc. - -If there's a special need a PRACE user can get a standard (local) -account at IT4Innovations. To get an account on the Anselm cluster, the -user needs to obtain the login credentials. The procedure is the same as -for general users of the cluster, so please see the corresponding -[section of the general documentation -here](../get-started-with-it4innovations/obtaining-login-credentials.html). +If there's a special need a PRACE user can get a standard (local) account at IT4Innovations. To get an account on the Anselm cluster, the user needs to obtain the login credentials. The procedure is the same as for general users of the cluster, so please see the corresponding [section of the general documentation here](../get-started-with-it4innovations/obtaining-login-credentials.html). Accessing the cluster --------------------- ### Access with GSI-SSH -For all PRACE users the method for interactive access (login) and data -transfer based on grid services from Globus Toolkit (GSI SSH and -GridFTP) is supported. +For all PRACE users the method for interactive access (login) and data transfer based on grid services from Globus Toolkit (GSI SSH and GridFTP) is supported. -The user will need a valid certificate and to be present in the PRACE -LDAP (please contact your HOME SITE or the primary investigator of your -project for LDAP account creation). +The user will need a valid certificate and to be present in the PRACE LDAP (please contact your HOME SITE or the primary investigator of your project for LDAP account creation). -Most of the information needed by PRACE users accessing the Anselm -TIER-1 system can be found here: +Most of the information needed by PRACE users accessing the Anselm TIER-1 system can be found here: -- [General user's - FAQ](http://www.prace-ri.eu/Users-General-FAQs) -- [Certificates - FAQ](http://www.prace-ri.eu/Certificates-FAQ) -- [Interactive access using - GSISSH](http://www.prace-ri.eu/Interactive-Access-Using-gsissh) -- [Data transfer with - GridFTP](http://www.prace-ri.eu/Data-Transfer-with-GridFTP-Details) -- [Data transfer with - gtransfer](http://www.prace-ri.eu/Data-Transfer-with-gtransfer) +- [General user's FAQ](http://www.prace-ri.eu/Users-General-FAQs) +- [Certificates FAQ](http://www.prace-ri.eu/Certificates-FAQ) +- [Interactive access using GSISSH](http://www.prace-ri.eu/Interactive-Access-Using-gsissh) +- [Data transfer with GridFTP](http://www.prace-ri.eu/Data-Transfer-with-GridFTP-Details) +- [Data transfer with gtransfer](http://www.prace-ri.eu/Data-Transfer-with-gtransfer) - - -Before you start to use any of the services don't forget to create a -proxy certificate from your certificate: +Before you start to use any of the services don't forget to create a proxy certificate from your certificate: +```bash $ grid-proxy-init +``` -To check whether your proxy certificate is still valid (by default it's -valid 12 hours), use: +To check whether your proxy certificate is still valid (by default it's valid 12 hours), use: +```bash $ grid-proxy-info +``` - - -To access Anselm cluster, two login nodes running GSI SSH service are -available. The service is available from public Internet as well as from -the internal PRACE network (accessible only from other PRACE partners). +To access Anselm cluster, two login nodes running GSI SSH service are available. The service is available from public Internet as well as from the internal PRACE network (accessible only from other PRACE partners). -***Access from PRACE network:** +**Access from PRACE network:** -It is recommended to use the single DNS name -anselm-prace.it4i.cz which is distributed -between the two login nodes. If needed, user can login directly to one -of the login nodes. The addresses are: +It is recommended to use the single DNS name anselm-prace.it4i.cz which is distributed between the two login nodes. If needed, user can login directly to one of the login nodes. The addresses are: - Login address |Port|Protocol| Login node - ----------------------------- |---|---| ------------------ - anselm-prace.it4i.cz 2222 gsissh login1 or login2 - login1-prace.anselm.it4i.cz 2222 gsissh login1 - login2-prace.anselm.it4i.cz 2222 gsissh login2 - - +|Login address|Port|Protocol|Login node| +|---|---| +|anselm-prace.it4i.cz|2222|gsissh|login1 or login2| +|login1-prace.anselm.it4i.cz|2222|gsissh|login1| +|login2-prace.anselm.it4i.cz|2222|gsissh|login2| +```bash $ gsissh -p 2222 anselm-prace.it4i.cz +``` -When logging from other PRACE system, the prace_service script can be -used: +When logging from other PRACE system, the prace_service script can be used: +```bash $ gsissh `prace_service -i -s anselm` +``` - - -***Access from public Internet:** +**Access from public Internet:** -It is recommended to use the single DNS name -anselm.it4i.cz which is distributed between the -two login nodes. If needed, user can login directly to one of the login -nodes. The addresses are: +It is recommended to use the single DNS name anselm.it4i.cz which is distributed between the two login nodes. If needed, user can login directly to one of the login nodes. The addresses are: - Login address |Port|Protocol| Login node - ----------------------- |---|---| ------------------ - anselm.it4i.cz 2222 gsissh login1 or login2 - login1.anselm.it4i.cz 2222 gsissh login1 - login2.anselm.it4i.cz 2222 gsissh login2 +|Login address||Port|Protocol|Login node| +|---|---| +|anselm.it4i.cz|2222|gsissh|login1 or login2| +|login1.anselm.it4i.cz|2222|gsissh|login1| +|login2.anselm.it4i.cz|2222|gsissh|login2| +```bash $ gsissh -p 2222 anselm.it4i.cz +``` -When logging from other PRACE system, the -prace_service script can be used: +When logging from other PRACE system, the prace_service script can be used: +```bash $ gsissh `prace_service -e -s anselm` +``` - - -Although the preferred and recommended file transfer mechanism is [using -GridFTP](prace.html#file-transfers), the GSI SSH -implementation on Anselm supports also SCP, so for small files transfer -gsiscp can be used: +Although the preferred and recommended file transfer mechanism is [using GridFTP](prace.html#file-transfers), the GSI SSH implementation on Anselm supports also SCP, so for small files transfer gsiscp can be used: +```bash $ gsiscp -P 2222 _LOCAL_PATH_TO_YOUR_FILE_ anselm.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ - $ gsiscp -P 2222 anselm.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_ + $ gsiscp -P 2222 anselm.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_ $ gsiscp -P 2222 _LOCAL_PATH_TO_YOUR_FILE_ anselm-prace.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ - $ gsiscp -P 2222 anselm-prace.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_ + $ gsiscp -P 2222 anselm-prace.it4i.cz:_ANSELM_PATH_TO_YOUR_FILE_ _LOCAL_PATH_TO_YOUR_FILE_ +``` ### Access to X11 applications (VNC) -If the user needs to run X11 based graphical application and does not -have a X11 server, the applications can be run using VNC service. If the -user is using regular SSH based access, please see the [section in -general -documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/11e53ad0d2fd4c5187537f4baeedff33). +If the user needs to run X11 based graphical application and does not have a X11 server, the applications can be run using VNC service. If the user is using regular SSH based access, please see the [section in general documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/11e53ad0d2fd4c5187537f4baeedff33). -If the user uses GSI SSH based access, then the procedure is similar to -the SSH based access ([look -here](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/11e53ad0d2fd4c5187537f4baeedff33)), -only the port forwarding must be done using GSI SSH: +If the user uses GSI SSH based access, then the procedure is similar to the SSH based access ([look here](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/11e53ad0d2fd4c5187537f4baeedff33)), only the port forwarding must be done using GSI SSH: +```bash $ gsissh -p 2222 anselm.it4i.cz -L 5961:localhost:5961 +``` ### Access with SSH -After successful obtainment of login credentials for the local -IT4Innovations account, the PRACE users can access the cluster as -regular users using SSH. For more information please see the [section in -general -documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). +After successful obtainment of login credentials for the local IT4Innovations account, the PRACE users can access the cluster as regular users using SSH. For more information please see the [section in general documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). File transfers ------------------ +PRACE users can use the same transfer mechanisms as regular users (if they've undergone the full registration procedure). For information about this, please see [the section in the general documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). -PRACE users can use the same transfer mechanisms as regular users (if -they've undergone the full registration procedure). For information -about this, please see [the section in the general -documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). +Apart from the standard mechanisms, for PRACE users to transfer data to/from Anselm cluster, a GridFTP server running Globus Toolkit GridFTP service is available. The service is available from public Internet as well as from the internal PRACE network (accessible only from other PRACE partners). -Apart from the standard mechanisms, for PRACE users to transfer data -to/from Anselm cluster, a GridFTP server running Globus Toolkit GridFTP -service is available. The service is available from public Internet as -well as from the internal PRACE network (accessible only from other -PRACE partners). +There's one control server and three backend servers for striping and/or backup in case one of them would fail. -There's one control server and three backend servers for striping and/or -backup in case one of them would fail. +**Access from PRACE network:** -***Access from PRACE network:** +|Login address|Port|Node role| +|---|---| +|gridftp-prace.anselm.it4i.cz|2812|Front end /control server| +|login1-prace.anselm.it4i.cz|2813|Backend / data mover server| +|login2-prace.anselm.it4i.cz|2813|Backend / data mover server| +|dm1-prace.anselm.it4i.cz|2813|Backend / data mover server| - Login address Port Node role - ----- |---|---| - gridftp-prace.anselm.it4i.cz 2812 Front end /control server - login1-prace.anselm.it4i.cz 2813 Backend / data mover server - login2-prace.anselm.it4i.cz 2813 Backend / data mover server - dm1-prace.anselm.it4i.cz 2813 Backend / data mover server - -Copy files **to** Anselm by running the following commands on your local -machine: +Copy files **to** Anselm by running the following commands on your local machine: +```bash $ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://gridftp-prace.anselm.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ +``` Or by using prace_service script: +```bash $ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://`prace_service -i -f anselm`/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ +``` Copy files **from** Anselm: +```bash $ globus-url-copy gsiftp://gridftp-prace.anselm.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_ +``` Or by using prace_service script: +```bash $ globus-url-copy gsiftp://`prace_service -i -f anselm`/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_ +``` - - -***Access from public Internet:** +**Access from public Internet:** - Login address Port Node role - ------------------------ |---|---|------------------- - gridftp.anselm.it4i.cz 2812 Front end /control server - login1.anselm.it4i.cz 2813 Backend / data mover server - login2.anselm.it4i.cz 2813 Backend / data mover server - dm1.anselm.it4i.cz 2813 Backend / data mover server +|Login address|Port|Node role| +|---|---| +|gridftp.anselm.it4i.cz|2812|Front end /control server| +|login1.anselm.it4i.cz|2813|Backend / data mover server| +|login2.anselm.it4i.cz|2813|Backend / data mover server| +|dm1.anselm.it4i.cz|2813|Backend / data mover server| -Copy files **to** Anselm by running the following commands on your local -machine: +Copy files **to** Anselm by running the following commands on your local machine: +```bash $ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://gridftp.anselm.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ +``` Or by using prace_service script: +```bash $ globus-url-copy file://_LOCAL_PATH_TO_YOUR_FILE_ gsiftp://`prace_service -e -f anselm`/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ +``` Copy files **from** Anselm: +```bash $ globus-url-copy gsiftp://gridftp.anselm.it4i.cz:2812/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_ +``` Or by using prace_service script: +```bash $ globus-url-copy gsiftp://`prace_service -e -f anselm`/home/prace/_YOUR_ACCOUNT_ON_ANSELM_/_PATH_TO_YOUR_FILE_ file://_LOCAL_PATH_TO_YOUR_FILE_ - - +``` Generally both shared file systems are available through GridFTP: - |File system mount point|Filesystem|Comment| - |---|---| - |/home|Lustre|Default HOME directories of users in format /home/prace/login/| - |/scratch|Lustre|Shared SCRATCH mounted on the whole cluster| +|File system mount point|Filesystem|Comment| +|---|---| +|/home|Lustre|Default HOME directories of users in format /home/prace/login/| +|/scratch|Lustre|Shared SCRATCH mounted on the whole cluster| -More information about the shared file systems is available -[here](storage.html). +More information about the shared file systems is available [here](storage.html). Usage of the cluster -------------------- + There are some limitations for PRACE user when using the cluster. By default PRACE users aren't allowed to access special queues in the PBS Pro to have high priority or exclusive access to some special equipment like accelerated nodes and high memory (fat) nodes. There may be also restrictions obtaining a working license for the commercial software installed on the cluster, mostly because of the license agreement or because of insufficient amount of licenses. -There are some limitations for PRACE user when using the cluster. By -default PRACE users aren't allowed to access special queues in the PBS -Pro to have high priority or exclusive access to some special equipment -like accelerated nodes and high memory (fat) nodes. There may be also -restrictions obtaining a working license for the commercial software -installed on the cluster, mostly because of the license agreement or -because of insufficient amount of licenses. - -For production runs always use scratch file systems, either the global -shared or the local ones. The available file systems are described -[here](hardware-overview.html). +For production runs always use scratch file systems, either the global shared or the local ones. The available file systems are described [here](hardware-overview.html). ### Software, Modules and PRACE Common Production Environment -All system wide installed software on the cluster is made available to -the users via the modules. The information about the environment and -modules usage is in this [section of general -documentation](environment-and-modules.html). +All system wide installed software on the cluster is made available to the users via the modules. The information about the environment and modules usage is in this [section of general documentation](environment-and-modules.html). -PRACE users can use the "prace" module to use the [PRACE Common -Production -Environment](http://www.prace-ri.eu/PRACE-common-production). +PRACE users can use the "prace" module to use the [PRACE Common Production Environment](http://www.prace-ri.eu/PRACE-common-production). +```bash $ module load prace - - +``` ### Resource Allocation and Job Execution -General information about the resource allocation, job queuing and job -execution is in this [section of general -documentation](resource-allocation-and-job-execution/introduction.html). +General information about the resource allocation, job queuing and job execution is in this [section of general documentation](resource-allocation-and-job-execution/introduction.html). -For PRACE users, the default production run queue is "qprace". PRACE -users can also use two other queues "qexp" and "qfree". +For PRACE users, the default production run queue is "qprace". PRACE users can also use two other queues "qexp" and "qfree". - ------------------------------------------------------------------------------------------------------------------------- - queue Active project Project resources Nodes priority authorization walltime - - --------------------- -|---|---|---|- ---- |---|---|----- ------------- - **qexp** no none required 2 reserved, high no 1 / 1h - \ 8 total +|queue|Active project|Project resources|Nodes|priority|authorization|walltime| +|---|---|---| +|**qexp** Express queue|no|none required|2 reserved, 8 total|high|no|1 / 1h| +|**qprace** Production queue|yes|> 0|178 w/o accelerator|medium|no|24 / 48h| +|**qfree** Free resource queue|yes|none required|178 w/o accelerator|very low|no| 12 / 12h| - gt; 0 >1006 nodes, max 86 per job 0 no 24 / 48h> 0 178 w/o accelerator medium no 24 / 48h - \ - +qprace**, the PRACE \***: This queue is intended for normal production runs. It is required that active project with nonzero remaining resources is specified to enter the qprace. The queue runs with medium priority and no special authorization is required to use it. The maximum runtime in qprace is 12 hours. If the job needs longer time, it must use checkpoint/restart functionality. - **qfree** yes none required 178 w/o accelerator very low no 12 / 12h - \ - ------------------------------------------------------------------------------------------------------------------------- +### Accounting & Quota -qprace**, the PRACE \***: This queue is intended for -normal production runs. It is required that active project with nonzero -remaining resources is specified to enter the qprace. The queue runs -with medium priority and no special authorization is required to use it. -The maximum runtime in qprace is 12 hours. If the job needs longer time, -it must use checkpoint/restart functionality. +The resources that are currently subject to accounting are the core hours. The core hours are accounted on the wall clock basis. The accounting runs whenever the computational cores are allocated or blocked via the PBS Pro workload manager (the qsub command), regardless of whether the cores are actually used for any calculation. See [example in the general documentation](resource-allocation-and-job-execution/resources-allocation-policy.html). -### Accounting & Quota +PRACE users should check their project accounting using the [PRACE Accounting Tool (DART)](http://www.prace-ri.eu/accounting-report-tool/). -The resources that are currently subject to accounting are the core -hours. The core hours are accounted on the wall clock basis. The -accounting runs whenever the computational cores are allocated or -blocked via the PBS Pro workload manager (the qsub command), regardless -of whether the cores are actually used for any calculation. See [example -in the general -documentation](resource-allocation-and-job-execution/resources-allocation-policy.html). - -PRACE users should check their project accounting using the [PRACE -Accounting Tool -(DART)](http://www.prace-ri.eu/accounting-report-tool/). - -Users who have undergone the full local registration procedure -(including signing the IT4Innovations Acceptable Use Policy) and who -have received local password may check at any time, how many core-hours -have been consumed by themselves and their projects using the command -"it4ifree". Please note that you need to know your user password to use -the command and that the displayed core hours are "system core hours" -which differ from PRACE "standardized core hours". - -The **it4ifree** command is a part of it4i.portal.clients package, -located here: -<https://pypi.python.org/pypi/it4i.portal.clients> +Users who have undergone the full local registration procedure (including signing the IT4Innovations Acceptable Use Policy) and who have received local password may check at any time, how many core-hours have been consumed by themselves and their projects using the command "it4ifree". Please note that you need to know your user password to use the command and that the displayed core hours are "system core hours" which differ from PRACE "standardized core hours". +>The **it4ifree** command is a part of it4i.portal.clients package, located here: <https://pypi.python.org/pypi/it4i.portal.clients> + +```bash $ it4ifree Password:     PID  Total Used ...by me Free   -------- ------- ------ -------- -------   OPEN-0-0 1500000 400644  225265 1099356   DD-13-1   10000 2606 2606 7394 +``` - - -By default file system quota is applied. To check the current status of -the quota use +By default file system quota is applied. To check the current status of the quota use +```bash $ lfs quota -u USER_LOGIN /home $ lfs quota -u USER_LOGIN /scratch +``` -If the quota is insufficient, please contact the -[support](prace.html#help-and-support) and request an -increase. - - - - - +If the quota is insufficient, please contact the [support](prace.html#help-and-support) and request an increase. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/remote-visualization.md b/docs.it4i/anselm-cluster-documentation/remote-visualization.md index e0c1e9600beca6a880c140b4c4193607c3b04f74..c013827fc727e33dc3fb4805c9b7f44fbdbdf28d 100644 --- a/docs.it4i/anselm-cluster-documentation/remote-visualization.md +++ b/docs.it4i/anselm-cluster-documentation/remote-visualization.md @@ -1,34 +1,23 @@ -Remote visualization service +Remote visualization service ============================ -Introduction +Introduction ------------ +The goal of this service is to provide the users a GPU accelerated use of OpenGL applications, especially for pre- and post- processing work, where not only the GPU performance is needed but also fast access to the shared file systems of the cluster and a reasonable amount of RAM. + +The service is based on integration of open source tools VirtualGL and TurboVNC together with the cluster's job scheduler PBS Professional. + +Currently two compute nodes are dedicated for this service with following configuration for each node: + +|[**Visualization node configuration**](compute-nodes.html)|| +|---|---| +|CPU|2x Intel Sandy Bridge E5-2670, 2.6GHz| +|Processor cores|16 (2x8 cores)| +|RAM|64 GB, min. 4 GB per core| +|GPU|NVIDIA Quadro 4000, 2GB RAM| +|Local disk drive|yes - 500 GB| +|Compute network|InfiniBand QDR| -The goal of this service is to provide the users a GPU accelerated use -of OpenGL applications, especially for pre- and post- processing work, -where not only the GPU performance is needed but also fast access to the -shared file systems of the cluster and a reasonable amount of RAM. - -The service is based on integration of open source tools VirtualGL and -TurboVNC together with the cluster's job scheduler PBS Professional. - -Currently two compute nodes are dedicated for this service with -following configuration for each node: - -[**Visualization node -configuration**](compute-nodes.html) -CPU -2x Intel Sandy Bridge E5-2670, 2.6GHz -Processor cores -16 (2x8 cores) -RAM -64 GB, min. 4 GB per core -GPU -NVIDIA Quadro 4000, 2GB RAM -Local disk drive -yes - 500 GB -Compute network -InfiniBand QDR Schematic overview ------------------ @@ -36,221 +25,189 @@ Schematic overview  -How to use the service +How to use the service ---------------------- ### Setup and start your own TurboVNC server. -TurboVNC is designed and implemented for cooperation with VirtualGL and -available for free for all major platforms. For more information and -download, please refer to: <http://sourceforge.net/projects/turbovnc/> +TurboVNC is designed and implemented for cooperation with VirtualGL and available for free for all major platforms. For more information and download, please refer to: <http://sourceforge.net/projects/turbovnc/> -Always use TurboVNC on both sides** (server and client) **don't mix -TurboVNC and other VNC implementations** (TightVNC, TigerVNC, ...) as -the VNC protocol implementation may slightly differ and diminish your -user experience by introducing picture artifacts, etc. +**Always use TurboVNC on both sides** (server and client) **don't mix TurboVNC and other VNC implementations** (TightVNC, TigerVNC, ...) as the VNC protocol implementation may slightly differ and diminish your user experience by introducing picture artifacts, etc. The procedure is: -#### 1. Connect to a login node. {#1-connect-to-a-login-node} +#### 1. Connect to a login node. -Please [follow the -documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). +Please [follow the documentation](https://docs.it4i.cz/anselm-cluster-documentation/resolveuid/5d3d6f3d873a42e584cbf4365c4e251b). -#### 2. Run your own instance of TurboVNC server. {#2-run-your-own-instance-of-turbovnc-server} +#### 2. Run your own instance of TurboVNC server. -To have the OpenGL acceleration, **24 bit color depth must be used**. -Otherwise only the geometry (desktop size) definition is needed. +To have the OpenGL acceleration, **24 bit color depth must be used**. Otherwise only the geometry (desktop size) definition is needed. *At first VNC server run you need to define a password.* -This example defines desktop with dimensions 1200x700 pixels and 24 bit -color depth. +This example defines desktop with dimensions 1200x700 pixels and 24 bit color depth. -` -$ module load turbovnc/1.2.2 -$ vncserver -geometry 1200x700 -depth 24 +```bash +$ module load turbovnc/1.2.2 +$ vncserver -geometry 1200x700 -depth 24 -Desktop 'TurboVNC: login2:1 (username)' started on display login2:1 +Desktop 'TurboVNC: login2:1 (username)' started on display login2:1 -Starting applications specified in /home/username/.vnc/xstartup.turbovnc -Log file is /home/username/.vnc/login2:1.log -` +Starting applications specified in /home/username/.vnc/xstartup.turbovnc +Log file is /home/username/.vnc/login2:1.log +``` -#### 3. Remember which display number your VNC server runs (you will need it in the future to stop the server). {#3-remember-which-display-number-your-vnc-server-runs-you-will-need-it-in-the-future-to-stop-the-server} +#### 3. Remember which display number your VNC server runs (you will need it in the future to stop the server). -` -$ vncserver -list +```bash +$ vncserver -list -TurboVNC server sessions: +TurboVNC server sessions: -X DISPLAY # PROCESS ID -:1 23269 -` +X DISPLAY # PROCESS ID +:1 23269 +``` In this example the VNC server runs on display **:1**. -#### 4. Remember the exact login node, where your VNC server runs. {#4-remember-the-exact-login-node-where-your-vnc-server-runs} +#### 4. Remember the exact login node, where your VNC server runs. -` +```bash $ uname -n -login2 -` +login2 +``` In this example the VNC server runs on **login2**. -#### 5. Remember on which TCP port your own VNC server is running. {#5-remember-on-which-tcp-port-your-own-vnc-server-is-running} +#### 5. Remember on which TCP port your own VNC server is running. To get the port you have to look to the log file of your VNC server. -` -$ grep -E "VNC.*port" /home/username/.vnc/login2:1.log -20/02/2015 14:46:41 Listening for VNC connections on TCP port 5901 -` +```bash +$ grep -E "VNC.*port" /home/username/.vnc/login2:1.log +20/02/2015 14:46:41 Listening for VNC connections on TCP port 5901 +``` In this example the VNC server listens on TCP port **5901**. -#### 6. Connect to the login node where your VNC server runs with SSH to tunnel your VNC session. {#6-connect-to-the-login-node-where-your-vnc-server-runs-with-ssh-to-tunnel-your-vnc-session} +#### 6. Connect to the login node where your VNC server runs with SSH to tunnel your VNC session. Tunnel the TCP port on which your VNC server is listenning. -` -$ ssh login2.anselm.it4i.cz -L 5901:localhost:5901 -` +```bash +$ ssh login2.anselm.it4i.cz -L 5901:localhost:5901 +``` -*If you use Windows and Putty, please refer to port forwarding setup - in the documentation:* +*If you use Windows and Putty, please refer to port forwarding setup in the documentation:* [https://docs.it4i.cz/anselm-cluster-documentation/accessing-the-cluster/x-window-and-vnc#section-12](accessing-the-cluster/x-window-and-vnc.html#section-12) -#### 7. If you don't have Turbo VNC installed on your workstation. {#7-if-you-don-t-have-turbo-vnc-installed-on-your-workstation} +#### 7. If you don't have Turbo VNC installed on your workstation. Get it from: <http://sourceforge.net/projects/turbovnc/> -#### 8. Run TurboVNC Viewer from your workstation. {#8-run-turbovnc-viewer-from-your-workstation} +#### 8. Run TurboVNC Viewer from your workstation. -Mind that you should connect through the SSH tunneled port. In this -example it is 5901 on your workstation (localhost). +Mind that you should connect through the SSH tunneled port. In this example it is 5901 on your workstation (localhost). -` -$ vncviewer localhost:5901 -` +```bash +$ vncviewer localhost:5901 +``` -*If you use Windows version of TurboVNC Viewer, just run the Viewer and -use address **localhost:5901**.* +*If you use Windows version of TurboVNC Viewer, just run the Viewer and use address **localhost:5901**.* -#### 9. Proceed to the chapter "Access the visualization node." {#9-proceed-to-the-chapter-access-the-visualization-node} +#### 9. Proceed to the chapter "Access the visualization node." -*Now you should have working TurboVNC session connected to your -workstation.* +*Now you should have working TurboVNC session connected to your workstation.* -#### 10. After you end your visualization session. {#10-after-you-end-your-visualization-session} +#### 10. After you end your visualization session. -*Don't forget to correctly shutdown your own VNC server on the login -node!* +*Don't forget to correctly shutdown your own VNC server on the login node!* -` -$ vncserver -kill :1 -` +```bash +$ vncserver -kill :1 +``` Access the visualization node ----------------------------- - To access the node use a dedicated PBS Professional scheduler queue qviz**. The queue has following properties: - |queue |active project |project resources |nodes<th align="left">min ncpus*<th align="left">priority<th align="left">authorization<th align="left">walltime | + |queue |active project |project resources |nodes|min ncpus*|priority|authorization|walltime | | --- | --- | - |<strong>qviz              </strong> Visualization queue\ |yes |none required |2 |4 |><em>150</em> |no |1 hour / 2 hours | + |**qviz** Visualization queue |yes |none required |2 |4 |150 |no |1 hour / 2 hours | -Currently when accessing the node, each user gets 4 cores of a CPU -allocated, thus approximately 16 GB of RAM and 1/4 of the GPU capacity. -*If more GPU power or RAM is required, it is recommended to allocate one -whole node per user, so that all 16 cores, whole RAM and whole GPU is -exclusive. This is currently also the maximum allowed allocation per one -user. One hour of work is allocated by default, the user may ask for 2 -hours maximum.* +Currently when accessing the node, each user gets 4 cores of a CPU allocated, thus approximately 16 GB of RAM and 1/4 of the GPU capacity. *If more GPU power or RAM is required, it is recommended to allocate one whole node per user, so that all 16 cores, whole RAM and whole GPU is exclusive. This is currently also the maximum allowed allocation per one user. One hour of work is allocated by default, the user may ask for 2 hours maximum.* To access the visualization node, follow these steps: -#### 1. In your VNC session, open a terminal and allocate a node using PBSPro qsub command. {#1-in-your-vnc-session-open-a-terminal-and-allocate-a-node-using-pbspro-qsub-command} +#### 1. In your VNC session, open a terminal and allocate a node using PBSPro qsub command. *This step is necessary to allow you to proceed with next steps.* -` -$ qsub -I -q qviz -A PROJECT_ID -` +```bash +$ qsub -I -q qviz -A PROJECT_ID +``` -In this example the default values for CPU cores and usage time are -used. +In this example the default values for CPU cores and usage time are used. -` -$ qsub -I -q qviz -A PROJECT_ID -l select=1:ncpus=16 -l walltime=02:00:00 -` +```bash +$ qsub -I -q qviz -A PROJECT_ID -l select=1:ncpus=16 -l walltime=02:00:00 +``` -*Substitute **PROJECT_ID** with the assigned project identification -string.* +*Substitute **PROJECT_ID** with the assigned project identification string.* In this example a whole node for 2 hours is requested. -If there are free resources for your request, you will have a shell -running on an assigned node. Please remember the name of the node. +If there are free resources for your request, you will have a shell unning on an assigned node. Please remember the name of the node. -` +```bash $ uname -n -srv8 -` +srv8 +``` In this example the visualization session was assigned to node **srv8**. -#### 2. In your VNC session open another terminal (keep the one with interactive PBSPro job open). {#2-in-your-vnc-session-open-another-terminal-keep-the-one-with-interactive-pbspro-job-open} +#### 2. In your VNC session open another terminal (keep the one with interactive PBSPro job open). -Setup the VirtualGL connection to the node, which PBSPro allocated for -your job. +Setup the VirtualGL connection to the node, which PBSPro allocated for our job. -` -$ vglconnect srv8 -` +```bash +$ vglconnect srv8 +``` -You will be connected with created VirtualGL tunnel to the visualization -node, where you will have a shell. +You will be connected with created VirtualGL tunnel to the visualization ode, where you will have a shell. -#### 3. Load the VirtualGL module. {#3-load-the-virtualgl-module} +#### 3. Load the VirtualGL module. -` -$ module load virtualgl/2.4 -` +```bash +$ module load virtualgl/2.4 +``` -#### 4. Run your desired OpenGL accelerated application using VirtualGL script "vglrun". {#4-run-your-desired-opengl-accelerated-application-using-virtualgl-script-vglrun} +#### 4. Run your desired OpenGL accelerated application using VirtualGL script "vglrun". -` -$ vglrun glxgears -` +```bash +$ vglrun glxgears +``` -Please note, that if you want to run an OpenGL application which is -available through modules, you need at first load the respective module. -E. g. to run the **Mentat** OpenGL application from **MARC** software -package use: +Please note, that if you want to run an OpenGL application which is vailable through modules, you need at first load the respective module. . g. to run the **Mentat** OpenGL application from **MARC** software ackage use: -` -$ module load marc/2013.1 -$ vglrun mentat -` +```bash +$ module load marc/2013.1 +$ vglrun mentat +``` -#### 5. After you end your work with the OpenGL application. {#5-after-you-end-your-work-with-the-opengl-application} +#### 5. After you end your work with the OpenGL application. -Just logout from the visualization node and exit both opened terminals -and end your VNC server session as described above. +Just logout from the visualization node and exit both opened terminals nd end your VNC server session as described above. Tips and Tricks --------------- - -If you want to increase the responsibility of the visualization, please -adjust your TurboVNC client settings in this way: +If you want to increase the responsibility of the visualization, please djust your TurboVNC client settings in this way:  -To have an idea how the settings are affecting the resulting picture -quality three levels of "JPEG image quality" are demonstrated: +To have an idea how the settings are affecting the resulting picture uality three levels of "JPEG image quality" are demonstrated: 1. JPEG image quality = 30 @@ -262,5 +219,4 @@ quality three levels of "JPEG image quality" are demonstrated: 3. JPEG image quality = 10 - - + \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/capacity-computing.md b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/capacity-computing.md index e05f7ce6eb1e7c1bf9a5d62e77271668435ea368..9717d44bcd4daa6fc93c86ba90600a23c4e93cca 100644 --- a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/capacity-computing.md +++ b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/capacity-computing.md @@ -1,85 +1,52 @@ -Capacity computing +Capacity computing ================== - - Introduction ------------ +In many cases, it is useful to submit huge (>100+) number of computational jobs into the PBS queue system. Huge number of (small) jobs is one of the most effective ways to execute embarrassingly parallel calculations, achieving best runtime, throughput and computer utilization. + +However, executing huge number of jobs via the PBS queue may strain the system. This strain may result in slow response to commands, inefficient scheduling and overall degradation of performance and user experience, for all users. For this reason, the number of jobs is **limited to 100 per user, 1000 per job array** -In many cases, it is useful to submit huge (>100+) number of -computational jobs into the PBS queue system. Huge number of (small) -jobs is one of the most effective ways to execute embarrassingly -parallel calculations, achieving best runtime, throughput and computer -utilization. - -However, executing huge number of jobs via the PBS queue may strain the -system. This strain may result in slow response to commands, inefficient -scheduling and overall degradation of performance and user experience, -for all users. For this reason, the number of jobs is **limited to 100 -per user, 1000 per job array** - -Please follow one of the procedures below, in case you wish to schedule -more than >100 jobs at a time. - -- Use [Job arrays](capacity-computing.html#job-arrays) - when running huge number of - [multithread](capacity-computing.html#shared-jobscript-on-one-node) - (bound to one node only) or multinode (multithread across - several nodes) jobs -- Use [GNU - parallel](capacity-computing.html#gnu-parallel) when - running single core jobs -- Combine[GNU parallel with Job - arrays](capacity-computing.html#combining-job-arrays-and-gnu-parallel) - when running huge number of single core jobs +>Please follow one of the procedures below, in case you wish to schedule more than 100 jobs at a time. + +- Use [Job arrays](capacity-computing.html#job-arrays) when running huge number of [multithread](capacity-computing.html#shared-jobscript-on-one-node) (bound to one node only) or multinode (multithread across several nodes) jobs +- Use [GNU parallel](capacity-computing.html#gnu-parallel) when running single core jobs +- Combine[GNU parallel with Job arrays](capacity-computing.html#combining-job-arrays-and-gnu-parallel) when running huge number of single core jobs Policy ------ - -1. A user is allowed to submit at most 100 jobs. Each job may be [a job - array](capacity-computing.html#job-arrays). +1. A user is allowed to submit at most 100 jobs. Each job may be [a job array](capacity-computing.html#job-arrays). 2. The array size is at most 1000 subjobs. Job arrays -------------- +>Huge number of jobs may be easily submitted and managed as a job array. -Huge number of jobs may be easily submitted and managed as a job array. - -A job array is a compact representation of many jobs, called subjobs. -The subjobs share the same job script, and have the same values for all -attributes and resources, with the following exceptions: +A job array is a compact representation of many jobs, called subjobs. The subjobs share the same job script, and have the same values for all attributes and resources, with the following exceptions: - each subjob has a unique index, $PBS_ARRAY_INDEX - job Identifiers of subjobs only differ by their indices - the state of subjobs can differ (R,Q,...etc.) -All subjobs within a job array have the same scheduling priority and -schedule as independent jobs. -Entire job array is submitted through a single qsub command and may be -managed by qdel, qalter, qhold, qrls and qsig commands as a single job. +All subjobs within a job array have the same scheduling priority and schedule as independent jobs. Entire job array is submitted through a single qsub command and may be managed by qdel, qalter, qhold, qrls and qsig commands as a single job. ### Shared jobscript -All subjobs in job array use the very same, single jobscript. Each -subjob runs its own instance of the jobscript. The instances execute -different work controlled by $PBS_ARRAY_INDEX variable. +All subjobs in job array use the very same, single jobscript. Each subjob runs its own instance of the jobscript. The instances execute different work controlled by $PBS_ARRAY_INDEX variable. Example: -Assume we have 900 input files with name beginning with "file" (e. g. -file001, ..., file900). Assume we would like to use each of these input -files with program executable myprog.x, each as a separate job. +Assume we have 900 input files with name beginning with "file" (e. g. file001, ..., file900). Assume we would like to use each of these input files with program executable myprog.x, each as a separate job. -First, we create a tasklist file (or subjobs list), listing all tasks -(subjobs) - all input files in our example: +First, we create a tasklist file (or subjobs list), listing all tasks (subjobs) - all input files in our example: -` +```bash $ find . -name 'file*' > tasklist -` +``` Then we create jobscript: -` +```bash #!/bin/bash #PBS -A PROJECT_ID #PBS -q qprod @@ -90,9 +57,9 @@ SCR=/lscratch/$PBS_JOBID mkdir -p $SCR ; cd $SCR || exit # get individual tasks from tasklist with index from PBS JOB ARRAY -TASK=$(sed -n "${PBS_ARRAY_INDEX}p" $PBS_O_WORKDIR/tasklist) +TASK=$(sed -n "${PBS_ARRAY_INDEX}p" $PBS_O_WORKDIR/tasklist) -# copy input file and executable to scratch +# copy input file and executable to scratch cp $PBS_O_WORKDIR/$TASK input ; cp $PBS_O_WORKDIR/myprog.x . # execute the calculation @@ -100,58 +67,36 @@ cp $PBS_O_WORKDIR/$TASK input ; cp $PBS_O_WORKDIR/myprog.x . # copy output file to submit directory cp output $PBS_O_WORKDIR/$TASK.out -` - -In this example, the submit directory holds the 900 input files, -executable myprog.x and the jobscript file. As input for each run, we -take the filename of input file from created tasklist file. We copy the -input file to local scratch /lscratch/$PBS_JOBID, execute the myprog.x -and copy the output file back to >the submit directory, -under the $TASK.out name. The myprog.x runs on one node only and must -use threads to run in parallel. Be aware, that if the myprog.x **is not -multithreaded**, then all the **jobs are run as single thread programs -in sequential** manner. Due to allocation of the whole node, the -accounted time is equal to the usage of whole node**, while using only -1/16 of the node! - -If huge number of parallel multicore (in means of multinode multithread, -e. g. MPI enabled) jobs is needed to run, then a job array approach -should also be used. The main difference compared to previous example -using one node is that the local scratch should not be used (as it's not -shared between nodes) and MPI or other technique for parallel multinode -run has to be used properly. +``` + +In this example, the submit directory holds the 900 input files, executable myprog.x and the jobscript file. As input for each run, we take the filename of input file from created tasklist file. We copy the input file to local scratch /lscratch/$PBS_JOBID, execute the myprog.x and copy the output file back to >the submit directory, under the $TASK.out name. The myprog.x runs on one node only and must use threads to run in parallel. Be aware, that if the myprog.x **is not multithreaded**, then all the **jobs are run as single thread programs in sequential** manner. Due to allocation of the whole node, the accounted time is equal to the usage of whole node**, while using only 1/16 of the node! + +If huge number of parallel multicore (in means of multinode multithread, e. g. MPI enabled) jobs is needed to run, then a job array approach should also be used. The main difference compared to previous example using one node is that the local scratch should not be used (as it's not shared between nodes) and MPI or other technique for parallel multinode run has to be used properly. ### Submit the job array -To submit the job array, use the qsub -J command. The 900 jobs of the -[example above](capacity-computing.html#array_example) may -be submitted like this: +To submit the job array, use the qsub -J command. The 900 jobs of the [example above](capacity-computing.html#array_example) may be submitted like this: -` +```bash $ qsub -N JOBNAME -J 1-900 jobscript 12345[].dm2 -` +``` -In this example, we submit a job array of 900 subjobs. Each subjob will -run on full node and is assumed to take less than 2 hours (please note -the #PBS directives in the beginning of the jobscript file, dont' -forget to set your valid PROJECT_ID and desired queue). +In this example, we submit a job array of 900 subjobs. Each subjob will run on full node and is assumed to take less than 2 hours (please note the #PBS directives in the beginning of the jobscript file, dont' forget to set your valid PROJECT_ID and desired queue). -Sometimes for testing purposes, you may need to submit only one-element -array. This is not allowed by PBSPro, but there's a workaround: +Sometimes for testing purposes, you may need to submit only one-element array. This is not allowed by PBSPro, but there's a workaround: -` +```bash $ qsub -N JOBNAME -J 9-10:2 jobscript -` +``` -This will only choose the lower index (9 in this example) for -submitting/running your job. +This will only choose the lower index (9 in this example) for submitting/running your job. ### Manage the job array Check status of the job array by the qstat command. -` +```bash $ qstat -a 12345[].dm2 dm2: @@ -159,13 +104,12 @@ dm2: Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -- |---|---| ------ --- --- ------ ----- - ----- 12345[].dm2 user2 qprod xx 13516 1 16 -- 00:50 B 00:02 -` +``` The status B means that some subjobs are already running. - Check status of the first 100 subjobs by the qstat command. -` +```bash $ qstat -a 12345[1-100].dm2 dm2: @@ -177,80 +121,67 @@ Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time 12345[3].dm2 user2 qprod xx 13516 1 16 -- 00:50 R 00:01 12345[4].dm2 user2 qprod xx 13516 1 16 -- 00:50 Q -- . . . . . . . . . . . - , . . . . . . . . . . + , . . . . . . . . . . 12345[100].dm2 user2 qprod xx 13516 1 16 -- 00:50 Q -- -` +``` -Delete the entire job array. Running subjobs will be killed, queueing -subjobs will be deleted. +Delete the entire job array. Running subjobs will be killed, queueing subjobs will be deleted. -` +```bash $ qdel 12345[].dm2 -` +``` Deleting large job arrays may take a while. - Display status information for all user's jobs, job arrays, and subjobs. -` +```bash $ qstat -u $USER -t -` +``` Display status information for all user's subjobs. -` +```bash $ qstat -u $USER -tJ -` +``` -Read more on job arrays in the [PBSPro Users -guide](../../pbspro-documentation.html). +Read more on job arrays in the [PBSPro Users guide](../../pbspro-documentation.html). GNU parallel ---------------- +>Use GNU parallel to run many single core tasks on one node. -Use GNU parallel to run many single core tasks on one node. - -GNU parallel is a shell tool for executing jobs in parallel using one or -more computers. A job can be a single command or a small script that has -to be run for each of the lines in the input. GNU parallel is most -useful in running single core jobs via the queue system on Anselm. +GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. GNU parallel is most useful in running single core jobs via the queue system on Anselm. For more information and examples see the parallel man page: -` +```bash $ module add parallel $ man parallel -` +``` ### GNU parallel jobscript -The GNU parallel shell executes multiple instances of the jobscript -using all cores on the node. The instances execute different work, -controlled by the $PARALLEL_SEQ variable. +The GNU parallel shell executes multiple instances of the jobscript using all cores on the node. The instances execute different work, controlled by the $PARALLEL_SEQ variable. Example: -Assume we have 101 input files with name beginning with "file" (e. g. -file001, ..., file101). Assume we would like to use each of these input -files with program executable myprog.x, each as a separate single core -job. We call these single core jobs tasks. +Assume we have 101 input files with name beginning with "file" (e. g. file001, ..., file101). Assume we would like to use each of these input files with program executable myprog.x, each as a separate single core job. We call these single core jobs tasks. -First, we create a tasklist file, listing all tasks - all input files in -our example: +First, we create a tasklist file, listing all tasks - all input files in our example: -` +```bash $ find . -name 'file*' > tasklist -` +``` Then we create jobscript: -` +```bash #!/bin/bash #PBS -A PROJECT_ID #PBS -q qprod #PBS -l select=1:ncpus=16,walltime=02:00:00 -[ -z "$PARALLEL_SEQ" ] && +[ -z "$PARALLEL_SEQ" ] && { module add parallel ; exec parallel -a $PBS_O_WORKDIR/tasklist $0 ; } # change to local scratch directory @@ -258,98 +189,70 @@ SCR=/lscratch/$PBS_JOBID/$PARALLEL_SEQ mkdir -p $SCR ; cd $SCR || exit # get individual task from tasklist -TASK=$1  +TASK=$1 -# copy input file and executable to scratch -cp $PBS_O_WORKDIR/$TASK input +# copy input file and executable to scratch +cp $PBS_O_WORKDIR/$TASK input # execute the calculation cat input > output # copy output file to submit directory cp output $PBS_O_WORKDIR/$TASK.out -` - -In this example, tasks from tasklist are executed via the GNU -parallel. The jobscript executes multiple instances of itself in -parallel, on all cores of the node. Once an instace of jobscript is -finished, new instance starts until all entries in tasklist are -processed. Currently processed entry of the joblist may be retrieved via -$1 variable. Variable $TASK expands to one of the input filenames from -tasklist. We copy the input file to local scratch, execute the myprog.x -and copy the output file back to the submit directory, under the -$TASK.out name. +``` + +In this example, tasks from tasklist are executed via the GNU parallel. The jobscript executes multiple instances of itself in parallel, on all cores of the node. Once an instace of jobscript is finished, new instance starts until all entries in tasklist are processed. Currently processed entry of the joblist may be retrieved via $1 variable. Variable $TASK expands to one of the input filenames from tasklist. We copy the input file to local scratch, execute the myprog.x and copy the output file back to the submit directory, under the $TASK.out name. ### Submit the job -To submit the job, use the qsub command. The 101 tasks' job of the -[example above](capacity-computing.html#gp_example) may be -submitted like this: +To submit the job, use the qsub command. The 101 tasks' job of the [example above](capacity-computing.html#gp_example) may be submitted like this: -` +```bash $ qsub -N JOBNAME jobscript 12345.dm2 -` +``` -In this example, we submit a job of 101 tasks. 16 input files will be -processed in parallel. The 101 tasks on 16 cores are assumed to -complete in less than 2 hours. +In this example, we submit a job of 101 tasks. 16 input files will be processed in parallel. The 101 tasks on 16 cores are assumed to complete in less than 2 hours. -Please note the #PBS directives in the beginning of the jobscript file, -dont' forget to set your valid PROJECT_ID and desired queue. +Please note the #PBS directives in the beginning of the jobscript file, dont' forget to set your valid PROJECT_ID and desired queue. Job arrays and GNU parallel ------------------------------- +>Combine the Job arrays and GNU parallel for best throughput of single core jobs -Combine the Job arrays and GNU parallel for best throughput of single -core jobs - -While job arrays are able to utilize all available computational nodes, -the GNU parallel can be used to efficiently run multiple single-core -jobs on single node. The two approaches may be combined to utilize all -available (current and future) resources to execute single core jobs. +While job arrays are able to utilize all available computational nodes, the GNU parallel can be used to efficiently run multiple single-core jobs on single node. The two approaches may be combined to utilize all available (current and future) resources to execute single core jobs. -Every subjob in an array runs GNU parallel to utilize all cores on the -node +>Every subjob in an array runs GNU parallel to utilize all cores on the node ### GNU parallel, shared jobscript -Combined approach, very similar to job arrays, can be taken. Job array -is submitted to the queuing system. The subjobs run GNU parallel. The -GNU parallel shell executes multiple instances of the jobscript using -all cores on the node. The instances execute different work, controlled -by the $PBS_JOB_ARRAY and $PARALLEL_SEQ variables. +Combined approach, very similar to job arrays, can be taken. Job array is submitted to the queuing system. The subjobs run GNU parallel. The GNU parallel shell executes multiple instances of the jobscript using all cores on the node. The instances execute different work, controlled by the $PBS_JOB_ARRAY and $PARALLEL_SEQ variables. Example: -Assume we have 992 input files with name beginning with "file" (e. g. -file001, ..., file992). Assume we would like to use each of these input -files with program executable myprog.x, each as a separate single core -job. We call these single core jobs tasks. +Assume we have 992 input files with name beginning with "file" (e. g. file001, ..., file992). Assume we would like to use each of these input files with program executable myprog.x, each as a separate single core job. We call these single core jobs tasks. -First, we create a tasklist file, listing all tasks - all input files in -our example: +First, we create a tasklist file, listing all tasks - all input files in our example: -` +```bash $ find . -name 'file*' > tasklist -` +``` -Next we create a file, controlling how many tasks will be executed in -one subjob +Next we create a file, controlling how many tasks will be executed in one subjob -` +```bash $ seq 32 > numtasks -` +``` Then we create jobscript: -` +```bash #!/bin/bash #PBS -A PROJECT_ID #PBS -q qprod #PBS -l select=1:ncpus=16,walltime=02:00:00 -[ -z "$PARALLEL_SEQ" ] && +[ -z "$PARALLEL_SEQ" ] && { module add parallel ; exec parallel -a $PBS_O_WORKDIR/numtasks $0 ; } # change to local scratch directory @@ -361,73 +264,46 @@ IDX=$(($PBS_ARRAY_INDEX + $PARALLEL_SEQ - 1)) TASK=$(sed -n "${IDX}p" $PBS_O_WORKDIR/tasklist) [ -z "$TASK" ] && exit -# copy input file and executable to scratch -cp $PBS_O_WORKDIR/$TASK input +# copy input file and executable to scratch +cp $PBS_O_WORKDIR/$TASK input # execute the calculation cat input > output # copy output file to submit directory cp output $PBS_O_WORKDIR/$TASK.out -` +``` -In this example, the jobscript executes in multiple instances in -parallel, on all cores of a computing node. Variable $TASK expands to -one of the input filenames from tasklist. We copy the input file to -local scratch, execute the myprog.x and copy the output file back to the -submit directory, under the $TASK.out name. The numtasks file controls -how many tasks will be run per subjob. Once an task is finished, new -task starts, until the number of tasks in numtasks file is reached. +In this example, the jobscript executes in multiple instances in parallel, on all cores of a computing node. Variable $TASK expands to one of the input filenames from tasklist. We copy the input file to local scratch, execute the myprog.x and copy the output file back to the submit directory, under the $TASK.out name. The numtasks file controls how many tasks will be run per subjob. Once an task is finished, new task starts, until the number of tasks in numtasks file is reached. -Select subjob walltime and number of tasks per subjob carefully +>Select subjob walltime and number of tasks per subjob carefully - When deciding this values, think about following guiding rules : +When deciding this values, think about following guiding rules: -1. Let n=N/16. Inequality (n+1) * T < W should hold. The N is - number of tasks per subjob, T is expected single task walltime and W - is subjob walltime. Short subjob walltime improves scheduling and - job throughput. +1. Let n=N/16. Inequality (n+1) * T < W should hold. The N is number of tasks per subjob, T is expected single task walltime and W is subjob walltime. Short subjob walltime improves scheduling and job throughput. 2. Number of tasks should be modulo 16. -3. These rules are valid only when all tasks have similar task - walltimes T. +3. These rules are valid only when all tasks have similar task walltimes T. ### Submit the job array -To submit the job array, use the qsub -J command. The 992 tasks' job of -the [example -above](capacity-computing.html#combined_example) may be -submitted like this: +To submit the job array, use the qsub -J command. The 992 tasks' job of the [example above](capacity-computing.html#combined_example) may be submitted like this: -` +```bash $ qsub -N JOBNAME -J 1-992:32 jobscript 12345[].dm2 -` +``` -In this example, we submit a job array of 31 subjobs. Note the -J -1-992:**32**, this must be the same as the number sent to numtasks file. -Each subjob will run on full node and process 16 input files in -parallel, 32 in total per subjob. Every subjob is assumed to complete -in less than 2 hours. +In this example, we submit a job array of 31 subjobs. Note the -J 1-992:**32**, this must be the same as the number sent to numtasks file. Each subjob will run on full node and process 16 input files in parallel, 32 in total per subjob. Every subjob is assumed to complete in less than 2 hours. -Please note the #PBS directives in the beginning of the jobscript file, -dont' forget to set your valid PROJECT_ID and desired queue. +Please note the #PBS directives in the beginning of the jobscript file, dont' forget to set your valid PROJECT_ID and desired queue. Examples -------- +Download the examples in [capacity.zip](capacity-computing-examples), illustrating the above listed ways to run huge number of jobs. We recommend to try out the examples, before using this for running production jobs. -Download the examples in -[capacity.zip](capacity-computing-examples), -illustrating the above listed ways to run huge number of jobs. We -recommend to try out the examples, before using this for running -production jobs. +Unzip the archive in an empty directory on Anselm and follow the instructions in the README file -Unzip the archive in an empty directory on Anselm and follow the -instructions in the README file - -` +```bash $ unzip capacity.zip $ cat README -` - - - +``` \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/introduction.md b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/introduction.md index e42b4037ca0dbbcb978d985a69a1548c71ef1fdc..eecdea89d0c7b7fe6b1fb198f44074c37862daf4 100644 --- a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/introduction.md +++ b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/introduction.md @@ -1,71 +1,36 @@ -Resource Allocation and Job Execution +Resource Allocation and Job Execution ===================================== - - -To run a [job](../introduction.html), [computational -resources](../introduction.html) for this particular job -must be allocated. This is done via the PBS Pro job workload manager -software, which efficiently distributes workloads across the -supercomputer. Extensive informations about PBS Pro can be found in the -[official documentation -here](../../pbspro-documentation.html), especially in -the [PBS Pro User's -Guide](https://docs.it4i.cz/pbspro-documentation/pbspro-users-guide). +To run a [job](../introduction.html), [computational resources](../introduction.html) for this particular job must be allocated. This is done via the PBS Pro job workload manager software, which efficiently distributes workloads across the supercomputer. Extensive informations about PBS Pro can be found in the [official documentation here](../../pbspro-documentation.html), especially in the [PBS Pro User's Guide](https://docs.it4i.cz/pbspro-documentation/pbspro-users-guide). Resources Allocation Policy --------------------------- -The resources are allocated to the job in a fairshare fashion, subject -to constraints set by the queue and resources available to the Project. -[The Fairshare](job-priority.html) at Anselm ensures -that individual users may consume approximately equal amount of -resources per week. The resources are accessible via several queues for -queueing the jobs. The queues provide prioritized and exclusive access -to the computational resources. Following queues are available to Anselm -users: +The resources are allocated to the job in a fairshare fashion, subject to constraints set by the queue and resources available to the Project. [The Fairshare](job-priority.html) at Anselm ensures that individual users may consume approximately equal amount of resources per week. The resources are accessible via several queues for queueing the jobs. The queues provide prioritized and exclusive access to the computational resources. Following queues are available to Anselm users: -- **qexp**, the \ -- **qprod**, the \*** -- **qlong**, the Long queue, regula -- **qnvidia, qmic, qfat**, the Dedicated queues -- **qfree,** the Free resource utilization queue +- **qexp**, the Express queue +- **qprod**, the Production queue +- **qlong**, the Long queue, regula +- **qnvidia**, **qmic**, **qfat**, the Dedicated queues +- **qfree**, the Free resource utilization queue -Check the queue status at <https://extranet.it4i.cz/anselm/> +>Check the queue status at <https://extranet.it4i.cz/anselm/> -Read more on the [Resource Allocation -Policy](resources-allocation-policy.html) page. +Read more on the [Resource AllocationPolicy](resources-allocation-policy.html) page. Job submission and execution ---------------------------- +>Use the **qsub** command to submit your jobs. -Use the **qsub** command to submit your jobs. - -The qsub submits the job into the queue. The qsub command creates a -request to the PBS Job manager for allocation of specified resources. -The **smallest allocation unit is entire node, 16 cores**, with -exception of the qexp queue. The resources will be allocated when -available, subject to allocation policies and constraints. **After the -resources are allocated the jobscript or interactive shell is executed -on first of the allocated nodes.** +The qsub submits the job into the queue. The qsub command creates a request to the PBS Job manager for allocation of specified resources. The **smallest allocation unit is entire node, 16 cores**, with exception of the qexp queue. The resources will be allocated when available, subject to allocation policies and constraints. **After the resources are allocated the jobscript or interactive shell is executed on first of the allocated nodes.** -Read more on the [Job submission and -execution](job-submission-and-execution.html) page. +Read more on the [Job submission and execution](job-submission-and-execution.html) page. Capacity computing ------------------ - -Use Job arrays when running huge number of jobs. +>Use Job arrays when running huge number of jobs. Use GNU Parallel and/or Job arrays when running (many) single core jobs. -In many cases, it is useful to submit huge (>100+) number of -computational jobs into the PBS queue system. Huge number of (small) -jobs is one of the most effective ways to execute embarrassingly -parallel calculations, achieving best runtime, throughput and computer -utilization. In this chapter, we discuss the the recommended way to run -huge number of jobs, including **ways to run huge number of single core -jobs**. - -Read more on [Capacity -computing](capacity-computing.html) page. +In many cases, it is useful to submit huge (100+) number of computational jobs into the PBS queue system. Huge number of (small) jobs is one of the most effective ways to execute embarrassingly parallel calculations, achieving best runtime, throughput and computer utilization. In this chapter, we discuss the the recommended way to run huge number of jobs, including **ways to run huge number of single core jobs**. +Read more on [Capacity computing](capacity-computing.html) page. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-priority.md b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-priority.md index 2ef433187bd002e6ac28e8f8303c4864bc76602b..6d2c19fe4d7674af7cfed9367bed710db0e9ba66 100644 --- a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-priority.md +++ b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-priority.md @@ -1,14 +1,12 @@ -Job scheduling +Job scheduling ============== Job execution priority ---------------------- -Scheduler gives each job an execution priority and then uses this job -execution priority to select which job(s) to run. +Scheduler gives each job an execution priority and then uses this job execution priority to select which job(s) to run. -Job execution priority on Anselm is determined by these job properties -(in order of importance): +Job execution priority on Anselm is determined by these job properties (in order of importance): 1. queue priority 2. fairshare priority @@ -16,23 +14,15 @@ Job execution priority on Anselm is determined by these job properties ### Queue priority -Queue priority is priority of queue where job is queued before -execution. +Queue priority is priority of queue where job is queued before execution. -Queue priority has the biggest impact on job execution priority. -Execution priority of jobs in higher priority queues is always greater -than execution priority of jobs in lower priority queues. Other -properties of job used for determining job execution priority (fairshare -priority, eligible time) cannot compete with queue priority. +Queue priority has the biggest impact on job execution priority. Execution priority of jobs in higher priority queues is always greater than execution priority of jobs in lower priority queues. Other properties of job used for determining job execution priority (fairshare priority, eligible time) cannot compete with queue priority. Queue priorities can be seen at <https://extranet.it4i.cz/anselm/queues> ### Fairshare priority -Fairshare priority is priority calculated on recent usage of resources. -Fairshare priority is calculated per project, all members of project -share same fairshare priority. Projects with higher recent usage have -lower fairshare priority than projects with lower or none recent usage. +Fairshare priority is priority calculated on recent usage of resources. Fairshare priority is calculated per project, all members of project share same fairshare priority. Projects with higher recent usage have lower fairshare priority than projects with lower or none recent usage. Fairshare priority is used for ranking jobs with equal queue priority. @@ -40,33 +30,21 @@ Fairshare priority is calculated as  -where MAX_FAIRSHARE has value 1E6, -usage~Project~ is cumulated usage by all members of selected project, -usage~Total~ is total usage by all users, by all projects. +where MAX_FAIRSHARE has value 1E6, usage~Project~ is cumulated usage by all members of selected project, usage~Total~ is total usage by all users, by all projects. -Usage counts allocated corehours (ncpus*walltime). Usage is decayed, or -cut in half periodically, at the interval 168 hours (one week). -Jobs queued in queue qexp are not calculated to project's usage. +Usage counts allocated corehours (ncpus*walltime). Usage is decayed, or cut in half periodically, at the interval 168 hours (one week). Jobs queued in queue qexp are not calculated to project's usage. -Calculated usage and fairshare priority can be seen at -<https://extranet.it4i.cz/anselm/projects>. +>Calculated usage and fairshare priority can be seen at <https://extranet.it4i.cz/anselm/projects>. -Calculated fairshare priority can be also seen as -Resource_List.fairshare attribute of a job. +Calculated fairshare priority can be also seen as Resource_List.fairshare attribute of a job. ###Eligible time -Eligible time is amount (in seconds) of eligible time job accrued while -waiting to run. Jobs with higher eligible time gains higher -priority. +Eligible time is amount (in seconds) of eligible time job accrued while waiting to run. Jobs with higher eligible time gains higher priority. -Eligible time has the least impact on execution priority. Eligible time -is used for sorting jobs with equal queue priority and fairshare -priority. It is very, very difficult for >eligible time to -compete with fairshare priority. +Eligible time has the least impact on execution priority. Eligible time is used for sorting jobs with equal queue priority and fairshare priority. It is very, very difficult for eligible time to compete with fairshare priority. -Eligible time can be seen as eligible_time attribute of -job. +Eligible time can be seen as eligible_time attribute of job. ### Formula @@ -78,26 +56,12 @@ Job execution priority (job sort formula) is calculated as: Anselm cluster uses job backfilling. -Backfilling means fitting smaller jobs around the higher-priority jobs -that the scheduler is going to run next, in such a way that the -higher-priority jobs are not delayed. Backfilling allows us to keep -resources from becoming idle when the top job (job with the highest -execution priority) cannot run. +Backfilling means fitting smaller jobs around the higher-priority jobs that the scheduler is going to run next, in such a way that the higher-priority jobs are not delayed. Backfilling allows us to keep resources from becoming idle when the top job (job with the highest execution priority) cannot run. -The scheduler makes a list of jobs to run in order of execution -priority. Scheduler looks for smaller jobs that can fit into the usage -gaps -around the highest-priority jobs in the list. The scheduler looks in the -prioritized list of jobs and chooses the highest-priority smaller jobs -that fit. Filler jobs are run only if they will not delay the start time -of top jobs. +The scheduler makes a list of jobs to run in order of execution priority. Scheduler looks for smaller jobs that can fit into the usage gaps around the highest-priority jobs in the list. The scheduler looks in the prioritized list of jobs and chooses the highest-priority smaller jobs that fit. Filler jobs are run only if they will not delay the start time of top jobs. -It means, that jobs with lower execution priority can be run before jobs -with higher execution priority. +It means, that jobs with lower execution priority can be run before jobs with higher execution priority. -It is **very beneficial to specify the walltime** when submitting jobs. - -Specifying more accurate walltime enables better schedulling, better -execution times and better resource usage. Jobs with suitable (small) -walltime could be backfilled - and overtake job(s) with higher priority. +>It is **very beneficial to specify the walltime** when submitting jobs. +Specifying more accurate walltime enables better schedulling, better execution times and better resource usage. Jobs with suitable (small) walltime could be backfilled - and overtake job(s) with higher priority. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-submission-and-execution.md b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-submission-and-execution.md index 599e0563344a9a675daae7c8adaa83a8956aabf9..7645699bceafa3f9825efc6ddd6afc4ce57aac0a 100644 --- a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-submission-and-execution.md +++ b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/job-submission-and-execution.md @@ -1,98 +1,64 @@ -Job submission and execution +Job submission and execution ============================ - - Job Submission -------------- - When allocating computational resources for the job, please specify 1. suitable queue for your job (default is qprod) 2. number of computational nodes required 3. number of cores per node required -4. maximum wall time allocated to your calculation, note that jobs - exceeding maximum wall time will be killed +4. maximum wall time allocated to your calculation, note that jobs exceeding maximum wall time will be killed 5. Project ID 6. Jobscript or interactive switch -Use the **qsub** command to submit your job to a queue for allocation of -the computational resources. +>Use the **qsub** command to submit your job to a queue for allocation of the computational resources. Submit the job using the qsub command: -` +```bash $ qsub -A Project_ID -q queue -l select=x:ncpus=y,walltime=[[hh:]mm:]ss[.ms] jobscript -` +``` -The qsub submits the job into the queue, in another words the qsub -command creates a request to the PBS Job manager for allocation of -specified resources. The resources will be allocated when available, -subject to above described policies and constraints. **After the -resources are allocated the jobscript or interactive shell is executed -on first of the allocated nodes.** +The qsub submits the job into the queue, in another words the qsub command creates a request to the PBS Job manager for allocation of specified resources. The resources will be allocated when available, subject to above described policies and constraints. **After the resources are allocated the jobscript or interactive shell is executed on first of the allocated nodes.** ### Job Submission Examples -` +```bash $ qsub -A OPEN-0-0 -q qprod -l select=64:ncpus=16,walltime=03:00:00 ./myjob -` - -In this example, we allocate 64 nodes, 16 cores per node, for 3 hours. -We allocate these resources via the qprod queue, consumed resources will -be accounted to the Project identified by Project ID OPEN-0-0. Jobscript -myjob will be executed on the first node in the allocation. +``` - +In this example, we allocate 64 nodes, 16 cores per node, for 3 hours. We allocate these resources via the qprod queue, consumed resources will be accounted to the Project identified by Project ID OPEN-0-0. Jobscript myjob will be executed on the first node in the allocation. -` +```bash $ qsub -q qexp -l select=4:ncpus=16 -I -` +``` -In this example, we allocate 4 nodes, 16 cores per node, for 1 hour. We -allocate these resources via the qexp queue. The resources will be -available interactively +In this example, we allocate 4 nodes, 16 cores per node, for 1 hour. We allocate these resources via the qexp queue. The resources will be available interactively - - -` +```bash $ qsub -A OPEN-0-0 -q qnvidia -l select=10:ncpus=16 ./myjob -` - -In this example, we allocate 10 nvidia accelerated nodes, 16 cores per -node, for 24 hours. We allocate these resources via the qnvidia queue. -Jobscript myjob will be executed on the first node in the allocation. +``` - +In this example, we allocate 10 nvidia accelerated nodes, 16 cores per node, for 24 hours. We allocate these resources via the qnvidia queue. Jobscript myjob will be executed on the first node in the allocation. -` +```bash $ qsub -A OPEN-0-0 -q qfree -l select=10:ncpus=16 ./myjob -` - -In this example, we allocate 10 nodes, 16 cores per node, for 12 hours. -We allocate these resources via the qfree queue. It is not required that -the project OPEN-0-0 has any available resources left. Consumed -resources are still accounted for. Jobscript myjob will be executed on -the first node in the allocation. +``` - +In this example, we allocate 10 nodes, 16 cores per node, for 12 hours. We allocate these resources via the qfree queue. It is not required that the project OPEN-0-0 has any available resources left. Consumed resources are still accounted for. Jobscript myjob will be executed on the first node in the allocation. -All qsub options may be [saved directly into the -jobscript](job-submission-and-execution.html#PBSsaved). In -such a case, no options to qsub are needed. +All qsub options may be [saved directly into the jobscript](job-submission-and-execution.html#PBSsaved). In such a case, no options to qsub are needed. -` +```bash $ qsub ./myjob -` +``` - +By default, the PBS batch system sends an e-mail only when the job is aborted. Disabling mail events completely can be done like this: -By default, the PBS batch system sends an e-mail only when the job is -aborted. Disabling mail events completely can be done like this: - -` +```bash $ qsub -m n -` +``` Advanced job placement ---------------------- @@ -101,113 +67,85 @@ Advanced job placement Specific nodes may be allocated via the PBS -` +```bash qsub -A OPEN-0-0 -q qprod -l select=1:ncpus=16:host=cn171+1:ncpus=16:host=cn172 -I -` +``` -In this example, we allocate nodes cn171 and cn172, all 16 cores per -node, for 24 hours. Consumed resources will be accounted to the Project -identified by Project ID OPEN-0-0. The resources will be available -interactively. +In this example, we allocate nodes cn171 and cn172, all 16 cores per node, for 24 hours. Consumed resources will be accounted to the Project identified by Project ID OPEN-0-0. The resources will be available interactively. ### Placement by CPU type -Nodes equipped with Intel Xeon E5-2665 CPU have base clock frequency -2.4GHz, nodes equipped with Intel Xeon E5-2470 CPU have base frequency -2.3 GHz (see section Compute Nodes for details). Nodes may be selected -via the PBS resource attribute -cpu_freq . - - CPU Type base freq. Nodes cpu_freq attribute - -------------- |---|---|-- ---------------------------- --------------------- - Intel Xeon E5-2665 2.4GHz cn[1-180], cn[208-209] 24 - Intel Xeon E5-2470 2.3GHz cn[181-207] 23 +Nodes equipped with Intel Xeon E5-2665 CPU have base clock frequency 2.4GHz, nodes equipped with Intel Xeon E5-2470 CPU have base frequency 2.3 GHz (see section Compute Nodes for details). Nodes may be selected via the PBS resource attribute cpu_freq . - +|CPU Type|base freq.|Nodes|cpu_freq attribute| +|---|---| +|Intel Xeon E5-2665|2.4GHz|cn[1-180], cn[208-209]|24| +|Intel Xeon E5-2470|2.3GHz|cn[181-207]|23| -` +```bash $ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16:cpu_freq=24 -I -` +``` -In this example, we allocate 4 nodes, 16 cores, selecting only the nodes -with Intel Xeon E5-2665 CPU. +In this example, we allocate 4 nodes, 16 cores, selecting only the nodes with Intel Xeon E5-2665 CPU. ### Placement by IB switch -Groups of computational nodes are connected to chassis integrated -Infiniband switches. These switches form the leaf switch layer of the -[Infiniband network](../network.html) -fat tree topology. Nodes sharing the leaf -switch can communicate most efficiently. Sharing the same switch -prevents hops in the network and provides for unbiased, most efficient -network communication. +Groups of computational nodes are connected to chassis integrated Infiniband switches. These switches form the leaf switch layer of the [Infiniband network](../network.html) fat tree topology. Nodes sharing the leaf switch can communicate most efficiently. Sharing the same switch prevents hops in the network and provides for unbiased, most efficient network communication. -Nodes sharing the same switch may be selected via the PBS resource -attribute ibswitch. Values of this attribute are iswXX, where XX is the -switch number. The node-switch mapping can be seen at [Hardware -Overview](../hardware-overview.html) section. +Nodes sharing the same switch may be selected via the PBS resource attribute ibswitch. Values of this attribute are iswXX, where XX is the switch number. The node-switch mapping can be seen at [Hardware Overview](../hardware-overview.html) section. -We recommend allocating compute nodes of a single switch when best -possible computational network performance is required to run the job -efficiently: +We recommend allocating compute nodes of a single switch when best possible computational network performance is required to run the job efficiently: +```bash qsub -A OPEN-0-0 -q qprod -l select=18:ncpus=16:ibswitch=isw11 ./myjob +``` -In this example, we request all the 18 nodes sharing the isw11 switch -for 24 hours. Full chassis will be allocated. +In this example, we request all the 18 nodes sharing the isw11 switch for 24 hours. Full chassis will be allocated. Advanced job handling --------------------- ### Selecting Turbo Boost off -Intel Turbo Boost Technology is on by default. We strongly recommend -keeping the default. +Intel Turbo Boost Technology is on by default. We strongly recommend keeping the default. -If necessary (such as in case of benchmarking) you can disable the Turbo -for all nodes of the job by using the PBS resource attribute -cpu_turbo_boost +If necessary (such as in case of benchmarking) you can disable the Turbo for all nodes of the job by using the PBS resource attribute cpu_turbo_boost +```bash $ qsub -A OPEN-0-0 -q qprod -l select=4:ncpus=16 -l cpu_turbo_boost=0 -I +``` More about the Intel Turbo Boost in the TurboBoost section ### Advanced examples -In the following example, we select an allocation for benchmarking a -very special and demanding MPI program. We request Turbo off, 2 full -chassis of compute nodes (nodes sharing the same IB switches) for 30 -minutes: +In the following example, we select an allocation for benchmarking a very special and demanding MPI program. We request Turbo off, 2 full chassis of compute nodes (nodes sharing the same IB switches) for 30 minutes: - $ qsub -A OPEN-0-0 -q qprod - -l select=18:ncpus=16:ibswitch=isw10:mpiprocs=1:ompthreads=16+18:ncpus=16:ibswitch=isw20:mpiprocs=16:ompthreads=1 - -l cpu_turbo_boost=0,walltime=00:30:00 +```bash + $ qsub -A OPEN-0-0 -q qprod + -l select=18:ncpus=16:ibswitch=isw10:mpiprocs=1:ompthreads=16+18:ncpus=16:ibswitch=isw20:mpiprocs=16:ompthreads=1 + -l cpu_turbo_boost=0,walltime=00:30:00 -N Benchmark ./mybenchmark +``` -The MPI processes will be distributed differently on the nodes connected -to the two switches. On the isw10 nodes, we will run 1 MPI process per -node 16 threads per process, on isw20 nodes we will run 16 plain MPI -processes. +The MPI processes will be distributed differently on the nodes connected to the two switches. On the isw10 nodes, we will run 1 MPI process per node 16 threads per process, on isw20 nodes we will run 16 plain MPI processes. -Although this example is somewhat artificial, it demonstrates the -flexibility of the qsub command options. +Although this example is somewhat artificial, it demonstrates the flexibility of the qsub command options. Job Management -------------- +>Check status of your jobs using the **qstat** and **check-pbs-jobs** commands -Check status of your jobs using the **qstat** and **check-pbs-jobs** -commands - -` +```bash $ qstat -a $ qstat -a -u username $ qstat -an -u username $ qstat -f 12345.srv11 -` +``` Example: -` +```bash $ qstat -a srv11: @@ -217,22 +155,13 @@ Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time 16287.srv11 user1 qlong job1 6183 4 64 -- 144:0 R 38:25 16468.srv11 user1 qlong job2 8060 4 64 -- 144:0 R 17:44 16547.srv11 user2 qprod job3x 13516 2 32 -- 48:00 R 00:58 -` - -In this example user1 and user2 are running jobs named job1, job2 and -job3x. The jobs job1 and job2 are using 4 nodes, 16 cores per node each. -The job1 already runs for 38 hours and 25 minutes, job2 for 17 hours 44 -minutes. The job1 already consumed 64*38.41 = 2458.6 core hours. The -job3x already consumed 0.96*32 = 30.93 core hours. These consumed core -hours will be accounted on the respective project accounts, regardless -of whether the allocated cores were actually used for computations. - -Check status of your jobs using check-pbs-jobs command. Check presence -of user's PBS jobs' processes on execution hosts. Display load, -processes. Display job standard and error output. Continuously display -(tail -f) job standard or error output. - -` +``` + +In this example user1 and user2 are running jobs named job1, job2 and job3x. The jobs job1 and job2 are using 4 nodes, 16 cores per node each. The job1 already runs for 38 hours and 25 minutes, job2 for 17 hours 44 minutes. The job1 already consumed 64*38.41 = 2458.6 core hours. The job3x already consumed 0.96*32 = 30.93 core hours. These consumed core hours will be accounted on the respective project accounts, regardless of whether the allocated cores were actually used for computations. + +Check status of your jobs using check-pbs-jobs command. Check presence of user's PBS jobs' processes on execution hosts. Display load, processes. Display job standard and error output. Continuously display (tail -f) job standard or error output. + +```bash $ check-pbs-jobs --check-all $ check-pbs-jobs --print-load --print-processes $ check-pbs-jobs --print-job-out --print-job-err @@ -240,23 +169,22 @@ $ check-pbs-jobs --print-job-out --print-job-err $ check-pbs-jobs --jobid JOBID --check-all --print-all $ check-pbs-jobs --jobid JOBID --tailf-job-out -` +``` Examples: -` +```bash $ check-pbs-jobs --check-all JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165 Check session id: OK Check processes cn164: OK cn165: No process -` +``` -In this example we see that job 35141.dm2 currently runs no process on -allocated node cn165, which may indicate an execution error. +In this example we see that job 35141.dm2 currently runs no process on allocated node cn165, which may indicate an execution error. -` +```bash $ check-pbs-jobs --print-load --print-processes JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165 Print load @@ -268,13 +196,11 @@ cn164: 0.0 -bash cn164: 0.0 /bin/bash /var/spool/PBS/mom_priv/jobs/35141.dm2.SC cn164: 99.7 run-task ... -` +``` -In this example we see that job 35141.dm2 currently runs process -run-task on node cn164, using one thread only, while node cn165 is -empty, which may indicate an execution error. +In this example we see that job 35141.dm2 currently runs process run-task on node cn164, using one thread only, while node cn165 is empty, which may indicate an execution error. -` +```bash $ check-pbs-jobs --jobid 35141.dm2 --print-job-out JOB 35141.dm2, session_id 71995, user user2, nodes cn164,cn165 Print job standard output: @@ -284,49 +210,42 @@ Script name  : script Run loop 1 Run loop 2 Run loop 3 -` +``` -In this example, we see actual output (some iteration loops) of the job -35141.dm2 +In this example, we see actual output (some iteration loops) of the job 35141.dm2 -Manage your queued or running jobs, using the **qhold**, **qrls**, -qdel,** **qsig** or **qalter** commands +>Manage your queued or running jobs, using the **qhold**, **qrls**, **qdel**, **qsig** or **qalter** commands You may release your allocation at any time, using qdel command -` +```bash $ qdel 12345.srv11 -` +``` You may kill a running job by force, using qsig command -` +```bash $ qsig -s 9 12345.srv11 -` +``` Learn more by reading the pbs man page -` +```bash $ man pbs_professional -` +``` Job Execution ------------- ### Jobscript -Prepare the jobscript to run batch jobs in the PBS queue system +>Prepare the jobscript to run batch jobs in the PBS queue system -The Jobscript is a user made script, controlling sequence of commands -for executing the calculation. It is often written in bash, other -scripts may be used as well. The jobscript is supplied to PBS **qsub** -command as an argument and executed by the PBS Professional workload -manager. +The Jobscript is a user made script, controlling sequence of commands for executing the calculation. It is often written in bash, other scripts may be used as well. The jobscript is supplied to PBS **qsub** command as an argument and executed by the PBS Professional workload manager. -The jobscript or interactive shell is executed on first of the allocated -nodes. +>The jobscript or interactive shell is executed on first of the allocated nodes. -` +```bash $ qsub -q qexp -l select=4:ncpus=16 -N Name0 ./myjob $ qstat -n -u username @@ -336,39 +255,30 @@ Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -- |---|---| ------ --- --- ------ ----- - ----- 15209.srv11 username qexp Name0 5530 4 64 -- 01:00 R 00:00 cn17/0*16+cn108/0*16+cn109/0*16+cn110/0*16 -` +``` - In this example, the nodes cn17, cn108, cn109 and cn110 were allocated -for 1 hour via the qexp queue. The jobscript myjob will be executed on -the node cn17, while the nodes cn108, cn109 and cn110 are available for -use as well. +In this example, the nodes cn17, cn108, cn109 and cn110 were allocated for 1 hour via the qexp queue. The jobscript myjob will be executed on the node cn17, while the nodes cn108, cn109 and cn110 are available for use as well. -The jobscript or interactive shell is by default executed in home -directory +The jobscript or interactive shell is by default executed in home directory -` +```bash $ qsub -q qexp -l select=4:ncpus=16 -I qsub: waiting for job 15210.srv11 to start qsub: job 15210.srv11 ready $ pwd /home/username -` +``` -In this example, 4 nodes were allocated interactively for 1 hour via the -qexp queue. The interactive shell is executed in the home directory. +In this example, 4 nodes were allocated interactively for 1 hour via the qexp queue. The interactive shell is executed in the home directory. -All nodes within the allocation may be accessed via ssh. Unallocated -nodes are not accessible to user. +>All nodes within the allocation may be accessed via ssh. Unallocated nodes are not accessible to user. -The allocated nodes are accessible via ssh from login nodes. The nodes -may access each other via ssh as well. +The allocated nodes are accessible via ssh from login nodes. The nodes may access each other via ssh as well. -Calculations on allocated nodes may be executed remotely via the MPI, -ssh, pdsh or clush. You may find out which nodes belong to the -allocation by reading the $PBS_NODEFILE file +Calculations on allocated nodes may be executed remotely via the MPI, ssh, pdsh or clush. You may find out which nodes belong to the allocation by reading the $PBS_NODEFILE file -` +```bash qsub -q qexp -l select=4:ncpus=16 -I qsub: waiting for job 15210.srv11 to start qsub: job 15210.srv11 ready @@ -381,28 +291,23 @@ cn17.bullx cn108.bullx cn109.bullx cn110.bullx - + $ pdsh -w cn17,cn[108-110] hostname cn17: cn17 cn108: cn108 cn109: cn109 cn110: cn110 -` +``` -In this example, the hostname program is executed via pdsh from the -interactive shell. The execution runs on all four allocated nodes. The -same result would be achieved if the pdsh is called from any of the -allocated nodes or from the login nodes. +In this example, the hostname program is executed via pdsh from the interactive shell. The execution runs on all four allocated nodes. The same result would be achieved if the pdsh is called from any of the allocated nodes or from the login nodes. ### Example Jobscript for MPI Calculation -Production jobs must use the /scratch directory for I/O +>Production jobs must use the /scratch directory for I/O -The recommended way to run production jobs is to change to /scratch -directory early in the jobscript, copy all inputs to /scratch, execute -the calculations and copy outputs to home directory. +The recommended way to run production jobs is to change to /scratch directory early in the jobscript, copy all inputs to /scratch, execute the calculations and copy outputs to home directory. -` +```bash #!/bin/bash # change to scratch directory, exit on failure @@ -410,7 +315,7 @@ SCRDIR=/scratch/$USER/myjob mkdir -p $SCRDIR cd $SCRDIR || exit -# copy input file to scratch +# copy input file to scratch cp $PBS_O_WORKDIR/input . cp $PBS_O_WORKDIR/mympiprog.x . @@ -425,34 +330,19 @@ cp output $PBS_O_WORKDIR/. #exit exit -` - -In this example, some directory on the /home holds the input file input -and executable mympiprog.x . We create a directory myjob on the /scratch -filesystem, copy input and executable files from the /home directory -where the qsub was invoked ($PBS_O_WORKDIR) to /scratch, execute the -MPI programm mympiprog.x and copy the output file back to the /home -directory. The mympiprog.x is executed as one process per node, on all -allocated nodes. - -Consider preloading inputs and executables onto [shared -scratch](../storage.html) before the calculation starts. - -In some cases, it may be impractical to copy the inputs to scratch and -outputs to home. This is especially true when very large input and -output files are expected, or when the files should be reused by a -subsequent calculation. In such a case, it is users responsibility to -preload the input files on shared /scratch before the job submission and -retrieve the outputs manually, after all calculations are finished. - -Store the qsub options within the jobscript. -Use **mpiprocs** and **ompthreads** qsub options to control the MPI job -execution. - -Example jobscript for an MPI job with preloaded inputs and executables, -options for qsub are stored within the script : - -` +``` + +In this example, some directory on the /home holds the input file input and executable mympiprog.x . We create a directory myjob on the /scratch filesystem, copy input and executable files from the /home directory where the qsub was invoked ($PBS_O_WORKDIR) to /scratch, execute the MPI programm mympiprog.x and copy the output file back to the /home directory. The mympiprog.x is executed as one process per node, on all allocated nodes. + +>Consider preloading inputs and executables onto [shared scratch](../storage.html) before the calculation starts. + +In some cases, it may be impractical to copy the inputs to scratch and outputs to home. This is especially true when very large input and output files are expected, or when the files should be reused by a subsequent calculation. In such a case, it is users responsibility to preload the input files on shared /scratch before the job submission and retrieve the outputs manually, after all calculations are finished. + +>Store the qsub options within the jobscript. Use **mpiprocs** and **ompthreads** qsub options to control the MPI job execution. + +Example jobscript for an MPI job with preloaded inputs and executables, options for qsub are stored within the script : + +```bash #!/bin/bash #PBS -q qprod #PBS -N MYJOB @@ -471,35 +361,26 @@ mpiexec ./mympiprog.x #exit exit -` - -In this example, input and executable files are assumed preloaded -manually in /scratch/$USER/myjob directory. Note the **mpiprocs** and -ompthreads** qsub options, controlling behavior of the MPI execution. -The mympiprog.x is executed as one process per node, on all 100 -allocated nodes. If mympiprog.x implements OpenMP threads, it will run -16 threads per node. - -More information is found in the [Running -OpenMPI](../software/mpi-1/Running_OpenMPI.html) and -[Running MPICH2](../software/mpi-1/running-mpich2.html) +``` + +In this example, input and executable files are assumed preloaded manually in /scratch/$USER/myjob directory. Note the **mpiprocs** and **ompthreads** qsub options, controlling behavior of the MPI execution. The mympiprog.x is executed as one process per node, on all 100 allocated nodes. If mympiprog.x implements OpenMP threads, it will run 16 threads per node. + +More information is found in the [Running OpenMPI](../software/mpi-1/Running_OpenMPI.html) and [Running MPICH2](../software/mpi-1/running-mpich2.html) sections. ### Example Jobscript for Single Node Calculation -Local scratch directory is often useful for single node jobs. Local -scratch will be deleted immediately after the job ends. +>Local scratch directory is often useful for single node jobs. Local scratch will be deleted immediately after the job ends. -Example jobscript for single node calculation, using [local -scratch](../storage.html) on the node: +Example jobscript for single node calculation, using [local scratch](../storage.html) on the node: -` +```bash #!/bin/bash # change to local scratch directory cd /lscratch/$PBS_JOBID || exit -# copy input file to scratch +# copy input file to scratch cp $PBS_O_WORKDIR/input . cp $PBS_O_WORKDIR/myprog.x . @@ -511,20 +392,10 @@ cp output $PBS_O_WORKDIR/. #exit exit -` +``` -In this example, some directory on the home holds the input file input -and executable myprog.x . We copy input and executable files from the -home directory where the qsub was invoked ($PBS_O_WORKDIR) to local -scratch /lscratch/$PBS_JOBID, execute the myprog.x and copy the output -file back to the /home directory. The myprog.x runs on one node only and -may use threads. +In this example, some directory on the home holds the input file input and executable myprog.x . We copy input and executable files from the home directory where the qsub was invoked ($PBS_O_WORKDIR) to local scratch /lscratch/$PBS_JOBID, execute the myprog.x and copy the output file back to the /home directory. The myprog.x runs on one node only and may use threads. ### Other Jobscript Examples -Further jobscript examples may be found in the -[Software](../software.1.html) section and the [Capacity -computing](capacity-computing.html) section. - - - +Further jobscript examples may be found in the [Software](../software.1.html) section and the [Capacity computing](capacity-computing.html) section. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/resources-allocation-policy.md b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/resources-allocation-policy.md index 58da4ca5bc6e08cd916173b5a71a0cfe291999d6..8224ce4d02f04ed2ccab8953d2b08b495fd57dea 100644 --- a/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/resources-allocation-policy.md +++ b/docs.it4i/anselm-cluster-documentation/resource-allocation-and-job-execution/resources-allocation-policy.md @@ -1,125 +1,51 @@ -Resources Allocation Policy +Resources Allocation Policy =========================== - - -Resources Allocation Policy +Resources Allocation Policy --------------------------- +The resources are allocated to the job in a fairshare fashion, subject to constraints set by the queue and resources available to the Project. The Fairshare at Anselm ensures that individual users may consume approximately equal amount of resources per week. Detailed information in the [Job scheduling](job-priority.html) section. The resources are accessible via several queues for queueing the jobs. The queues provide prioritized and exclusive access to the computational resources. Following table provides the queue partitioning overview: -The resources are allocated to the job in a fairshare fashion, subject -to constraints set by the queue and resources available to the Project. -The Fairshare at Anselm ensures that individual users may consume -approximately equal amount of resources per week. Detailed information -in the [Job scheduling](job-priority.html) section. The -resources are accessible via several queues for queueing the jobs. The -queues provide prioritized and exclusive access to the computational -resources. Following table provides the queue partitioning overview:  - - - |queue |active project |project resources |nodes<th align="left">min ncpus*<th align="left">priority<th align="left">authorization<th align="left">walltime | + |queue |active project |project resources |nodes|min ncpus*|priority|authorization|>walltime | | --- | --- | - |<strong>qexp</strong>\ |no |none required |2 reserved, 31 totalincluding MIC, GPU and FAT nodes |1 |><em>150</em> |no |1h | - |<strong>qprod</strong>\ |yes |> 0 |><em>178 nodes w/o accelerator</em>\ |16 |0 |no |24/48h | - |<strong>qlong</strong>Long queue\ |yes |> 0 |60 nodes w/o accelerator |16 |0 |no |72/144h | - |<strong>qnvidia, qmic, qfat</strong>Dedicated queues\ |yes |<p>> 0\ |23 total qnvidia4 total qmic2 total qfat |16 |><em>200</em> |yes |24/48h | - |<strong>qfree</strong>\ |yes |none required |178 w/o accelerator |16 |-1024 |no |12h | - -The qfree queue is not free of charge**. [Normal -accounting](resources-allocation-policy.html#resources-accounting-policy) -applies. However, it allows for utilization of free resources, once a -Project exhausted all its allocated computational resources. This does -not apply for Directors Discreation's projects (DD projects) by default. -Usage of qfree after exhaustion of DD projects computational resources -is allowed after request for this queue. - -The qexp queue is equipped with the nodes not having the very same CPU -clock speed.** Should you need the very same CPU speed, you have to -select the proper nodes during the PSB job submission. -** - -- **qexp**, the \: This queue is dedicated for testing and - running very small jobs. It is not required to specify a project to - enter the qexp. >*>There are 2 nodes always reserved for - this queue (w/o accelerator), maximum 8 nodes are available via the - qexp for a particular user, from a pool of nodes containing - **Nvidia** accelerated nodes (cn181-203), **MIC** accelerated - nodes (cn204-207) and **Fat** nodes with 512GB RAM (cn208-209). This - enables to test and tune also accelerated code or code with higher - RAM requirements.* The nodes may be allocated on per - core basis. No special authorization is required to use it. The - maximum runtime in qexp is 1 hour. -- **qprod**, the \***: This queue is intended for - normal production runs. It is required that active project with - nonzero remaining resources is specified to enter the qprod. All - nodes may be accessed via the qprod queue, except the reserved ones. - >*>178 nodes without accelerator are - included.* Full nodes, 16 cores per node - are allocated. The queue runs with medium priority and no special - authorization is required to use it. The maximum runtime in qprod is - 48 hours. -- **qlong**, the Long queue***: This queue is intended for long - production runs. It is required that active project with nonzero - remaining resources is specified to enter the qlong. Only 60 nodes - without acceleration may be accessed via the qlong queue. Full - nodes, 16 cores per node are allocated. The queue runs with medium - priority and no special authorization is required to use it.> - *The maximum runtime in qlong is 144 hours (three times of the - standard qprod time - 3 * 48 h).* -- **qnvidia, qmic, qfat**, the Dedicated queues***: The queue qnvidia - is dedicated to access the Nvidia accelerated nodes, the qmic to - access MIC nodes and qfat the Fat nodes. It is required that active - project with nonzero remaining resources is specified to enter - these queues. 23 nvidia, 4 mic and 2 fat nodes are included. Full - nodes, 16 cores per node are allocated. The queues run with> - *very high priority*, the jobs will be scheduled before the - jobs coming from the> *qexp* queue. An PI> *needs - explicitly* ask - [support](https://support.it4i.cz/rt/) for - authorization to enter the dedicated queues for all users associated - to her/his Project. -- **qfree**, The \***: The queue qfree is intended - for utilization of free resources, after a Project exhausted all its - allocated computational resources (Does not apply to DD projects - by default. DD projects have to request for persmission on qfree - after exhaustion of computational resources.). It is required that - active project is specified to enter the queue, however no remaining - resources are required. Consumed resources will be accounted to - the Project. Only 178 nodes without accelerator may be accessed from - this queue. Full nodes, 16 cores per node are allocated. The queue - runs with very low priority and no special authorization is required - to use it. The maximum runtime in qfree is 12 hours. + |<strong>qexp</strong> |no |none required |2 reserved, 31 totalincluding MIC, GPU and FAT nodes |1 |><em>150</em> |no |1h | + |<strong>qprod</strong> |yes |> 0 |><em>178 nodes w/o accelerator</em> |16 |0 |no |24/48h | + |<strong>qlong</strong>Long queue |yes |> 0 |60 nodes w/o accelerator |16 |0 |no |72/144h | + |<strong>qnvidia, qmic, qfat</strong>Dedicated queues |yes |<p>> 0 |23 total qnvidia4 total qmic2 total qfat |16 |><em>200</em> |yes |24/48h | + |<strong>qfree</strong> |yes |none required |178 w/o accelerator |16 |-1024 |no |12h | + +>**The qfree queue is not free of charge**. [Normal accounting](resources-allocation-policy.html#resources-accounting-policy) applies. However, it allows for utilization of free resources, once a Project exhausted all its allocated computational resources. This does not apply for Directors Discreation's projects (DD projects) by default. Usage of qfree after exhaustion of DD projects computational resources is allowed after request for this queue. + +>**The qexp queue is equipped with the nodes not having the very same CPU clock speed.** Should you need the very same CPU speed, you have to select the proper nodes during the PSB job submission. + +- **qexp**, the Express queue: This queue is dedicated for testing and running very small jobs. It is not required to specify a project to enter the qexp. There are 2 nodes always reserved for this queue (w/o accelerator), maximum 8 nodes are available via the qexp for a particular user, from a pool of nodes containing Nvidia accelerated nodes (cn181-203), MIC accelerated nodes (cn204-207) and Fat nodes with 512GB RAM (cn208-209). This enables to test and tune also accelerated code or code with higher RAM requirements. The nodes may be allocated on per core basis. No special authorization is required to use it. The maximum runtime in qexp is 1 hour. +- **qprod**, the Production queue: This queue is intended for normal production runs. It is required that active project with nonzero remaining resources is specified to enter the qprod. All nodes may be accessed via the qprod queue, except the reserved ones. 178 nodes without accelerator are included. Full nodes, 16 cores per node are allocated. The queue runs with medium priority and no special authorization is required to use it. The maximum runtime in qprod is 48 hours. +- **qlong**, the Long queue: This queue is intended for long production runs. It is required that active project with nonzero remaining resources is specified to enter the qlong. Only 60 nodes without acceleration may be accessed via the qlong queue. Full nodes, 16 cores per node are allocated. The queue runs with medium priority and no special authorization is required to use it. The maximum runtime in qlong is 144 hours (three times of the standard qprod time - 3 * 48 h). +- **qnvidia**, qmic, qfat, the Dedicated queues: The queue qnvidia is dedicated to access the Nvidia accelerated nodes, the qmic to access MIC nodes and qfat the Fat nodes. It is required that active project with nonzero remaining resources is specified to enter these queues. 23 nvidia, 4 mic and 2 fat nodes are included. Full nodes, 16 cores per node are allocated. The queues run with very high priority, the jobs will be scheduled before the jobs coming from the qexp queue. An PI needs explicitly ask support for authorization to enter the dedicated queues for all users associated to her/his Project. +- **qfree**, The Free resource queue: The queue qfree is intended for utilization of free resources, after a Project exhausted all its allocated computational resources (Does not apply to DD projects by default. DD projects have to request for persmission on qfree after exhaustion of computational resources.). It is required that active project is specified to enter the queue, however no remaining resources are required. Consumed resources will be accounted to the Project. Only 178 nodes without accelerator may be accessed from this queue. Full nodes, 16 cores per node are allocated. The queue runs with very low priority and no special authorization is required to use it. The maximum runtime in qfree is 12 hours. ### Notes -The job wall clock time defaults to **half the maximum time**, see table -above. Longer wall time limits can be [set manually, see -examples](job-submission-and-execution.html). +The job wall clock time defaults to **half the maximum time**, see table above. Longer wall time limits can be [set manually, see examples](job-submission-and-execution.html). -Jobs that exceed the reserved wall clock time (Req'd Time) get killed -automatically. Wall clock time limit can be changed for queuing jobs -(state Q) using the qalter command, however can not be changed for a -running job (state R). +Jobs that exceed the reserved wall clock time (Req'd Time) get killed automatically. Wall clock time limit can be changed for queuing jobs (state Q) using the qalter command, however can not be changed for a running job (state R). -Anselm users may check current queue configuration at -<https://extranet.it4i.cz/anselm/queues>. +Anselm users may check current queue configuration at <https://extranet.it4i.cz/anselm/queues>. ### Queue status -Check the status of jobs, queues and compute nodes at -<https://extranet.it4i.cz/anselm/> +>Check the status of jobs, queues and compute nodes at <https://extranet.it4i.cz/anselm/>  Display the queue status on Anselm: -` +```bash $ qstat -q -` +``` -The PBS allocation overview may be obtained also using the rspbs -command. +The PBS allocation overview may be obtained also using the rspbs command. -` +```bash $ rspbs Usage: rspbs [options] @@ -173,41 +99,27 @@ Options:                        Only for given node state (affects only --get-node*                        --get-qlist-* --get-ibswitch-* actions)  --incl-finished      Include finished jobs -` +``` Resources Accounting Policy ------------------------------- ### The Core-Hour -The resources that are currently subject to accounting are the -core-hours. The core-hours are accounted on the wall clock basis. The -accounting runs whenever the computational cores are allocated or -blocked via the PBS Pro workload manager (the qsub command), regardless -of whether the cores are actually used for any calculation. 1 core-hour -is defined as 1 processor core allocated for 1 hour of wall clock time. -Allocating a full node (16 cores) for 1 hour accounts to 16 core-hours. -See example in the [Job submission and -execution](job-submission-and-execution.html) section. +The resources that are currently subject to accounting are the core-hours. The core-hours are accounted on the wall clock basis. The accounting runs whenever the computational cores are allocated or blocked via the PBS Pro workload manager (the qsub command), regardless of whether the cores are actually used for any calculation. 1 core-hour is defined as 1 processor core allocated for 1 hour of wall clock time. Allocating a full node (16 cores) for 1 hour accounts to 16 core-hours. See example in the [Job submission and execution](job-submission-and-execution.html) section. ### Check consumed resources -The **it4ifree** command is a part of it4i.portal.clients package, -located here: +>The **it4ifree** command is a part of it4i.portal.clients package, located here: <https://pypi.python.org/pypi/it4i.portal.clients> -User may check at any time, how many core-hours have been consumed by -himself/herself and his/her projects. The command is available on -clusters' login nodes. +User may check at any time, how many core-hours have been consumed by himself/herself and his/her projects. The command is available on clusters' login nodes. -` +```bash $ it4ifree Password:     PID  Total Used ...by me Free   -------- ------- ------ -------- -------   OPEN-0-0 1500000 400644  225265 1099356   DD-13-1   10000 2606 2606 7394 -` - - - +``` \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/storage-1/cesnet-data-storage.md b/docs.it4i/anselm-cluster-documentation/storage-1/cesnet-data-storage.md index 22b880420d3c4fcba0b5574ebe1865f4fdb4fa24..8185c1bdd05c63070d3cf2c5686804af5222828a 100644 --- a/docs.it4i/anselm-cluster-documentation/storage-1/cesnet-data-storage.md +++ b/docs.it4i/anselm-cluster-documentation/storage-1/cesnet-data-storage.md @@ -1,128 +1,99 @@ -CESNET Data Storage +CESNET Data Storage =================== - - Introduction ------------ +Do not use shared filesystems at IT4Innovations as a backup for large amount of data or long-term archiving purposes. -Do not use shared filesystems at IT4Innovations as a backup for large -amount of data or long-term archiving purposes. - -The IT4Innovations does not provide storage capacity for data archiving. -Academic staff and students of research institutions in the Czech -Republic can use [CESNET Storage -service](https://du.cesnet.cz/). +>The IT4Innovations does not provide storage capacity for data archiving. Academic staff and students of research institutions in the Czech Republic can use [CESNET Storage service](https://du.cesnet.cz/). -The CESNET Storage service can be used for research purposes, mainly by -academic staff and students of research institutions in the Czech -Republic. +The CESNET Storage service can be used for research purposes, mainly by academic staff and students of research institutions in the Czech Republic. -User of data storage CESNET (DU) association can become organizations or -an individual person who is either in the current employment -relationship (employees) or the current study relationship (students) to -a legal entity (organization) that meets the “Principles for access to -CESNET Large infrastructure (Access Policy)”. +User of data storage CESNET (DU) association can become organizations or an individual person who is either in the current employment relationship (employees) or the current study relationship (students) to a legal entity (organization) that meets the “Principles for access to CESNET Large infrastructure (Access Policy)”. -User may only use data storage CESNET for data transfer and storage -which are associated with activities in science, research, development, -the spread of education, culture and prosperity. In detail see -“Acceptable Use Policy CESNET Large Infrastructure (Acceptable Use -Policy, AUP)”. +User may only use data storage CESNET for data transfer and storage which are associated with activities in science, research, development, the spread of education, culture and prosperity. In detail see “Acceptable Use Policy CESNET Large Infrastructure (Acceptable Use Policy, AUP)”. -The service is documented at -<https://du.cesnet.cz/wiki/doku.php/en/start>. For special requirements -please contact directly CESNET Storage Department via e-mail -[du-support(at)cesnet.cz](mailto:du-support@cesnet.cz). +The service is documented at <https://du.cesnet.cz/wiki/doku.php/en/start>. For special requirements please contact directly CESNET Storage Department via e-mail [du-support(at)cesnet.cz](mailto:du-support@cesnet.cz). The procedure to obtain the CESNET access is quick and trouble-free. -(source -[https://du.cesnet.cz/](https://du.cesnet.cz/wiki/doku.php/en/start "CESNET Data Storage")) +(source [https://du.cesnet.cz/](https://du.cesnet.cz/wiki/doku.php/en/start "CESNET Data Storage")) CESNET storage access --------------------- ### Understanding Cesnet storage -It is very important to understand the Cesnet storage before uploading -data. Please read -<https://du.cesnet.cz/en/navody/home-migrace-plzen/start> first. +>It is very important to understand the Cesnet storage before uploading data. Please read <https://du.cesnet.cz/en/navody/home-migrace-plzen/start> first. -Once registered for CESNET Storage, you may [access the -storage](https://du.cesnet.cz/en/navody/faq/start) in -number of ways. We recommend the SSHFS and RSYNC methods. +Once registered for CESNET Storage, you may [access the storage](https://du.cesnet.cz/en/navody/faq/start) in number of ways. We recommend the SSHFS and RSYNC methods. ### SSHFS Access -SSHFS: The storage will be mounted like a local hard drive +>SSHFS: The storage will be mounted like a local hard drive -The SSHFS provides a very convenient way to access the CESNET Storage. -The storage will be mounted onto a local directory, exposing the vast -CESNET Storage as if it was a local removable harddrive. Files can be -than copied in and out in a usual fashion. +The SSHFS provides a very convenient way to access the CESNET Storage. The storage will be mounted onto a local directory, exposing the vast CESNET Storage as if it was a local removable harddrive. Files can be than copied in and out in a usual fashion. First, create the mountpoint +```bash $ mkdir cesnet +``` -Mount the storage. Note that you can choose among the ssh.du1.cesnet.cz -(Plzen), ssh.du2.cesnet.cz (Jihlava), ssh.du3.cesnet.cz (Brno) -Mount tier1_home **(only 5120M !)**: +Mount the storage. Note that you can choose among the ssh.du1.cesnet.cz (Plzen), ssh.du2.cesnet.cz (Jihlava), ssh.du3.cesnet.cz (Brno) Mount tier1_home **(only 5120M !)**: +```bash $ sshfs username@ssh.du1.cesnet.cz:. cesnet/ +``` For easy future access from Anselm, install your public key +```bash $ cp .ssh/id_rsa.pub cesnet/.ssh/authorized_keys +``` Mount tier1_cache_tape for the Storage VO: +```bash $ sshfs username@ssh.du1.cesnet.cz:/cache_tape/VO_storage/home/username cesnet/ +``` View the archive, copy the files and directories in and out - $ ls cesnet/ +```bash + $ ls cesnet/ $ cp -a mydir cesnet/. $ cp cesnet/myfile . +``` Once done, please remember to unmount the storage +```bash $ fusermount -u cesnet +``` ### Rsync access -Rsync provides delta transfer for best performance, can resume -interrupted transfers +>Rsync provides delta transfer for best performance, can resume interrupted transfers -Rsync is a fast and extraordinarily versatile file copying tool. It is -famous for its delta-transfer algorithm, which reduces the amount of -data sent over the network by sending only the differences between the -source files and the existing files in the destination. Rsync is widely -used for backups and mirroring and as an improved copy command for -everyday use. +Rsync is a fast and extraordinarily versatile file copying tool. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use. -Rsync finds files that need to be transferred using a "quick check" -algorithm (by default) that looks for files that have changed in size or -in last-modified time. Any changes in the other preserved attributes -(as requested by options) are made on the destination file directly when -the quick check indicates that the file's data does not need to be -updated. +Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time. Any changes in the other preserved attributes (as requested by options) are made on the destination file directly when the quick check indicates that the file's data does not need to be updated. -More about Rsync at -<https://du.cesnet.cz/en/navody/rsync/start#pro_bezne_uzivatele> +More about Rsync at <https://du.cesnet.cz/en/navody/rsync/start#pro_bezne_uzivatele> -Transfer large files to/from Cesnet storage, assuming membership in the -Storage VO +Transfer large files to/from Cesnet storage, assuming membership in the Storage VO +```bash $ rsync --progress datafile username@ssh.du1.cesnet.cz:VO_storage-cache_tape/. $ rsync --progress username@ssh.du1.cesnet.cz:VO_storage-cache_tape/datafile . +``` -Transfer large directories to/from Cesnet storage, assuming membership -in the Storage VO +Transfer large directories to/from Cesnet storage, assuming membership in the Storage VO +```bash $ rsync --progress -av datafolder username@ssh.du1.cesnet.cz:VO_storage-cache_tape/. $ rsync --progress -av username@ssh.du1.cesnet.cz:VO_storage-cache_tape/datafolder . +``` -Transfer rates of about 28MB/s can be expected. - +Transfer rates of about 28MB/s can be expected. \ No newline at end of file diff --git a/docs.it4i/anselm-cluster-documentation/storage-1/storage.md b/docs.it4i/anselm-cluster-documentation/storage-1/storage.md index 2a58b726d505798696080198c159d55dbc9138f9..cba4781863899c65f1654ec8c4162ad660a27c1f 100644 --- a/docs.it4i/anselm-cluster-documentation/storage-1/storage.md +++ b/docs.it4i/anselm-cluster-documentation/storage-1/storage.md @@ -1,94 +1,46 @@ -Storage +Storage ======= - - -There are two main shared file systems on Anselm cluster, the -[HOME](../storage.html#home) and -[SCRATCH](../storage.html#scratch). All login and compute -nodes may access same data on shared filesystems. Compute nodes are also -equipped with local (non-shared) scratch, ramdisk and tmp filesystems. +There are two main shared file systems on Anselm cluster, the [HOME](../storage.html#home) and [SCRATCH](../storage.html#scratch). All login and compute nodes may access same data on shared filesystems. Compute nodes are also equipped with local (non-shared) scratch, ramdisk and tmp filesystems. Archiving --------- -Please don't use shared filesystems as a backup for large amount of data -or long-term archiving mean. The academic staff and students of research -institutions in the Czech Republic can use [CESNET storage -service](cesnet-data-storage.html), which is available -via SSHFS. +Please don't use shared filesystems as a backup for large amount of data or long-term archiving mean. The academic staff and students of research institutions in the Czech Republic can use [CESNET storage service](cesnet-data-storage.html), which is available via SSHFS. Shared Filesystems ------------------ -Anselm computer provides two main shared filesystems, the [HOME -filesystem](../storage.html#home) and the [SCRATCH -filesystem](../storage.html#scratch). Both HOME and -SCRATCH filesystems are realized as a parallel Lustre filesystem. Both -shared file systems are accessible via the Infiniband network. Extended -ACLs are provided on both Lustre filesystems for the purpose of sharing -data with other users using fine-grained control. +Anselm computer provides two main shared filesystems, the [HOME filesystem](../storage.html#home) and the [SCRATCH filesystem](../storage.html#scratch). Both HOME and SCRATCH filesystems are realized as a parallel Lustre filesystem. Both shared file systems are accessible via the Infiniband network. Extended ACLs are provided on both Lustre filesystems for the purpose of sharing data with other users using fine-grained control. ### Understanding the Lustre Filesystems (source <http://www.nas.nasa.gov>) -A user file on the Lustre filesystem can be divided into multiple chunks -(stripes) and stored across a subset of the object storage targets -(OSTs) (disks). The stripes are distributed among the OSTs in a -round-robin fashion to ensure load balancing. - -When a client (a compute -node from your job) needs to create -or access a file, the client queries the metadata server ( -MDS) and the metadata target ( -MDT) for the layout and location of the -[file's -stripes](http://www.nas.nasa.gov/hecc/support/kb/Lustre_Basics_224.html#striping). -Once the file is opened and the client obtains the striping information, -the MDS is no longer involved in the -file I/O process. The client interacts directly with the object storage -servers (OSSes) and OSTs to perform I/O operations such as locking, disk -allocation, storage, and retrieval. - -If multiple clients try to read and write the same part of a file at the -same time, the Lustre distributed lock manager enforces coherency so -that all clients see consistent results. - -There is default stripe configuration for Anselm Lustre filesystems. -However, users can set the following stripe parameters for their own -directories or files to get optimum I/O performance: - -1. stripe_size: the size of the chunk in bytes; specify with k, m, or - g to use units of KB, MB, or GB, respectively; the size must be an - even multiple of 65,536 bytes; default is 1MB for all Anselm Lustre - filesystems -2. stripe_count the number of OSTs to stripe across; default is 1 for - Anselm Lustre filesystems one can specify -1 to use all OSTs in - the filesystem. -3. stripe_offset The index of the - OST where the first stripe is to be - placed; default is -1 which results in random selection; using a - non-default value is NOT recommended. +A user file on the Lustre filesystem can be divided into multiple chunks (stripes) and stored across a subset of the object storage targets (OSTs) (disks). The stripes are distributed among the OSTs in a round-robin fashion to ensure load balancing. - +When a client (a compute node from your job) needs to create or access a file, the client queries the metadata server ( MDS) and the metadata target ( MDT) for the layout and location of the [file's stripes](http://www.nas.nasa.gov/hecc/support/kb/Lustre_Basics_224.html#striping). Once the file is opened and the client obtains the striping information, the MDS is no longer involved in the file I/O process. The client interacts directly with the object storage servers (OSSes) and OSTs to perform I/O operations such as locking, disk allocation, storage, and retrieval. + +If multiple clients try to read and write the same part of a file at the same time, the Lustre distributed lock manager enforces coherency so that all clients see consistent results. + +There is default stripe configuration for Anselm Lustre filesystems. However, users can set the following stripe parameters for their own directories or files to get optimum I/O performance: + +1. stripe_size: the size of the chunk in bytes; specify with k, m, or g to use units of KB, MB, or GB, respectively; the size must be an even multiple of 65,536 bytes; default is 1MB for all Anselm Lustre filesystems +2. stripe_count the number of OSTs to stripe across; default is 1 for Anselm Lustre filesystems one can specify -1 to use all OSTs in the filesystem. +3. stripe_offset The index of the OST where the first stripe is to be placed; default is -1 which results in random selection; using a non-default value is NOT recommended. -Setting stripe size and stripe count correctly for your needs may -significantly impact the I/O performance you experience. +>Setting stripe size and stripe count correctly for your needs may significantly impact the I/O performance you experience. -Use the lfs getstripe for getting the stripe parameters. Use the lfs -setstripe command for setting the stripe parameters to get optimal I/O -performance The correct stripe setting depends on your needs and file -access patterns. +Use the lfs getstripe for getting the stripe parameters. Use the lfs setstripe command for setting the stripe parameters to get optimal I/O performance The correct stripe setting depends on your needs and file access patterns. -` -$ lfs getstripe dir|filename +```bash +$ lfs getstripe dir|filename $ lfs setstripe -s stripe_size -c stripe_count -o stripe_offset dir|filename -` +``` Example: -` +```bash $ lfs getstripe /scratch/username/ /scratch/username/ stripe_count: 1 stripe_size: 1048576 stripe_offset: -1 @@ -97,199 +49,117 @@ $ lfs setstripe -c -1 /scratch/username/ $ lfs getstripe /scratch/username/ /scratch/username/ stripe_count: 10 stripe_size: 1048576 stripe_offset: -1 -` +``` -In this example, we view current stripe setting of the -/scratch/username/ directory. The stripe count is changed to all OSTs, -and verified. All files written to this directory will be striped over -10 OSTs +In this example, we view current stripe setting of the /scratch/username/ directory. The stripe count is changed to all OSTs, and verified. All files written to this directory will be striped over 10 OSTs -Use lfs check OSTs to see the number and status of active OSTs for each -filesystem on Anselm. Learn more by reading the man page +Use lfs check OSTs to see the number and status of active OSTs for each filesystem on Anselm. Learn more by reading the man page -` +```bash $ lfs check osts $ man lfs -` +``` ### Hints on Lustre Stripping -Increase the stripe_count for parallel I/O to the same file. +>Increase the stripe_count for parallel I/O to the same file. -When multiple processes are writing blocks of data to the same file in -parallel, the I/O performance for large files will improve when the -stripe_count is set to a larger value. The stripe count sets the number -of OSTs the file will be written to. By default, the stripe count is set -to 1. While this default setting provides for efficient access of -metadata (for example to support the ls -l command), large files should -use stripe counts of greater than 1. This will increase the aggregate -I/O bandwidth by using multiple OSTs in parallel instead of just one. A -rule of thumb is to use a stripe count approximately equal to the number -of gigabytes in the file. +When multiple processes are writing blocks of data to the same file in parallel, the I/O performance for large files will improve when the stripe_count is set to a larger value. The stripe count sets the number of OSTs the file will be written to. By default, the stripe count is set to 1. While this default setting provides for efficient access of metadata (for example to support the ls -l command), large files should use stripe counts of greater than 1. This will increase the aggregate I/O bandwidth by using multiple OSTs in parallel instead of just one. A rule of thumb is to use a stripe count approximately equal to the number of gigabytes in the file. -Another good practice is to make the stripe count be an integral factor -of the number of processes performing the write in parallel, so that you -achieve load balance among the OSTs. For example, set the stripe count -to 16 instead of 15 when you have 64 processes performing the writes. +Another good practice is to make the stripe count be an integral factor of the number of processes performing the write in parallel, so that you achieve load balance among the OSTs. For example, set the stripe count to 16 instead of 15 when you have 64 processes performing the writes. -Using a large stripe size can improve performance when accessing very -large files +>Using a large stripe size can improve performance when accessing very large files -Large stripe size allows each client to have exclusive access to its own -part of a file. However, it can be counterproductive in some cases if it -does not match your I/O pattern. The choice of stripe size has no effect -on a single-stripe file. +Large stripe size allows each client to have exclusive access to its own part of a file. However, it can be counterproductive in some cases if it does not match your I/O pattern. The choice of stripe size has no effect on a single-stripe file. -Read more on -<http://wiki.lustre.org/manual/LustreManual20_HTML/ManagingStripingFreeSpace.html> +Read more on <http://wiki.lustre.org/manual/LustreManual20_HTML/ManagingStripingFreeSpace.html> ### Lustre on Anselm -The architecture of Lustre on Anselm is composed of two metadata -servers (MDS) and four data/object storage servers (OSS). Two object -storage servers are used for file system HOME and another two object -storage servers are used for file system SCRATCH. +The architecture of Lustre on Anselm is composed of two metadata servers (MDS) and four data/object storage servers (OSS). Two object storage servers are used for file system HOME and another two object storage servers are used for file system SCRATCH. Configuration of the storages - HOME Lustre object storage - - - One disk array NetApp E5400 - 22 OSTs - 227 2TB NL-SAS 7.2krpm disks - 22 groups of 10 disks in RAID6 (8+2) - 7 hot-spare disks - - - - SCRATCH Lustre object storage - - - Two disk arrays NetApp E5400 - 10 OSTs - 106 2TB NL-SAS 7.2krpm disks - 10 groups of 10 disks in RAID6 (8+2) - 6 hot-spare disks - - - - Lustre metadata storage - - - One disk array NetApp E2600 - 12 300GB SAS 15krpm disks - 2 groups of 5 disks in RAID5 - 2 hot-spare disks - - ###HOME -The HOME filesystem is mounted in directory /home. Users home -directories /home/username reside on this filesystem. Accessible -capacity is 320TB, shared among all users. Individual users are -restricted by filesystem usage quotas, set to 250GB per user. >If -250GB should prove as insufficient for particular user, please -contact [support](https://support.it4i.cz/rt), -the quota may be lifted upon request. - -The HOME filesystem is intended for preparation, evaluation, processing -and storage of data generated by active Projects. - -The HOME filesystem should not be used to archive data of past Projects -or other unrelated data. - -The files on HOME filesystem will not be deleted until end of the [users -lifecycle](../../get-started-with-it4innovations/obtaining-login-credentials/obtaining-login-credentials.html). - -The filesystem is backed up, such that it can be restored in case of -catasthropic failure resulting in significant data loss. This backup -however is not intended to restore old versions of user data or to -restore (accidentaly) deleted files. - -The HOME filesystem is realized as Lustre parallel filesystem and is -available on all login and computational nodes. -Default stripe size is 1MB, stripe count is 1. There are 22 OSTs -dedicated for the HOME filesystem. - -Setting stripe size and stripe count correctly for your needs may -significantly impact the I/O performance you experience. - -HOME filesystem -Mountpoint -/home -Capacity -320TB -Throughput -2GB/s -User quota -250GB -Default stripe size -1MB -Default stripe count -1 -Number of OSTs -22 +The HOME filesystem is mounted in directory /home. Users home directories /home/username reside on this filesystem. Accessible capacity is 320TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 250GB per user. If 250GB should prove as insufficient for particular user, please contact [support](https://support.it4i.cz/rt), the quota may be lifted upon request. + +>The HOME filesystem is intended for preparation, evaluation, processing and storage of data generated by active Projects. + +The HOME filesystem should not be used to archive data of past Projects or other unrelated data. + +The files on HOME filesystem will not be deleted until end of the [users lifecycle](../../get-started-with-it4innovations/obtaining-login-credentials/obtaining-login-credentials.html). + +The filesystem is backed up, such that it can be restored in case of catasthropic failure resulting in significant data loss. This backup however is not intended to restore old versions of user data or to restore (accidentaly) deleted files. + +The HOME filesystem is realized as Lustre parallel filesystem and is available on all login and computational nodes. +Default stripe size is 1MB, stripe count is 1. There are 22 OSTs dedicated for the HOME filesystem. + +>Setting stripe size and stripe count correctly for your needs may significantly impact the I/O performance you experience. + +|HOME filesystem|| +|---|---| +|Mountpoint|/home| +|Capacity|320TB| +|Throughput|2GB/s| +|User quota|250GB| +|Default stripe size|1MB| +|Default stripe count|1| +|Number of OSTs|22| + ###SCRATCH -The SCRATCH filesystem is mounted in directory /scratch. Users may -freely create subdirectories and files on the filesystem. Accessible -capacity is 146TB, shared among all users. Individual users are -restricted by filesystem usage quotas, set to 100TB per user. The -purpose of this quota is to prevent runaway programs from filling the -entire filesystem and deny service to other users. >If 100TB should -prove as insufficient for particular user, please contact -[support](https://support.it4i.cz/rt), the quota may be -lifted upon request. - -The Scratch filesystem is intended for temporary scratch data generated -during the calculation as well as for high performance access to input -and output files. All I/O intensive jobs must use the SCRATCH filesystem -as their working directory. - -Users are advised to save the necessary data from the SCRATCH filesystem -to HOME filesystem after the calculations and clean up the scratch -files. - -Files on the SCRATCH filesystem that are **not accessed for more than 90 -days** will be automatically **deleted**. - -The SCRATCH filesystem is realized as Lustre parallel filesystem and is -available from all login and computational nodes. -Default stripe size is 1MB, stripe count is 1. There are 10 OSTs -dedicated for the SCRATCH filesystem. - -Setting stripe size and stripe count correctly for your needs may -significantly impact the I/O performance you experience. - -SCRATCH filesystem -Mountpoint -/scratch -Capacity -146TB -Throughput -6GB/s -User quota -100TB -Default stripe size -1MB -Default stripe count -1 -Number of OSTs -10 +The SCRATCH filesystem is mounted in directory /scratch. Users may freely create subdirectories and files on the filesystem. Accessible capacity is 146TB, shared among all users. Individual users are restricted by filesystem usage quotas, set to 100TB per user. The purpose of this quota is to prevent runaway programs from filling the entire filesystem and deny service to other users. If 100TB should prove as insufficient for particular user, please contact [support](https://support.it4i.cz/rt), the quota may be lifted upon request. + +>The Scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. All I/O intensive jobs must use the SCRATCH filesystem as their working directory. + +>Users are advised to save the necessary data from the SCRATCH filesystem to HOME filesystem after the calculations and clean up the scratch files. + +>Files on the SCRATCH filesystem that are **not accessed for more than 90 days** will be automatically **deleted**. + +The SCRATCH filesystem is realized as Lustre parallel filesystem and is available from all login and computational nodes. Default stripe size is 1MB, stripe count is 1. There are 10 OSTs dedicated for the SCRATCH filesystem. + +>Setting stripe size and stripe count correctly for your needs may significantly impact the I/O performance you experience. + +|SCRATCH filesystem|| +|---|---| +|Mountpoint|/scratch| +|Capacity|146TB| +|Throughput|6GB/s| +|User quota|100TB| +|Default stripe size|1MB| +|Default stripe count|1| +|Number of OSTs|10| + ### Disk usage and quota commands -User quotas on the file systems can be checked and reviewed using -following command: +User quotas on the file systems can be checked and reviewed using following command: -` +```bash $ lfs quota dir -` +``` Example for Lustre HOME directory: -` +```bash $ lfs quota /home Disk quotas for user user001 (uid 1234): Filesystem kbytes quota limit grace files quota limit grace @@ -297,14 +167,13 @@ Disk quotas for user user001 (uid 1234): Disk quotas for group user001 (gid 1234): Filesystem kbytes quota limit grace files quota limit grace /home 300096 0 0 - 2102 0 0 - -` +``` -In this example, we view current quota size limit of 250GB and 300MB -currently used by user001. +In this example, we view current quota size limit of 250GB and 300MB currently used by user001. Example for Lustre SCRATCH directory: -` +```bash $ lfs quota /scratch Disk quotas for user user001 (uid 1234): Filesystem kbytes quota limit grace files quota limit grace @@ -312,23 +181,19 @@ Disk quotas for user user001 (uid 1234): Disk quotas for group user001 (gid 1234): Filesystem kbytes quota limit grace files quota limit grace /scratch    8    0    0    -    3    0    0    - -` +``` -In this example, we view current quota size limit of 100TB and 8KB -currently used by user001. +In this example, we view current quota size limit of 100TB and 8KB currently used by user001. - +To have a better understanding of where the space is exactly used, you can use following command to find out. -To have a better understanding of where the space is exactly used, you -can use following command to find out. - -` +```bash $ du -hs dir -` +``` Example for your HOME directory: -` +```bash $ cd /home $ du -hs * .[a-zA-z0-9]* | grep -E "[0-9]*G|[0-9]*M" | sort -hr 258M cuda-samples @@ -336,37 +201,27 @@ $ du -hs * .[a-zA-z0-9]* | grep -E "[0-9]*G|[0-9]*M" | sort -hr 13M .mozilla 5,5M .eclipse 2,7M .idb_13.0_linux_intel64_app -` +``` -This will list all directories which are having MegaBytes or GigaBytes -of consumed space in your actual (in this example HOME) directory. List -is sorted in descending order from largest to smallest -files/directories. +This will list all directories which are having MegaBytes or GigaBytes of consumed space in your actual (in this example HOME) directory. List is sorted in descending order from largest to smallest files/directories. -To have a better understanding of previous commands, you can read -manpages. +To have a better understanding of previous commands, you can read manpages. -` +```bash $ man lfs -` +``` -` -$ man du -` +```bash +$ man du +``` ### Extended ACLs -Extended ACLs provide another security mechanism beside the standard -POSIX ACLs which are defined by three entries (for -owner/group/others). Extended ACLs have more than the three basic -entries. In addition, they also contain a mask entry and may contain any -number of named user and named group entries. +Extended ACLs provide another security mechanism beside the standard POSIX ACLs which are defined by three entries (for owner/group/others). Extended ACLs have more than the three basic entries. In addition, they also contain a mask entry and may contain any number of named user and named group entries. -ACLs on a Lustre file system work exactly like ACLs on any Linux file -system. They are manipulated with the standard tools in the standard -manner. Below, we create a directory and allow a specific user access. +ACLs on a Lustre file system work exactly like ACLs on any Linux file system. They are manipulated with the standard tools in the standard manner. Below, we create a directory and allow a specific user access. -` +```bash [vop999@login1.anselm ~]$ umask 027 [vop999@login1.anselm ~]$ mkdir test [vop999@login1.anselm ~]$ ls -ld test @@ -391,13 +246,9 @@ user:johnsm:rwx group::r-x mask::rwx other::--- -` +``` -Default ACL mechanism can be used to replace setuid/setgid permissions -on directories. Setting a default ACL on a directory (-d flag to -setfacl) will cause the ACL permissions to be inherited by any newly -created file or subdirectory within the directory. Refer to this page -for more information on Linux ACL: +Default ACL mechanism can be used to replace setuid/setgid permissions on directories. Setting a default ACL on a directory (-d flag to setfacl) will cause the ACL permissions to be inherited by any newly created file or subdirectory within the directory. Refer to this page for more information on Linux ACL: [http://www.vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html ](http://www.vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html) @@ -406,97 +257,59 @@ Local Filesystems ### Local Scratch -Every computational node is equipped with 330GB local scratch disk. - -Use local scratch in case you need to access large amount of small files -during your calculation. - -The local scratch disk is mounted as /lscratch and is accessible to -user at /lscratch/$PBS_JOBID directory. - -The local scratch filesystem is intended for temporary scratch data -generated during the calculation as well as for high performance access -to input and output files. All I/O intensive jobs that access large -number of small files within the calculation must use the local scratch -filesystem as their working directory. This is required for performance -reasons, as frequent access to number of small files may overload the -metadata servers (MDS) of the Lustre filesystem. - -The local scratch directory /lscratch/$PBS_JOBID will be deleted -immediately after the calculation end. Users should take care to save -the output data from within the jobscript. - -local SCRATCH filesystem -Mountpoint -/lscratch -Accesspoint -/lscratch/$PBS_JOBID -Capacity -330GB -Throughput -100MB/s -User quota -none -### RAM disk +>Every computational node is equipped with 330GB local scratch disk. -Every computational node is equipped with filesystem realized in memory, -so called RAM disk. +Use local scratch in case you need to access large amount of small files during your calculation. -Use RAM disk in case you need really fast access to your data of limited -size during your calculation. -Be very careful, use of RAM disk filesystem is at the expense of -operational memory. +The local scratch disk is mounted as /lscratch and is accessible to user at /lscratch/$PBS_JOBID directory. -The local RAM disk is mounted as /ramdisk and is accessible to user -at /ramdisk/$PBS_JOBID directory. +The local scratch filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. All I/O intensive jobs that access large number of small files within the calculation must use the local scratch filesystem as their working directory. This is required for performance reasons, as frequent access to number of small files may overload the metadata servers (MDS) of the Lustre filesystem. -The local RAM disk filesystem is intended for temporary scratch data -generated during the calculation as well as for high performance access -to input and output files. Size of RAM disk filesystem is limited. Be -very careful, use of RAM disk filesystem is at the expense of -operational memory. It is not recommended to allocate large amount of -memory and use large amount of data in RAM disk filesystem at the same -time. +>The local scratch directory /lscratch/$PBS_JOBID will be deleted immediately after the calculation end. Users should take care to save the output data from within the jobscript. -The local RAM disk directory /ramdisk/$PBS_JOBID will be deleted -immediately after the calculation end. Users should take care to save -the output data from within the jobscript. +|local SCRATCH filesystem|| +|---|---| +|Mountpoint|/lscratch| +|Accesspoint|/lscratch/$PBS_JOBID| +|Capacity|330GB| +|Throughput|100MB/s| +|User quota|none| -RAM disk -Mountpoint - /ramdisk -Accesspoint - /ramdisk/$PBS_JOBID -Capacity -60GB at compute nodes without accelerator +### RAM disk -90GB at compute nodes with accelerator +Every computational node is equipped with filesystem realized in memory, so called RAM disk. -500GB at fat nodes +>Use RAM disk in case you need really fast access to your data of limited size during your calculation. Be very careful, use of RAM disk filesystem is at the expense of +operational memory. -Throughput -over 1.5 GB/s write, over 5 GB/s read, single thread -over 10 GB/s write, over 50 GB/s read, 16 threads +The local RAM disk is mounted as /ramdisk and is accessible to user at /ramdisk/$PBS_JOBID directory. + +The local RAM disk filesystem is intended for temporary scratch data generated during the calculation as well as for high performance access to input and output files. Size of RAM disk filesystem is limited. Be very careful, use of RAM disk filesystem is at the expense of operational memory. It is not recommended to allocate large amount of memory and use large amount of data in RAM disk filesystem at the same time. + +>The local RAM disk directory /ramdisk/$PBS_JOBID will be deleted immediately after the calculation end. Users should take care to save the output data from within the jobscript. + +|RAM disk|| +|---|---| +|Mountpoint| /ramdisk| +|Accesspoint| /ramdisk/$PBS_JOBID| +|Capacity|60GB at compute nodes without accelerator, 90GB at compute nodes with accelerator, 500GB at fat nodes| +|Throughput|over 1.5 GB/s write, over 5 GB/s read, single thread, over 10 GB/s write, over 50 GB/s read, 16 threads| +|User quota|none| -User quota -none ### tmp -Each node is equipped with local /tmp directory of few GB capacity. The -/tmp directory should be used to work with small temporary files. Old -files in /tmp directory are automatically purged. +Each node is equipped with local /tmp directory of few GB capacity. The /tmp directory should be used to work with small temporary files. Old files in /tmp directory are automatically purged. Summary - ---------- - Mountpoint Usage Protocol Net Capacity Throughput Limitations Access Services - ------------------------------------ |---|---|----------------- ---------- ---------------- ------------ ------------- ---------- |**Version**|**Module**|------ - /home home directory Lustre 320 TiB 2 GB/s Quota 250GB Compute and login nodes backed up - /scratch cluster shared jobs' data Lustre 146 TiB 6 GB/s Quota 100TB Compute and login nodes files older 90 days removed - /lscratch node local jobs' data local 330 GB 100 MB/s none Compute nodes purged after job ends - /ramdisk node local jobs' data local 60, 90, 500 GB 5-50 GB/s none Compute nodes purged after job ends - /tmp local temporary files local 9.5 GB 100 MB/s none Compute and login nodes auto purged +|Mountpoint|Usage|Protocol|Net Capacity|Throughput|Limitations|Access|Services| +|---|---| +|/home|home directory|Lustre|320 TiB|2 GB/s|Quota 250GB|Compute and login nodes|backed up| +|/scratch|cluster shared jobs' data|Lustre|146 TiB|6 GB/s|Quota 100TB|Compute and login nodes|files older 90 days removed| +|/lscratch|node local jobs' data|local|330 GB|100 MB/s|none|Compute nodes|purged after job ends| +|/ramdisk|node local jobs' data|local|60, 90, 500 GB|5-50 GB/s|none|Compute nodes|purged after job ends| +|/tmp|local temporary files|local|9.5 GB|100 MB/s|none|Compute and login nodes|auto| purged  diff --git a/docs.it4i/index.md b/docs.it4i/index.md index f99c494d9c204a5832fe1c55d520658ef12b5a1c..cb9b3b4876b4820b5f2197da0ec83c64b315fc7d 100644 --- a/docs.it4i/index.md +++ b/docs.it4i/index.md @@ -1,144 +1,68 @@ -Documentation +Documentation ============= - - -Welcome to IT4Innovations documentation pages. The IT4Innovations -national supercomputing center operates supercomputers -[Salomon](salomon.html) and -[Anselm](anselm.html). The supercomputers are [ -available](get-started-with-it4innovations/applying-for-resources.html) -to academic community within the Czech Republic and Europe and -industrial community worldwide. The purpose of these pages is to provide -a comprehensive documentation on hardware, software and usage of the -computers. +Welcome to IT4Innovations documentation pages. The IT4Innovations national supercomputing center operates supercomputers [Salomon](salomon.html) and [Anselm](anselm.html). The supercomputers are [ available](get-started-with-it4innovations/applying-for-resources.html) to academic community within the Czech Republic and Europe and industrial community worldwide. The purpose of these pages is to provide a comprehensive documentation on hardware, software and usage of the computers. How to read the documentation --------------------------------------------------------------------------------------------------- +----------------------------------------- -1. Read the list in the left column. Select the subject of interest. - Alternatively, use the Search box in the upper right corner. +1. Read the list in the left column. Select the subject of interest. Alternatively, use the Search box in the upper right corner. 2. Read the CONTENTS in the upper right corner. 3. Scan for all the yellow bulb call-outs on the page. -4. Read the details if still more information is needed. **Look for - examples** illustrating the concepts. - - - -The call-out.  Focus on the call-outs before reading full details. +4. Read the details if still more information is needed. **Look for examples** illustrating the concepts. - - -- Read the - [Changelog](get-started-with-it4innovations/changelog.html) - to keep up to date. +>The call-out.  Focus on the call-outs before reading full details. Getting Help and Support ------------------------ -Contact [support [at] -it4i.cz](mailto:support%20%5Bat%5D%20it4i.cz) for help and -support regarding the cluster technology at IT4Innovations. -Please use **Czech**, **Slovak** or **English** language for -communication with us. -Follow the status of your request to IT4Innovations at -[support.it4i.cz/rt](http://support.it4i.cz/rt). - - +>Contact [support [at] it4i.cz](mailto:support%20%5Bat%5D%20it4i.cz) for help and support regarding the cluster technology at IT4Innovations. Please use **Czech**, **Slovak** or **English** language for communication with us. Follow the status of your request to IT4Innovations at [support.it4i.cz/rt](http://support.it4i.cz/rt). -Use your IT4Innotations username and password to log in to the -[support](http://support.it4i.cz/) portal. +Use your IT4Innotations username and password to log in to the [support](http://support.it4i.cz/) portal. Required Proficiency -------------------- +>You need basic proficiency in Linux environment. -You need basic proficiency in Linux environment. +In order to use the system for your calculations, you need basic proficiency in Linux environment. To gain the proficiency, we recommend you reading the [ introduction to Linux](http://www.tldp.org/LDP/intro-linux/html/) operating system environment and installing a Linux distribution on your personal computer. A good choice might be the [ Fedora](http://fedoraproject.org/) distribution, as it is similar to systems on the clusters at IT4Innovations. It's easy to install and use. In fact, any distribution would do. - +>Learn how to parallelize your code! -In order to use the system for your calculations, you need basic -proficiency in Linux environment. To gain the proficiency, we recommend -you reading the [ introduction to -Linux](http://www.tldp.org/LDP/intro-linux/html/) -operating system environment and installing a Linux distribution on your -personal computer. A good choice might be the [ -Fedora](http://fedoraproject.org/) -distribution, as it is similar to systems on the clusters at -IT4Innovations. It's easy to install and use. In fact, any distribution -would do. - - - -Learn how to parallelize your code! - - - -In many cases, you will run your own code on the cluster. In order to -fully exploit the cluster, you will need to carefully consider how to -utilize all the cores available on the node and how to use multiple -nodes at the same time. You need to **parallelize** your code. -Proficieny in MPI, OpenMP, CUDA, UPC or GPI2 programming may be gained -via the [training provided by -IT4Innovations.](http://prace.it4i.cz) +In many cases, you will run your own code on the cluster. In order to fully exploit the cluster, you will need to carefully consider how to utilize all the cores available on the node and how to use multiple nodes at the same time. You need to **parallelize** your code. Proficieny in MPI, OpenMP, CUDA, UPC or GPI2 programming may be gained via the [training provided by IT4Innovations.](http://prace.it4i.cz) Terminology Frequently Used on These Pages ------------------------------------------ -- **node:** a computer, interconnected by network to other computers - - Computational nodes are powerful computers, designed and dedicated - for executing demanding scientific computations. -- **core:** processor core, a unit of processor, executing - computations -- **corehours:** wall clock hours of processor core time - Each node - is equipped with **X** processor cores, provides **X** corehours per - 1 wall clock hour. -- **job:** a calculation running on the supercomputer - The job - allocates and utilizes resources of the supercomputer for - certain time. +- **node:** a computer, interconnected by network to other computers - Computational nodes are powerful computers, designed and dedicated for executing demanding scientific computations. +- **core:** processor core, a unit of processor, executing computations +- **corehours:** wall clock hours of processor core time - Each node is equipped with **X** processor cores, provides **X** corehours per 1 wall clock hour. +- **job:** a calculation running on the supercomputer - The job allocates and utilizes resources of the supercomputer for certain time. - **HPC:** High Performance Computing -- **HPC (computational) resources:** corehours, storage capacity, - software licences +- **HPC (computational) resources:** corehours, storage capacity, software licences - **code:** a program -- **primary investigator (PI):** a person responsible for execution of - computational project and utilization of computational resources - allocated to that project -- **collaborator:** a person participating on execution of - computational project and utilization of computational resources - allocated to that project -- **project:** a computational project under investigation by the - PI - The project is identified by the project ID. The computational - resources are allocated and charged per project. -- **jobscript:** a script to be executed by the PBS Professional - workload manager +- **primary investigator (PI):** a person responsible for execution of computational project and utilization of computational resources allocated to that project +- **collaborator:** a person participating on execution of computational project and utilization of computational resources allocated to that project +- **project:** a computational project under investigation by the PI - The project is identified by the project ID. The computational resources are allocated and charged per project. +- **jobscript:** a script to be executed by the PBS Professional workload manager Conventions ----------- +In this documentation, you will find a number of pages containing examples. We use the following conventions: -In this documentation, you will find a number of pages containing -examples. We use the following conventions: - - Cluster command prompt +Cluster command prompt -` +```bash $ -` +``` Your local linux host command prompt -` +```bash local $ -` +```  Errata ------- -Although we have taken every care to ensure the accuracy of our content, -mistakes do happen. If you find a mistake in the text or the code we -would be grateful if you would report this to us. By doing so, you can -save other readers from frustration and help us improve subsequent -versions of this documentation. If you find any errata, please report -them by visiting http://support.it4i.cz/rt, creating a new ticket, and -entering the details of your errata. Once your errata are verified, your -submission will be accepted and the errata will be uploaded on our -website. +Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in the text or the code we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this documentation. If you find any errata, please report them by visiting http://support.it4i.cz/rt, creating a new ticket, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website.