<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
		<id>https://wiki.niif.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Herbert%28AT%29niif.hu</id>
		<title>Pro-M - Oktatási Üzletág - Wiki - Szerkesztő közreműködései [hu]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.niif.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Herbert%28AT%29niif.hu"/>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Herbert(AT)niif.hu"/>
		<updated>2026-11-07T22:24:01Z</updated>
		<subtitle>Szerkesztő közreműködései</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2652</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2652"/>
				<updated>2013-07-10T14:07:44Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* The most simple commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parallel.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn30                 BIP   0/0/24           0        linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                     BIP   0/7/24          7.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;parallel.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn30.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn31.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
&lt;br /&gt;
    cn01                linux-x64           24  24.43   62.9G    3.0G    0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    parallel.q            0.52     368     0    280    648     0       0 &lt;br /&gt;
    serial.q              0.05       5     0     91     96     0       0  &lt;br /&gt;
    test.q                0.00       0     0     24     24     0       0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    parallel.q@cn31         BIP   0/5/24               5.15     linux-x64       &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parallel.q@cn31          BIP          0/20/24               20.30     linux-x64            &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2651</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2651"/>
				<updated>2013-07-10T14:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Running MPI jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parael.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn30                 BIP   0/0/24           0        linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                     BIP   0/7/24          7.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;parallel.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn30.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn31.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
&lt;br /&gt;
    cn01                linux-x64           24  24.43   62.9G    3.0G    0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    parallel.q            0.52     368     0    280    648     0       0 &lt;br /&gt;
    serial.q              0.05       5     0     91     96     0       0  &lt;br /&gt;
    test.q                0.00       0     0     24     24     0       0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    parallel.q@cn31         BIP   0/5/24               5.15     linux-x64       &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parallel.q@cn31          BIP          0/20/24               20.30     linux-x64            &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2650</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2650"/>
				<updated>2013-07-10T14:05:44Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Running PVM job */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parael.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn30                 BIP   0/0/24           0        linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                     BIP   0/7/24          7.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;parallel.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn30.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn31.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
&lt;br /&gt;
    cn01                linux-x64           24  24.43   62.9G    3.0G    0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    parallel.q            0.52     368     0    280    648     0       0 &lt;br /&gt;
    serial.q              0.05       5     0     91     96     0       0  &lt;br /&gt;
    test.q                0.00       0     0     24     24     0       0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    parallel.q@cn31         BIP   0/5/24               5.15     linux-x64       &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2649</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2649"/>
				<updated>2013-07-10T14:04:45Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Queue types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parael.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn30                 BIP   0/0/24           0        linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                     BIP   0/7/24          7.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;parallel.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn30.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn31.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
&lt;br /&gt;
    cn01                linux-x64           24  24.43   62.9G    3.0G    0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    parallel.q            0.52     368     0    280    648     0       0 &lt;br /&gt;
    serial.q              0.05       5     0     91     96     0       0  &lt;br /&gt;
    test.q                0.00       0     0     24     24     0       0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2648</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2648"/>
				<updated>2013-07-10T14:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Job submission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parael.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn30                 BIP   0/0/24           0        linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                     BIP   0/7/24          7.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;parallel.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn30.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn31.budapest.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
&lt;br /&gt;
    cn01                linux-x64           24  24.43   62.9G    3.0G    0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2647</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2647"/>
				<updated>2013-07-10T13:56:24Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* The most simple commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    parael.q&lt;br /&gt;
    serial.q       &lt;br /&gt;
    test.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@cn.32                      BIP   0/3/24           3.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
    parallel.q@cn31                BIP   0/24/24           22.3           linux-x64           &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    test.q@cn32                    BIP   0/24/24           23.5           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@uv                       BIP   0/0/30         8.15       linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    uv.q@uv                         BIP   0/7/1110        8.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
    cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2646</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2646"/>
				<updated>2013-07-10T13:51:15Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* The most simple commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|cn01                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|5.00 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|8.6G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn02                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.01 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.2G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|-&lt;br /&gt;
|cn03                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|24  &lt;br /&gt;
|0.03 &lt;br /&gt;
|62.9G   &lt;br /&gt;
|1.5G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    test.q       &lt;br /&gt;
    uv.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@uv                      BIP   0/1/30           800.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;   &lt;br /&gt;
    uv.q@uv                        BIP   0/802/1110       800.15           linux-x64  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    test.q@uv                      BIP   0/0/30           600.42           linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    uv.q@uv                        BIP   0/598/1110       600.42           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@uv                       BIP   0/0/30         8.15       linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    uv.q@uv                         BIP   0/7/1110        8.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
    cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2638</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2638"/>
				<updated>2013-06-27T10:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Running MPI jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|uv                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|1152  &lt;br /&gt;
|900.56 &lt;br /&gt;
|6057.9G   &lt;br /&gt;
|132.4G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    test.q       &lt;br /&gt;
    uv.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@uv                      BIP   0/1/30           800.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;   &lt;br /&gt;
    uv.q@uv                        BIP   0/802/1110       800.15           linux-x64  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    test.q@uv                      BIP   0/0/30           600.42           linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    uv.q@uv                        BIP   0/598/1110       600.42           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@uv                       BIP   0/0/30         8.15       linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    uv.q@uv                         BIP   0/7/1110        8.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
    cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
&lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
&lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
&lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2637</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2637"/>
				<updated>2013-06-27T10:37:47Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|uv                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|1152  &lt;br /&gt;
|900.56 &lt;br /&gt;
|6057.9G   &lt;br /&gt;
|132.4G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    test.q       &lt;br /&gt;
    uv.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@uv                      BIP   0/1/30           800.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;   &lt;br /&gt;
    uv.q@uv                        BIP   0/802/1110       800.15           linux-x64  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    test.q@uv                      BIP   0/0/30           600.42           linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    uv.q@uv                        BIP   0/598/1110       600.42           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@uv                       BIP   0/0/30         8.15       linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    uv.q@uv                         BIP   0/7/1110        8.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
    cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     &lt;br /&gt;
DEBRECEN[service0] ~ (1)$ type mpirun     &lt;br /&gt;
mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     &lt;br /&gt;
DEBRECEN[service0] ~ (0)$ type mpirun.sge     &lt;br /&gt;
mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     &lt;br /&gt;
DEBRECEN[service0] ~ (0)$ &lt;br /&gt;
&lt;br /&gt;
You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.&lt;br /&gt;
&lt;br /&gt;
=== Running OpenMP jobs ===&lt;br /&gt;
&lt;br /&gt;
There are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following ''omp_mm.sh'' script      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N OPENMP_MM      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ./omp_mm &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
it can be submitted with this command which will use 6 threads	 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe openmp 6 omp_mm.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checkpointing support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2636</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2636"/>
				<updated>2013-06-27T10:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Usage of the Sun Grid Engine scheduler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The most simple commands === &lt;br /&gt;
&lt;br /&gt;
The most simple SGE command is the display of the cluster data:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A possible outcome of this command can be:    &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|HOSTNAME&lt;br /&gt;
|ARCH&lt;br /&gt;
|NCPU&lt;br /&gt;
|LOAD&lt;br /&gt;
|MEMTOT&lt;br /&gt;
|MEMUSE&lt;br /&gt;
|SWAPTO&lt;br /&gt;
|SWAPUS&lt;br /&gt;
|-&lt;br /&gt;
|global                  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|uv                      &lt;br /&gt;
|linux-x64   &lt;br /&gt;
|1152  &lt;br /&gt;
|900.56 &lt;br /&gt;
|6057.9G   &lt;br /&gt;
|132.4G    &lt;br /&gt;
|0.0     &lt;br /&gt;
|0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.&lt;br /&gt;
&lt;br /&gt;
We can have a look at the available queue-s with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qconf -sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One probable outcome of the command:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    test.q       &lt;br /&gt;
    uv.q &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more info about the state of the system use   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   &lt;br /&gt;
    qstat -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:                   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    test.q@uv                      BIP   0/1/30           800.15           linux-x64               &lt;br /&gt;
    905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;   &lt;br /&gt;
    uv.q@uv                        BIP   0/802/1110       800.15           linux-x64  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.&lt;br /&gt;
&lt;br /&gt;
If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    queuename                      qtype resv/used/tot. load_avg arch       states       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    test.q@uv                      BIP   0/0/30           600.42           linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    uv.q@uv                        BIP   0/598/1110       600.42           linux-x64    &lt;br /&gt;
       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;############################################################################ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is next&lt;br /&gt;
&lt;br /&gt;
When a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..&lt;br /&gt;
&lt;br /&gt;
=== Job submission ===&lt;br /&gt;
&lt;br /&gt;
Back then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    qsub script.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command. The script describes the task, the main parameters of it, and its running. For example in the following script, the described ''hostname.sh'' task:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N HOSTNAME       &lt;br /&gt;
    /bin/hostname &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be posted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub hostname.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts can be used for separating the different binaries:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh         &lt;br /&gt;
    case `uname` in           &lt;br /&gt;
     SunOS) ./pi_sun           &lt;br /&gt;
     FreeBSD) ./pi_bsd         &lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following command, we can define the queue where the scheduler puts the job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -q serial.q range.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command qsub can be issued with a number of different switches, which are gathered in the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Parameter&lt;br /&gt;
|Possible example&lt;br /&gt;
|Result&lt;br /&gt;
|-&lt;br /&gt;
| -N name&lt;br /&gt;
| -N Flow&lt;br /&gt;
|The job will appear under this name in the queue.&lt;br /&gt;
|-&lt;br /&gt;
| -cwd&lt;br /&gt;
| -cwd&lt;br /&gt;
|The output and the error files will appear in this actual catalog.&lt;br /&gt;
|-&lt;br /&gt;
| -S shell&lt;br /&gt;
| -S /bin/tcsh&lt;br /&gt;
|The shell in which the scripts run.&lt;br /&gt;
|-&lt;br /&gt;
| -j {y|n}&lt;br /&gt;
| -j y&lt;br /&gt;
|Joining the error and the output in one file.&lt;br /&gt;
|-&lt;br /&gt;
| -r {y|n}&lt;br /&gt;
| -r y&lt;br /&gt;
|After a restart, should the job restart too (from the beginning).&lt;br /&gt;
|-&lt;br /&gt;
| -M e-mail&lt;br /&gt;
| -M stefan@niif.hu&lt;br /&gt;
|Scheduler information will be sent to this address about the job.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_cpu=0:15:0&lt;br /&gt;
|Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l h_vmem=1G&lt;br /&gt;
|Chooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l in&lt;br /&gt;
|Consuming resources, complex request. (This will be defined in the documentation written for the system administrators)&lt;br /&gt;
|-&lt;br /&gt;
| -binding&lt;br /&gt;
| -binding linear:4&lt;br /&gt;
|Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information: [http://docs.oracle.com/cd/E24901_01/doc.62/e21976/chapter2.htm#autoId75 here].&lt;br /&gt;
|-&lt;br /&gt;
| -l&lt;br /&gt;
| -l exclusive=true&lt;br /&gt;
|Demand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.&lt;br /&gt;
|-&lt;br /&gt;
| -P&lt;br /&gt;
| -P niifi&lt;br /&gt;
|Chooses  a HPC project. This command will list the available HPC projects: ''qconf -sprjl''&lt;br /&gt;
|-&lt;br /&gt;
| -R &lt;br /&gt;
| -R y&lt;br /&gt;
|Resource reservation. This will cause that bigger parallel jobs will get higher priority.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.&lt;br /&gt;
&lt;br /&gt;
Sometimes we want to delete a job before its running. For this you can use the      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example deletes the job number 903.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 903&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can delete the running jobs immediately.&lt;br /&gt;
&lt;br /&gt;
For pending and then continuing jobs, use qmod {-s,-us}.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qmod -s 903       &lt;br /&gt;
    qmod -us 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: ''qalter''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -l h_cpu=0:12:0 903 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:''array.sh''      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N PI_ARRAY_TEST       &lt;br /&gt;
    ./pi_gcc `expr $SGE_TASK_ID \* 100000` &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -t 1-7 array.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
    test.q@uv                       BIP   0/0/30         8.15       linux-x64        &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;--------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
    uv.q@uv                         BIP   0/7/1110        8.15      linux-x64         &lt;br /&gt;
    907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          &lt;br /&gt;
    907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          &lt;br /&gt;
    907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          &lt;br /&gt;
    907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          &lt;br /&gt;
    907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          &lt;br /&gt;
    907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          &lt;br /&gt;
    907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qdel -f 907.5-7 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will delete chosen components, but leaves the tasks 907.1-4 intact.&lt;br /&gt;
The result of the running is seven individual files, with seven different running solutions:&lt;br /&gt;
&lt;br /&gt;
It can happen; that the task placed in the queue won’t start. This case the:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -j job_id &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.&lt;br /&gt;
&lt;br /&gt;
The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.&lt;br /&gt;
&lt;br /&gt;
If we wonder why a certain job won’t start, here’s how you can get information:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qalter -w v job_id&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One possible outcome      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       &lt;br /&gt;
    Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       &lt;br /&gt;
    verification: no suitable queues&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check with this command where the jobs are running:   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qhost -j -q&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    global                  -               -     -       -       -       -       - &lt;br /&gt;
    cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    &lt;br /&gt;
    serial.q             BI    0/42/48            &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     &lt;br /&gt;
    120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 3     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 5     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 19     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 23     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 31     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/24/2012 23:24:51 MASTER 33     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     09/26/2012 13:42:51 MASTER 113     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:43:06 MASTER 186     &lt;br /&gt;
    120340 0.13970 pwhg.sh    roczei      r     10/01/2012 07:58:36 MASTER 187     &lt;br /&gt;
    ... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Queue types ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''parallel.q'' - for paralel jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''serial.q'' - for serial jobs (jobs can run maximum 31 days)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''test.q'' - test queue, the job will be killed after 2 hours&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting information on the waiting line’s status:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qstat -g c  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;-------------------------------------------------------------------------------- &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    parallel.q           0.91    460       0    44     504    0      0  &lt;br /&gt;
    serial.q             0.84    200       0    40     240    0      0 &lt;br /&gt;
    test.q               0.00      0       0    24      24    0      0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running PVM job ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the previously shown and translated gexample application, we need the following task-describing ''gexample.sh'' script:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    &lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N GEXAMPLE      &lt;br /&gt;
    ./gexample &amp;lt;&amp;lt; EOL       &lt;br /&gt;
    30       &lt;br /&gt;
    5       &lt;br /&gt;
    EOL &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can submit this with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe pvm 5 gexample.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          &lt;br /&gt;
    908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running MPI jobs ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.&lt;br /&gt;
&lt;br /&gt;
Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/sh       &lt;br /&gt;
    #$ -N CONNECTIVITY &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     &lt;br /&gt;
    mpirun -np $NSLOTS ./connectivity &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. &lt;br /&gt;
&lt;br /&gt;
The job can be submitted with the following command:      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    qsub -pe mpi 20 connectivity.sh &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               &lt;br /&gt;
    910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20&lt;br /&gt;
&lt;br /&gt;
'''Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer'''  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.&lt;br /&gt;
&lt;br /&gt;
This way you can check that you are using SGI MPT or not:     DEBRECEN[service0] ~ (1)$ type mpirun     mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     DEBRECEN[service0] ~ (0)$ type mpirun.sge     mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     DEBRECEN[service0] ~ (0)$ You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.Running OpenMP jobsThere are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following omp_mm.sh script      #!/bin/sh       #$ -N OPENMP_MM      ./omp_mm it can be submitted with this command which will use 6 threads	 qsub -pe openmp 6 omp_mm.shCheckpointing supportAt the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2635</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2635"/>
				<updated>2013-06-27T08:38:34Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;br /&gt;
&lt;br /&gt;
==Usage of the Sun Grid Engine scheduler ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically the SGE is a scheduler, which divides the resources, computers into resource partitions. These are called queues. A queue can’t be larger than a physical resource; it can’t expand its borders. SGE registers a waiting list for the resources managed by itself, to which the posted computing tasks are directed. The scheduler searches for the resource defined by the description of the task and starts it. The task-resource coupling depends on the ability of the resources and the parameters of the tasks. In case the resources are overloaded, the tasks have to wait while the requested processor and memory becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The detailed documentation of the SGE can be found [http://docs.oracle.com/cd/E24901_01/doc.62/e21976.pdf here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SGE version on all HPC sites: [http://gridscheduler.sourceforge.net/documentation.html Open Grid Scheduler (OGS/GE 2011.11p1)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The most simple commands The most simple SGE command is the display of the cluster data:      qhostA possible outcome of this command can be:      HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS       -------------------------------------------------------------------------------       global                  -               -     -       -       -       -       -       uv                      linux-x64   1152  900.56 6057.9G   132.4G    0.0     0.0 The first two columns define the names and types of the computers, which are in the cluster. The NCPU column shows the number of the available processor cores. LOAD shows the computer’s load for the moment (this value equals with the value demonstrated by the uptime UNIX command). The rest of the cells are: overall physical memory, the actual used memory, the available swap-memory, and the used swap. The global line marks all the information in total regarding the cluster.We can have a look at the available queue-s with the following command:      qconf -sqlOne probable outcome of the command:      test.q       uv.q To get more info about the state of the system use      qstat -fIt shows which jobs run in which queues, and you can also get detailed info about the queues themselves (state, environment). The command can be used without the -f switch too, but it is less informative, since in this case only the jobs’ states will appear. The command’s outcome:      queuename                      qtype resv/used/tot. load_avg arch          states       ---------------------------------------------------------------------------------       test.q@uv                       BIP   0/1/30         800.15     linux-x64               905 1.00000 PI_SEQ_TES stefan       r     06/04/2011 09:12:14     1               ---------------------------------------------------------------------------------       uv.q@uv                        BIP   0/802/1110       800.15     linux-x64     The first column of this table shows the name of the row, the second column marks the type (B-batch, I-interactive, C-checkpointing, P-parallel environment, E-error state). The third part of the column shows how many jobs can be run at the same time in the row. All in all, these values fit to the number of overall processor cores in the system. The second item of the column shows the free compartments at the moment.If a running (scheduled) job is to be found in the queue, it is directly next to the name of the row, like the recent &amp;quot;PI_SEQ_TES&amp;quot;, which runs in the test.q row. The tasks waiting for the resources, because it is overwhelmed or the preliminary conditions are not prompt, appear behind the sum row, listed as pending jobs. For example:      queuename                      qtype resv/used/tot. load_avg arch          states       ---------------------------------------------------------------------------------       test.q@uv                      BIP   0/0/30             600.42     linux-x64        ---------------------------------------------------------------------------------       uv.q@uv                        BIP   0/598/1110       600.42     linux-x64           ############################################################################        - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS       ############################################################################           905 0.00000 PI_SEQ_TES stefan       qw    06/04/2011 09:12:04     1         Each task is given an identifier, which is a number (a job ID, or j_id), this is followed by the job’s priority (0 in both cases), then the job’s name, and the user who posted the job, and the qw marks, that the job is waiting for the queue. Finally the date of the registration for the waiting queue is nextWhen a job finishes running, this is created: jobname.ojobnumber in our actual catalog, which contains the error messages and stapled outputs created by the program..Job submissionBack then, the SGE scheduler was designed to be able to operate different types of architectures. That’s why you can’t post binary files directly, only scripts, like the      qsub script.shcommand. The script describes the task, the main parameters of it, and its running. For example in the following script, the describedhostname.sh task:      #!/bin/sh       #$ -N HOSTNAME       /bin/hostname can be posted with the following command:      qsub hostname.shThe scripts can be used for separating the different binaries:      #!/bin/sh         case `uname` in           SunOS) ./pi_sun           FreeBSD) ./pi_bsd         esacWith the following command, we can define the queue where the scheduler puts the job::      qsub -q serial.q range.shThe command qsub can be issued with a number of different switches, which are gathered in the following table:ParameterPossible exampleResult-N name-N FlowThe job will appear under this name in the queue.-cwd-cwdThe output and the error files will appear in this actual catalog.-S shell-S /bin/tcshThe shell in which the scripts run.-j {y|n}-j yJoining the error and the output in one file.-r {y|n}-r yAfter a restart, should the job restart too (from the beginning).-M e-mail-M stefan@niif.huScheduler information will be sent to this address about the job.-l-l h_cpu=0:15:0Chooses a queue for the job where 15 minutes of CPU time could be ensured. (hour:minute:second)-l-l h_vmem=1GChooses a computer for the job where 1 GB memory is available. In the case of parallel jobs its value is extended with the required number of slots. If this parameter is not given, the default setting will be the number of the maximum memory cores set up in the computers.-l-l inConsuming resources, complex request. (This will be defined in the documentation written for the system administrators)-binding-binding linear:4Chooses 4 CPU cores on the worker node-on and assignes in a fix way. Further information. here.-l-l exclusive=trueDemand of exclusive task execution (another job will not be scheduled on the chosen computers). It can be used in the following sites: Szeged, Budapest és Debrecen.-P-P niifiChooses  a HPC project. This command will list the available HPC projects: qconf -sprjl-R -R yResource reservation. This will cause that bigger parallel jobs will get higher priority. qsub command arguments can be added to the ~/.sge_request file. If this file exists then it will be added to the qsub arument list.Sometimes we want to delete a job before its running. For this you can use the      qdel job_idcommand.      qdel 903The example deletes the job number 903.      qdel -f 903It can delete the running jobs immediately.For pending and then continuing jobs, use qmod {-s,-us}.      qmod -s 903       qmod -us 903 The previous one suspends the running of number 903 (SIGSTOP), while the latter one allows (SIGCONT).If there is a need to change the features (resource requirements) of a job put into the waiting list, it can be done with the command: qalter      qalter -l h_cpu=0:12:0 903 The previous command alternates the hard-CPU requirements of the job number 903 (h_cpu) and changes it to 12 minutes. The switches of the qalter command are mainly overlap the ones of the qsub command.In a special case, we have to execute the same task, but on different data. These tasks are the array jobs. With SGE we can upload several jobs to the waiting. For example in the pi task shown in previous chapter, it can be posted multiple times, with different parameters, with the following script:array.sh      #!/bin/sh       #$ -N PI_ARRAY_TEST       ./pi_gcc `expr $SGE_TASK_ID \* 100000` The SGE_TASK_ID is an internal integer used by the SGE, which created values for each running job. The interval can be set up when posting the block:      qsub -t 1-7 array.sh meaning that the array.sh program will run in seven issues, and the SGE_TASK_ID will have the value of 1, 2, ..., 7 in every running issue. The qstat -f shows how the block tasks are split:     ---------------------------------------------------------------------------------       test.q@uv                       BIP   0/0/30         8.15     linux-x64        ---------------------------------------------------------------------------------       uv.q@uv                        BIP   0/7/1110       8.15     linux-x64         907 1.00000 PI_ARRAY_T stefan       r     06/04/2011 10:34:14     1 1          907 0.50000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 2          907 0.33333 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 3          907 0.25000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 4          907 0.20000 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 5          907 0.16667 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 6          907 0.14286 PI_ARRAY_T stefan       t     06/04/2011 10:34:14     1 7    It is clear, that behind the tasks there are their array index with which we can refer to the components to the task. For example, in the case of block tasks, there is a possibility to delete particular parts of the block. If we want to delete the subtasks from 5-7 of the previous task, the command      qdel -f 907.5-7 will delete chosen components, but leaves the tasks 907.1-4 intact.The result of the running is seven individual files, with seven different running solutions:It can happen; that the task placed in the queue won’t start. This case the:      qstat -j job_id command will show the detailed scheduling information, containing which running parameters are unfulfilled by the task.The priority of the different tasks only means the gradiation listed in the pending jobs. The scheduler will analyze the tasks in this order. Since it requires the reservation of resources, it is not sure, that the tasks will run exactly the same order.If we wonder why a certain job won’t start, here’s how you can get information:      qalter -w v job_idOne possible outcome      Job 53505 cannot run in queue &amp;quot;szeged.q&amp;quot; because it is not contained in its hard queue list (-q)       Job 53505 (-l NONE) cannot run in queue &amp;quot;cn46.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       Job 53505 (-l NONE) cannot run in queue &amp;quot;cn48.szeged.hpc.niif.hu&amp;quot; because exclusive resource (exclusive) is already in use       Job 53505 cannot run in PE &amp;quot;mpi&amp;quot; because it only offers 0 slots       verification: no suitable queuesYou can check with this command where the jobs are running:   qhost -j -qHOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS ------------------------------------------------------------------------------- global                  -               -     -       -       -       -       - cn01                    linux-x64      48 41.43  126.0G    3.0G     0.0     0.0    serial.q             BI    0/42/48            120087 0.15501 run.sh     roczei      r     09/23/2012 14:25:51 MASTER 22     120087 0.15501 run.sh     roczei      r     09/23/2012 15:02:21 MASTER 78     120087 0.15501 run.sh     roczei      r     10/01/2012 07:58:21 MASTER 143     120087 0.15501 run.sh     roczei      r     10/01/2012 08:28:51 MASTER 144     120087 0.15501 run.sh     roczei      r     10/04/2012 17:41:51 MASTER 158     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 3     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 5     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 19     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 23     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 31     120340 0.13970 pwhg.sh    roczei   r     09/24/2012 23:24:51 MASTER 33     120340 0.13970 pwhg.sh    roczei   r     09/26/2012 13:42:51 MASTER 113     120340 0.13970 pwhg.sh    roczei   r     10/01/2012 07:43:06 MASTER 186     120340 0.13970 pwhg.sh    roczei   r     10/01/2012 07:58:36 MASTER 187     ... Queue types parallel.q - for paralel jobs (jobs can run maximum 31 days)serial.q - for serial jobs (jobs can run maximum 31 days)test.q - test queue, the job will be killed after 2 hoursGetting information on the waiting line’s status:qstat -g c  CUSTER QUEUE         CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE   -------------------------------------------------------------------------------- parallel.q                       0.91    460       0     44       504        0       0  serial.q                         0.84    200       0     40       240        0       0  test.q                            0.00      0       0     24        24         0       0Running PVM jobTo run the previously shown and translated gexample application, we need the following task-describing gexample.sh script:      #!/bin/sh       #$ -N GEXAMPLE      ./gexample &amp;lt;&amp;lt; EOL       30       5       EOL We can submit this with the following command:      qsub -pe pvm 5 gexample.sh The -pe pvm 5 command will tell to the SGE to create a PVM parallel computer machine with 5 virtual processors, and run the application in this.       uv.q@uv                        BIP   0/5/1110               5.15     linux-x64          908 1.00000 GEXAMPLE   stefan       r     06/04/2011 13:05:14     5 Also note that after the running two output files were created: one containing an attached standard error and standard output (GEXAMPLE.o908), another describing the working method of the (GEXAMLE.po908). The latter one is mainly for finding errors.Running MPI jobsAll computers are set up with several installations of the MPI system: vendor-specific MPI implementations, and MPICH system too. The default setup is the vendor-specific MPI.Running in the MPI environment is similar to the PVM environment. Let’s have a look at the example shown in the previous chapter connectivity. A very simple task which tests the MPI tasks’internal communication. Use the following connectivity.sh script to run it:      #!/bin/sh       #$ -N CONNECTIVITY      mpirun -np $NSLOTS ./connectivity Here, the $NLOTS variable indicates that how many processors should be used in the MPI environment. This equals with that number what we have reuired for  the parallel environment. The job can be submitted with the following command:      qsub -pe mpi 20 connectivity.sh With this command we instruct the scheduler to create a parallel MPI environment containing 20 processors, and reserve space for it in one of the queues. Once the space is available, the job starts:      uv.q@uv                        BIP   0/20/1110               20.30     linux-x64               910 1.00000 CONNECTOVI stefan       r     06/04/2011 14:03:14    20      Running the program will result in two files: the first one (CONNECTIVITY.o910) is the overlap of the result of the already run program standard output and standard error, while the second one (CONNECTIVITY.po910) is for the follow-up of the operation of the parallel environment. If the running is successful, this file is empty. The command -pe mpi 20 can be given in the script too with the directive #$ -pe mpi 20Important notes: you should use mpirun.sge by SGI MPT on the Debrecen supercomputer  when you run a job under SGE. This can automatic parse which machines have been selected by SGE.This way you can check that you are using SGI MPT or not:     DEBRECEN[service0] ~ (1)$ type mpirun     mpirun is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun)     DEBRECEN[service0] ~ (0)$ type mpirun.sge     mpirun.sge is hashed (/opt/nce/packages/global/sgi/mpt/2.04/bin/mpirun.sge)     DEBRECEN[service0] ~ (0)$ You should use mpirun binary directly if you are using SHF3 environment or you would like to use a more complex MPI run. However, you need to parse the SGE's PE_HOSTFILE environment variable in this case.Running OpenMP jobsThere are applications that either use the solutions of the operation system for multi-threaded program execution, or use a special library designed for this, like OpenMP. These applications have to be instructed how many threads they can use. The matrix multiplication algorithm presented in the previous chapter can be described with the following omp_mm.sh script      #!/bin/sh       #$ -N OPENMP_MM      ./omp_mm it can be submitted with this command which will use 6 threads	 qsub -pe openmp 6 omp_mm.shCheckpointing supportAt the moment the system doesn’t support any automatic checkpointing/restarting mechanism. If it is need, the application has to take care of it.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2634</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2634"/>
				<updated>2013-06-24T11:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* User Guide to obtain a digital certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2633</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2633"/>
				<updated>2013-06-24T11:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* User Guide to obtain a digital certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
This guide is valid only for the Hungarian users.&lt;br /&gt;
If you are from a foreign country, and would like to get a certificate, [http://www.eugridpma.org/members/worldmap/ here] you can found your country's certification authority.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2632</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2632"/>
				<updated>2013-06-24T09:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Access with GSI-SSH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2631</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2631"/>
				<updated>2013-06-24T08:17:13Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to obtain a digital certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personal Authentication ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the successful registration on the website, please visit the NIIF CA Registration Office personally with the copy of the pre-registration datasheet, the Request password and an ID document (ID card, passport).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Address:&lt;br /&gt;
&lt;br /&gt;
: NIIF Iroda &lt;br /&gt;
: (RA Administrator)&lt;br /&gt;
: Victor Hugo Str. 18-22.&lt;br /&gt;
: H-1132 Budapest, HUNGARY&lt;br /&gt;
: email: ca (at) niif (dot) hu&lt;br /&gt;
&lt;br /&gt;
: RA opening hours: Monday, 14:00 - 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
During the authentication, the colleagues of the Registration Office verify the datas of the certificate and the user, and after the successful identification, they take the next steps in order to create the certification (it is not needed to wait for it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the certificate ===&lt;br /&gt;
&lt;br /&gt;
An email is going to arrive after the valid certificate has been completed (to the given email address during the request), and clicking on the URL in the email, the certificate can be downloaded. The saved certificate does not contain the private key.&lt;br /&gt;
&lt;br /&gt;
If the certificate is installed into the browser, it is advised to export it with the private key in PKCS#12 format, so there will be a common backup with the private key and the certificate. Handle this backup carefully! If the private key lost, or gets into unauthorized hands, immediately request a certificate cancellation at the registration interface &amp;quot;Tanúsítvány visszavonása&amp;quot; (certificate cancellation) or at the Registration Office, and inform the concerned people!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2630</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2630"/>
				<updated>2013-06-24T07:48:59Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* User Guide to obtain a digital certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
== User Guide to obtain a digital certificate ==&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2629</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2629"/>
				<updated>2013-06-24T07:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
== User Guide to obtain a digital certificate ==&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to send the PKCS#10 to the CA:&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2628</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2628"/>
				<updated>2013-06-24T07:24:46Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
== User Guide to obtain a digital certificate ==&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''For example: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to send the PKCS#10 to the CA:&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2627</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2627"/>
				<updated>2013-06-24T07:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* User Guide to create a digital certification request with openssl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document gives a short overview about how to require a digital certificate from NIIF CA for users, if the pre-registration form has been filled.&lt;br /&gt;
&lt;br /&gt;
== User Guide to obtain a digital certificate ==&lt;br /&gt;
=== Installing NIIF CA root certificate ===&lt;br /&gt;
&lt;br /&gt;
: The first step is to download the &amp;quot;[https://www.ca.niif.hu/en/node/4 root certificate]&amp;quot; (&amp;quot;NIIF CA Root Certificate&amp;quot; part), in the the format, which is known for the used browser or other SSL-using program. The browser asks wether to install/accept the certificate or not - accept or install the certificate in any cases. In addition, activate or allow the option which permits the browser to use the certificate to authenticate websites. Without that, it is not possible to reach the CA's web interface with secure protocol (https). The downloaded/installed certificate can be found in the certificate management modul of the browser. &lt;br /&gt;
&lt;br /&gt;
=== Request a certificate ===&lt;br /&gt;
&lt;br /&gt;
==== Request a certificate with openssl ====&lt;br /&gt;
*: Sing in into the certification registration website of the NIIF CA with our email address and password stored in the directory.&lt;br /&gt;
&lt;br /&gt;
*: This site uses secure protocol (https),  which the browser often indicates with a warning window - they should be acknowledged implicitly. &lt;br /&gt;
&lt;br /&gt;
*: In the opening page - which is the public web surface of the CMS certificate management software - choose the &amp;quot;OpenSSL kliens kérelem benyújtása (PKCS#10)&amp;quot; (request an OpenSSL client) option. This leads to the datasheet, which must be filled in accordance with the printed datasheet. First, according to the purpose of the request, the corresponding field must be choosen (CSIRT, GRID, NIIF felhasználó, Független kutató, HBONE).&lt;br /&gt;
&lt;br /&gt;
*: Copy the public part of our certificate in the field &amp;quot;PKCS#10&amp;quot;. You can find a user guide about ''How to create a PKCS#10 certificate with openssl, which suitable for the NIIF CA requirements'' below.&lt;br /&gt;
&lt;br /&gt;
*: A Challenge and a Request passwords must be given - both of them must be at least 8 characters long. Note them, because they needed for cancellation the certificate, or for the personal authentication.&lt;br /&gt;
&lt;br /&gt;
*: Fill the other fields (name, email address, phone, organisation), and if there is anything, the CA operator should know, fill the last field with it. If everything is done, after a last check, click on the Elküld (&amp;quot;send&amp;quot;) button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*: In case of a successful PKCS#10 key-uploading, a page is opening with the confirmation of the successful certification request.&lt;br /&gt;
&lt;br /&gt;
==== User Guide to create a PKCS#10 digital certification request with openssl ====&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''Ezek lehetnek: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to send the PKCS#10 to the CA:&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2626</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2626"/>
				<updated>2013-06-21T11:50:57Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Guide to create a digital certification request with openssl ==&lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''Ezek lehetnek: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to send the PKCS#10 to the CA:&lt;br /&gt;
&lt;br /&gt;
== Access with GSI-SSH ==&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GridFTP file transfer ==&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2625</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2625"/>
				<updated>2013-06-21T11:50:17Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* User Guide to create a digital certification request with openssl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== User Guide to create a digital certification request with openssl ==== &lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;''purpose of the certificate''&amp;lt;br/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName_default      &lt;br /&gt;
|= GRID # ''Ezek lehetnek: GRID, HBONE, General Purpose''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName             &lt;br /&gt;
| = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2.organizationalUnitName_default      &lt;br /&gt;
|= NIIF # ''For example: BME, ELTE, SZFKI, SZTAKI, NIIF, ...''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName                            &lt;br /&gt;
|= Common Name (YOUR name) # ''User Name.''&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|commonName_max                        &lt;br /&gt;
|= 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. Create PKCS#10 reqquest&lt;br /&gt;
&lt;br /&gt;
:* No existing secret key:&lt;br /&gt;
Run the&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
    openssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pem &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
command, and answer the appearing questions at the prompt. The Institute (NIIF CA) and country (HU) datas should not be changed, or the request is going to be invalid. The certification request and the corresponding private key will be saved in the new_csr.pem and privkey.pem files. To gain acces to the private key, during the generating given &amp;quot;pass phrase&amp;quot; password must be used. In case of a forgotten password, the certificate will be unusable. &lt;br /&gt;
&lt;br /&gt;
:* Existing private key (extend)&lt;br /&gt;
&lt;br /&gt;
If there is an existing, previously generated private key (it must be at least a 1024 bit RSA key), which can be found in the old_key.pem file, then the following command creates the CSR&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pem&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to send the PKCS#10 to the CA:&lt;br /&gt;
&lt;br /&gt;
==== Access with GSI-SSH ====&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GridFTP file transfer ====&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2624</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2624"/>
				<updated>2013-06-21T11:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== User Guide to create a digital certification request with openssl ==== &lt;br /&gt;
This paragraph gives a short overview about how to require a digital certificate from NIIF CA for users using openssl with the PKCS#10 format.The latest version of the openssl program can be downloaded from: [http://www.slproweb.com/products/Win32OpenSSL.html Windows], [http://www.openssl.org/source/ Linux].&lt;br /&gt;
:1. Download the openssl configuration file&lt;br /&gt;
&lt;br /&gt;
:   To generate the CSR, there is a prewritten [http://www.ca.niif.hu/sites/ca.niif.hu/files/niif_ca_user_openssl.cnf niif_ca_user_openssl.cnf] file on the NIIF CA website.&lt;br /&gt;
:   The following modifications must be done in the config:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;purpose of the certificate&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1.organizationalUnitName             &lt;br /&gt;
|= Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
1.organizationalUnitName_default      = GRID # Ezek lehetnek: GRID, HBONE, General Purpose&amp;lt;br/&amp;gt;&lt;br /&gt;
2.organizationalUnitName              = Second Organizational Unit Name&amp;lt;br/&amp;gt;&lt;br /&gt;
2.organizationalUnitName_default      = NIIF # Például: BME, ELTE, SZFKI, SZTAKI, NIIF, ...&amp;lt;br/&amp;gt;&lt;br /&gt;
commonName                            = Common Name (YOUR name) # A felhasználó neve ékezet nélkül.&amp;lt;br/&amp;gt;&lt;br /&gt;
commonName_max                        = 64A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 PKCS#10 kérés elkészítéseMég nincs titkos kulcsFutassuk le aopenssl req -newkey rsa:1024 -config ./niif_ca_user_openssl.cnf -out new_csr.pemparancsot és értelemszerűen válaszoljunk a prompt-nál feltett kérdésekre. A szervezet (NIIF CA) és ország (HU) adatokat ne változtassuk meg, mert ebben az esetben érvénytelen lesz a kérésünk.A tanusítvány kérésünk a new_csr.pem és a hozzátartozo privátkulcs a privkey.pem file-ban lesz eltárolva. A privát kulcs-hoz a generálás során megadott &amp;quot;pass phrase&amp;quot; jelszóval tudunk hozzáférni. Ha ezt jelszót elfelejtjük, akkor a tanusítványunk használhatatlan lesz.Már van korábbról titkos kulcs (hosszabbítás)Ha már rendelkezünk korábban generált titkos kulccsal (legalább 1024 bites RSA kulcs legyen!), ami az old_key.pem file-ban található, akkor az alábbi paranccsal készíthetjük el a CSR-t openssl req -new -key ./old_key.pem -config ./niif_ca_user_openssl.cnf -out new_csr.pemA PKCS#10 eljuttatása CA hozKövessük a Felhasználói digitális tanúsítvány kérelem benyújtása leírás PKCS#10 formátúnú tanúsítványról szóló részét.&lt;br /&gt;
&lt;br /&gt;
                    &lt;br /&gt;
==== Access with GSI-SSH ====&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GridFTP file transfer ====&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2623</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2623"/>
				<updated>2013-06-21T10:47:11Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezettől eltérő azonosító fájlok is használhatóak az ssh kapcsolódás során a -i kapcsolóval:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ssh -i home/.ssh/id_file felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adatátvitel rsync segítségével&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] helyi_file username@szerver:file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
 &lt;br /&gt;
:* Aktuális könyvtárból a távoli gép /home/user mappájába történő másolás:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync -e ssh *.c username@login.budapest.hpc.niif.hu:/home/user &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Az ssh kapcsoló használata kötelezően használandó).&lt;br /&gt;
&lt;br /&gt;
A fenti példa az aktuális könyvtárban levő .c fájlokat másolja át a távoli gépre. Ha a távoli gépen már léteznek ezek a .c fájlok, akkor az rsync protokoll szerint csak a fájlok közötti különbséget másolja át program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Általánosan használt opciós kapcsolók [option]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* --delete : azon fájlok törlése, melyek a forrás gépen nem léteznek&lt;br /&gt;
* -v : részletesen tájékoztat a futó folyamatokról (Verbose; a -vv kapcsoló még részletesebbé teszi)&lt;br /&gt;
* -a : archiválás&lt;br /&gt;
* -r : rekurzív másolás &lt;br /&gt;
* -z : fájlok tömörítése&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2622</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2622"/>
				<updated>2013-06-21T09:33:46Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezettől eltérő azonosító fájlok is használhatóak az ssh kapcsolódás során a -i kapcsolóval:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ssh -i home/.ssh/id_file felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adatátvitel rsync segítségével&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] helyi_file username@szerver:file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
 &lt;br /&gt;
:* Aktuális könyvtárból a távoli gép /home/user mappájába történő másolás:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync -e ssh *.c username@login.budapest.hpc.niif.hu:/home/user &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Az ssh kapcsoló használata kötelezően használandó).&lt;br /&gt;
&lt;br /&gt;
A fenti példa az aktuális könyvtárban levő .c fájlokat másolja át a távoli gépre. Ha a távoli gépen már léteznek ezek a .c fájlok, akkor az rsync protokoll szerint csak a fájlok közötti különbséget másolja át program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Általánosan használt opciós kapcsolók [option]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* --delete : azon fájlok törlése, melyek a forrás gépen nem léteznek&lt;br /&gt;
* -v : részletesen tájékoztat a futó folyamatokról (Verbose; a -vv kapcsoló még részletesebbé teszi)&lt;br /&gt;
* -a : archiválás&lt;br /&gt;
* -r : rekurzív másolás &lt;br /&gt;
* -z : fájlok tömörítése&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2621</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2621"/>
				<updated>2013-06-21T09:01:49Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* GridFTP file transfer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                    &lt;br /&gt;
==== Access with GSI-SSH ====&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GridFTP file transfer ====&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy file://task/myfile.c gsiftp://login.budapest.hpc.hu/home/task/myfile.c &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command uploads the myfile.c file from the locak task folder to the remote machine's home/task folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2620</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2620"/>
				<updated>2013-06-21T08:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Access with GSI-SSH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                    &lt;br /&gt;
==== Access with GSI-SSH ====&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
By default, the proxies are valid for 12 hours.&lt;br /&gt;
It is possible to modify this default value with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    arcproxy -c validityPeriod=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init -hours 24&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both of the previous commands  set the validation of the proxies to 24 hours.&lt;br /&gt;
Using the arcproxy, the validation time must be given is seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GridFTP file transfer ====&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2619</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2619"/>
				<updated>2013-06-21T07:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adatátvitel rsync segítségével&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] helyi_file username@szerver:file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
 &lt;br /&gt;
:* Aktuális könyvtárból a távoli gép /home/user mappájába történő másolás:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync *.c username@login.budapest.hpc.niif.hu:/home/user &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A fenti példa az aktuális könyvtárban levő .c fájlokat másolja át a távoli gépre. Ha a távoli gépen már léteznek ezek a .c fájlok, akkor az rsync protokoll szerint csak a fájlok közötti különbséget másolja át program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Általánosan használt opciós kapcsolók [option]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* --delete : azon fájlok törlése, melyek a forrás gépen nem léteznek&lt;br /&gt;
* -v : részletesen tájékoztat a futó folyamatokról (Verbose; a -vv kapcsoló még részletesebbé teszi)&lt;br /&gt;
* -e &amp;quot;ssh kapcsoló&amp;quot; : ssh-t jelöli ki távoli shell-ként&lt;br /&gt;
* -a : archiválás&lt;br /&gt;
* -r : rekurzív másolás &lt;br /&gt;
* -z : fájlok tömörítése&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2618</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2618"/>
				<updated>2013-06-21T07:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adatátvitel rsync segítségével&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] helyi_file username@szerver:file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
 &lt;br /&gt;
:* Aktuális könyvtárból a távoli gép /home/user mappájába történő másolás:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync *.c username@login.budapest.hpc.niif.hu:/home/user &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A fenti példa az aktuális könyvtárban levő .c fájlokat másolja át a távoli gépre. Ha a távoli gépen már léteznek ezek a .c fájlok, akkor az rsync protokoll szerint csak a fájlok közötti különbséget másolja át program.&lt;br /&gt;
&lt;br /&gt;
Általánosan használt opciós kapcsolók [option]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* --delete : azon fájlok törlése, melyek a forrás gépen nem léteznek&lt;br /&gt;
* -v : részletesen tájékoztat a futó folyamatokról (Verbose; a -vv kapcsoló még részletesebbé teszi)&lt;br /&gt;
* -e &amp;quot;ssh kapcsoló&amp;quot; : ssh-t jelöli ki távoli shell-ként&lt;br /&gt;
* -a : archiválás&lt;br /&gt;
* -r : rekurzív másolás &lt;br /&gt;
* -z : fájlok tömörítése&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2617</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2617"/>
				<updated>2013-06-21T07:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adatátvitel rsync segítségével&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
letöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
feltöltés &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    rsync [option] username@szerver:file helyi_file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HPC-GYIK&amp;diff=2616</id>
		<title>HPC-GYIK</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HPC-GYIK&amp;diff=2616"/>
				<updated>2013-06-20T15:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: Új oldal, tartalma: „== GY.I.K ==    ====Ki használhatja a szuperszámítógépet?==== &amp;lt;br /&amp;gt; A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is a…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2614</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2614"/>
				<updated>2013-06-20T15:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* GY.I.K */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2613</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2613"/>
				<updated>2013-06-20T14:09:24Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For PRACE Users: please follow this link: [[PRACE_User_Support]]&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2612</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2612"/>
				<updated>2013-06-20T14:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2611</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2611"/>
				<updated>2013-06-20T13:51:42Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;| TípusEz a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| CPU-k / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| Core-ok / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memória / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memória / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| 5 GB&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz&lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| OpenMPI (ompi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SSH belépés'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ ssh felhasznalonev@login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Fájlmásolás SCP (Secure Copy - biztonságos másolás) segítségével'''&lt;br /&gt;
&lt;br /&gt;
Szintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Egyszerűsített szintaxis:&lt;br /&gt;
&lt;br /&gt;
* letöltés&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    scp username@szerver:file helyi_file &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* feltöltés&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp helyi_file username@szerver:file&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Példa:&lt;br /&gt;
&lt;br /&gt;
:* Adott file másolása a távoli gépen található ~/user könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp file.txt username@login.budapest.hpc.niif.hu:home/user/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Adott file letöltése az aktuális könyvtárba: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    scp username@login.budapest.hpc.niif.hu:home/user/file.txt &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== Java JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python Numpy és Scipy használat ===&lt;br /&gt;
A numerikus Python használatához a következő csomagokat kell betölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load python numpy scipy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A numpy és a scipy csomagok az Intel MKL OpenMP gyorsítását használják. A jobokat az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos környezetbe kell elküldeni.&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2610</id>
		<title>PRACE User Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=PRACE_User_Support&amp;diff=2610"/>
				<updated>2013-06-20T13:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                    &lt;br /&gt;
==== Access with GSI-SSH ====&lt;br /&gt;
  &lt;br /&gt;
A user can access to the supercomputers by using the GSI-SSH protocol.&lt;br /&gt;
  &lt;br /&gt;
It requires a machine with a Globus installation that provides the gsissh client.&lt;br /&gt;
  &lt;br /&gt;
The needed credentials (these mean the private and public keys) must be created before entering the machine with the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enter the site, the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
command has to be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GridFTP file transfer ====&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In order to use GridFTP for file transfer, one needs a GridFTP client program that provides the interface between the user and a remote GridFTP server. There are several clients available for GridFTP, one of which is globus-url-copy, a command line tool which can transfer files using the GridFTP protocol as well as other protocols such as http and ftp. globus-url-copy is distributed with the Globus Toolkit and usually available on machines that have the Globus Toolkit installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Syntax'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* [options] The optional command line switches as described later.&lt;br /&gt;
  &lt;br /&gt;
* sourceURL The URL of the file(s) to be copied. If it is a directory, it must end with a slash (/), and all files within that directory will be copied.&lt;br /&gt;
  &lt;br /&gt;
* destURL The URL to which to copy the file(s). To copy several files to one destination URL, destURL must be a directory and be terminated with a slash (/).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Globus-url-copy supports multiple protocols, so the format of the source and destination URLs can be either&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a local file or directory or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
when you refer to a remote file or directory. &lt;br /&gt;
&lt;br /&gt;
globus-url-copy is supporting other protocols such as http, https, ftp and gsiftp as well.&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
'''Command line options for globus-url-copy [options]'''&lt;br /&gt;
  &lt;br /&gt;
* -help Prints usage information for the globus-url-copy program.&lt;br /&gt;
* -version Prints the version of the globus-url-copy program.&lt;br /&gt;
* -vb During the transfer, displays: (1) number of bytes transferred (2) performance since the last update (every 5 seconds) (3) average performance for the whole transfer&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''The following table lists parameters which you can set to optimize the performance of your data transfer:'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;size&amp;gt;Specifies the size (in bytes) of the TCP buffer to be used by the underlying GridFTP data channels.&lt;br /&gt;
* -p &amp;lt;number of parallel streams&amp;gt; Specifies the number of parallel streams to be used in the GridFTP transfer.&lt;br /&gt;
* -stripe Use this parameter to initiate a “striped” GridFTP transfer that uses more than one node at the source and destination. As multiple nodes contribute to the transfer, each using its own network interface, a larger amount of the network bandwidth can be consumed than with a single system. Thus, at least for “big” (&amp;gt; 100 MB) files, striping can considerably improve performance.&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2604</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2604"/>
				<updated>2013-06-20T09:26:25Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;| TípusEz a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
====Magyar Szuperszámítógépek összehasonlítása====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Helyszín&lt;br /&gt;
| Budapest&lt;br /&gt;
| Szeged&lt;br /&gt;
| Debrecen&lt;br /&gt;
| Pécs&lt;br /&gt;
|- &lt;br /&gt;
| Típus&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| HP CP4000BL&lt;br /&gt;
| SGI ICE8400EX&lt;br /&gt;
| SGI UV 1000&lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
| 4 &lt;br /&gt;
| 2 &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
| 132 GB&lt;br /&gt;
| 47 GB&lt;br /&gt;
| 6 TB&lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
| 2.75 GB&lt;br /&gt;
| 3.9 GB&lt;br /&gt;
| ?&lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on''&lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off''&lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
| SGI MPT (mpt)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2601</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2601"/>
				<updated>2013-06-20T07:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* GSI-SSH elérés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
==== GSI-SSH elérés ====&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépekhez GSI-SSH kapcsolattal is hozzá lehet férni.&lt;br /&gt;
Ehhez telepített Globus Toolkittel kell rendelkezni a kliens gépen.&lt;br /&gt;
&lt;br /&gt;
Belépés előtt létre kell hozni a szükséges credentialokat (ami a publikus és privát kulcspárokat jelenti) a &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
paranccsal.&lt;br /&gt;
&lt;br /&gt;
Belépni a &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
paranccsal lehet.&lt;br /&gt;
&lt;br /&gt;
==== GridFTP adatátvitel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépeken a GridFTP eszköz is használható adatátvitelre.&lt;br /&gt;
Ehhez többféle GridFTP kliens is létezik, a Globus Toolkit szintén tartalmazza ezt az eszközt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Szintaxis'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [options] Ez a kiegészítő parancs később lesz részletezve.&lt;br /&gt;
* sourceURLThe A másolandó fájlok elérési útja. Ha ez egy könyvtárra mutat, akkor egy perjellel kell végződnie (/), és így minden fájl a könyvtárból másolásra kerül.&lt;br /&gt;
* destURLThe Az elérései útvonal, ahova a másolandó fájlok kerülnek. Több fájl egy helyre való másolásához a destURL -nek könyvtárnak kell lennie, és perjellel kell végződnie(/).&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
A globus-url-copy többféle protokollt támogat, így a forrás és cél URL-ek lehetnek helyi fájl vagy könyvtárra vonatkozás esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
illetve távoli hely vagy könyvtár esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kiegészítő, opciós parancsok [options]'''&lt;br /&gt;
&lt;br /&gt;
* -help Felhasználói információk kijelzése&lt;br /&gt;
* -version A globus-url-copy program verziójának kijelzése&lt;br /&gt;
* -vb Adatátvitel alatt a következő információkat mutatja: (1) az átvitt adatok mennyiségét bájtokban (2) átviteli sebesség a legutóbbi frissítés óta (5 másodpercenként) (3) átlagos átviteli sebesség az adott adatátvitelre&lt;br /&gt;
&lt;br /&gt;
A következő parancsokkal az adatátvitel sebességét lehet optimalizálni:&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;méret&amp;gt; Specifikálja a TCP buffer méretét (bájtokban) a használandó GridFTP adatcsatornákra. &lt;br /&gt;
* -p &amp;lt;párhuzamos átviteli folyamatok száma&amp;gt; Specifikálja a párhuzamosan használt GridFTP adatátviteli folyamatok számát.&lt;br /&gt;
* -stripe Ezt a paramétert akkor érdemes használni, ha az adatátvitel több mint egy node-ot használ forrásként és célként.Ha az adatátvitelben több node vesz részt, használva a saját hálózati eszközeit, nagyobb hálózati teljesítmény érhető el, mint az egy node-os rendszeren. Így nagy fájlok esetén (&amp;gt;100MB), érezhetően nagyobb teljesítmény érhető el&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type | HP CP4000BL  &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2600</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2600"/>
				<updated>2013-06-20T07:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* GSI-SSH elérés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
==== GSI-SSH elérés ====&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépekhez GSI-SSH kapcsolattal is hozzá lehet férni.&lt;br /&gt;
Ehhez telepített Globus Toolkittel kell rendelkezni a kliens gépen.&lt;br /&gt;
&lt;br /&gt;
Belépés előtt létre kell hozni a szükséges credentialokat (ami a publikus és privát kulcspárokat jelenti) a &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
parancssal.&lt;br /&gt;
&lt;br /&gt;
Belépni a &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
paranccsal lehet.&lt;br /&gt;
&lt;br /&gt;
==== GridFTP adatátvitel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépeken a GridFTP eszköz is használható adatátvitelre.&lt;br /&gt;
Ehhez többféle GridFTP kliens is létezik, a Globus Toolkit szintén tartalmazza ezt az eszközt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Szintaxis'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [options] Ez a kiegészítő parancs később lesz részletezve.&lt;br /&gt;
* sourceURLThe A másolandó fájlok elérési útja. Ha ez egy könyvtárra mutat, akkor egy perjellel kell végződnie (/), és így minden fájl a könyvtárból másolásra kerül.&lt;br /&gt;
* destURLThe Az elérései útvonal, ahova a másolandó fájlok kerülnek. Több fájl egy helyre való másolásához a destURL -nek könyvtárnak kell lennie, és perjellel kell végződnie(/).&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
A globus-url-copy többféle protokollt támogat, így a forrás és cél URL-ek lehetnek helyi fájl vagy könyvtárra vonatkozás esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
illetve távoli hely vagy könyvtár esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kiegészítő, opciós parancsok [options]'''&lt;br /&gt;
&lt;br /&gt;
* -help Felhasználói információk kijelzése&lt;br /&gt;
* -version A globus-url-copy program verziójának kijelzése&lt;br /&gt;
* -vb Adatátvitel alatt a következő információkat mutatja: (1) az átvitt adatok mennyiségét bájtokban (2) átviteli sebesség a legutóbbi frissítés óta (5 másodpercenként) (3) átlagos átviteli sebesség az adott adatátvitelre&lt;br /&gt;
&lt;br /&gt;
A következő parancsokkal az adatátvitel sebességét lehet optimalizálni:&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;méret&amp;gt; Specifikálja a TCP buffer méretét (bájtokban) a használandó GridFTP adatcsatornákra. &lt;br /&gt;
* -p &amp;lt;párhuzamos átviteli folyamatok száma&amp;gt; Specifikálja a párhuzamosan használt GridFTP adatátviteli folyamatok számát.&lt;br /&gt;
* -stripe Ezt a paramétert akkor érdemes használni, ha az adatátvitel több mint egy node-ot használ forrásként és célként.Ha az adatátvitelben több node vesz részt, használva a saját hálózati eszközeit, nagyobb hálózati teljesítmény érhető el, mint az egy node-os rendszeren. Így nagy fájlok esetén (&amp;gt;100MB), érezhetően nagyobb teljesítmény érhető el&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type | HP CP4000BL  &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2599</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2599"/>
				<updated>2013-06-20T07:27:48Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Hozzáférés a szuperszámítógépekhez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
==== GSI-SSH elérés ====&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépekhez GSI-SSH kapcsolattal is hozzá lehet férni.&lt;br /&gt;
Ehhez telepített Globus Toolkittel kell rendelkezni a kliens gépen.&lt;br /&gt;
&lt;br /&gt;
Belépés előtt létre kell hozni a szükséges credentialokat (ami a publikus és privát kulcspárokat jelenti) a &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    grid-proxy-init&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belépni a &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    gsissh -p 2222 login.budapest.hpc.niif.hu&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
paranccsal lehet.&lt;br /&gt;
&lt;br /&gt;
==== GridFTP adatátvitel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A szuperszámítógépeken a GridFTP eszköz is használható adatátvitelre.&lt;br /&gt;
Ehhez többféle GridFTP kliens is létezik, a Globus Toolkit szintén tartalmazza ezt az eszközt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Szintaxis'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    globus-url-copy [options] sourceURL destinationURL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [options] Ez a kiegészítő parancs később lesz részletezve.&lt;br /&gt;
* sourceURLThe A másolandó fájlok elérési útja. Ha ez egy könyvtárra mutat, akkor egy perjellel kell végződnie (/), és így minden fájl a könyvtárból másolásra kerül.&lt;br /&gt;
* destURLThe Az elérései útvonal, ahova a másolandó fájlok kerülnek. Több fájl egy helyre való másolásához a destURL -nek könyvtárnak kell lennie, és perjellel kell végződnie(/).&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
A globus-url-copy többféle protokollt támogat, így a forrás és cél URL-ek lehetnek helyi fájl vagy könyvtárra vonatkozás esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    file://path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
illetve távoli hely vagy könyvtár esetén:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    protocol://host[:port]/path&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kiegészítő, opciós parancsok [options]'''&lt;br /&gt;
&lt;br /&gt;
* -help Felhasználói információk kijelzése&lt;br /&gt;
* -version A globus-url-copy program verziójának kijelzése&lt;br /&gt;
* -vb Adatátvitel alatt a következő információkat mutatja: (1) az átvitt adatok mennyiségét bájtokban (2) átviteli sebesség a legutóbbi frissítés óta (5 másodpercenként) (3) átlagos átviteli sebesség az adott adatátvitelre&lt;br /&gt;
&lt;br /&gt;
A következő parancsokkal az adatátvitel sebességét lehet optimalizálni:&lt;br /&gt;
&lt;br /&gt;
* -tcp-bs &amp;lt;méret&amp;gt; Specifikálja a TCP buffer méretét (bájtokban) a használandó GridFTP adatcsatornákra. &lt;br /&gt;
* -p &amp;lt;párhuzamos átviteli folyamatok száma&amp;gt; Specifikálja a párhuzamosan használt GridFTP adatátviteli folyamatok számát.&lt;br /&gt;
* -stripe Ezt a paramétert akkor érdemes használni, ha az adatátvitel több mint egy node-ot használ forrásként és célként.Ha az adatátvitelben több node vesz részt, használva a saját hálózati eszközeit, nagyobb hálózati teljesítmény érhető el, mint az egy node-os rendszeren. Így nagy fájlok esetén (&amp;gt;100MB), érezhetően nagyobb teljesítmény érhető el&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type | HP CP4000BL  &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2598</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2598"/>
				<updated>2013-06-20T06:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type | HP CP4000BL  &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ki használhatja a szuperszámítógépet?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
====Mire használható a szuperszámítógép-rendszer?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan lehet a szuperszámítógépekhez hozzáférni?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Melyek a felhasználás feltételei?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Hogyan kerülnek elosztásra az erőforrások?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Milyen felhasználói támogatás/segítség vehető igénybe?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mennyit kell fizetni a szuperszámítógépek használatáért?====&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2597</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2597"/>
				<updated>2013-06-19T14:33:05Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* HP Budapest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type | HP CP4000BL  &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 66 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2596</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2596"/>
				<updated>2013-06-19T14:30:52Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* HP Szeged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| HP CP4000BL &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 4 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 12 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 132 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 2.75 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| AMD Opteron 6174 @ 2.2GHz &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| Intel (impi) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2595</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2595"/>
				<updated>2013-06-19T14:28:19Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* SGI UV Pécs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
| SGI UV 1000 &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory &lt;br /&gt;
| 6 TB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X7542 @ 2.66 GHz ''SMT off'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE]&lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2594</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2594"/>
				<updated>2013-06-19T14:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specifikációk === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2593</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2593"/>
				<updated>2013-06-19T14:24:59Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* SGI ICE Debrecen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
=== Specification === &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
| Type &lt;br /&gt;
|  SGI ICE8400EX &lt;br /&gt;
|- &lt;br /&gt;
| # of CPUs / node &lt;br /&gt;
| 2 &lt;br /&gt;
|- &lt;br /&gt;
| # of cores / CPU &lt;br /&gt;
| 6 &lt;br /&gt;
|- &lt;br /&gt;
| Memory / node &lt;br /&gt;
| 47 GB &lt;br /&gt;
|- &lt;br /&gt;
| Memory / core &lt;br /&gt;
| 3.9 GB &lt;br /&gt;
|- &lt;br /&gt;
| CPU &lt;br /&gt;
| Intel Xeon X5680 @ 3.33 GHz ''SMT on'' &lt;br /&gt;
|- &lt;br /&gt;
| Architecture &lt;br /&gt;
| x86_64 / intel64 / em64t ''little-endian'' &lt;br /&gt;
|- &lt;br /&gt;
| Scheduler &lt;br /&gt;
| [http://wikis.sun.com/display/gridengine62u5/Using SGE] &lt;br /&gt;
|- &lt;br /&gt;
| MPI &lt;br /&gt;
| SGI MPT (mpt) &lt;br /&gt;
|- &lt;br /&gt;
| ESZR &lt;br /&gt;
| local &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2592</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2592"/>
				<updated>2013-06-19T14:18:21Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
&lt;br /&gt;
== SGI ICE Debrecen ==&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2591</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2591"/>
				<updated>2013-06-19T14:17:45Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Szeged ==&lt;br /&gt;
&lt;br /&gt;
== SGI ICE ==&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2590</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2590"/>
				<updated>2013-06-19T14:13:25Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: /* GY.I.K */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:1. Ki használhatja a szuperszámítógépet?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
&lt;br /&gt;
:2. Mire használható a szuperszámítógép-rendszer?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
&lt;br /&gt;
:3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
&lt;br /&gt;
:4. Melyek a felhasználás feltételei?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
&lt;br /&gt;
:5. Hogyan kerülnek elosztásra az erőforrások?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
&lt;br /&gt;
:6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
&lt;br /&gt;
:7. Milyen felhasználói támogatás/segítség vehető igénybe?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
&lt;br /&gt;
:8. Mennyit kell fizetni a szuperszámítógépek használatáért?&amp;lt;br /&amp;gt;&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2589</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2589"/>
				<updated>2013-06-19T14:10:07Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
==A szuperszámítógépekről== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Ki használhatja a szuperszámítógépet?A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
# Mire használható a szuperszámítógép-rendszer?A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
# Hogyan lehet a szuperszámítógépekhez hozzáférni?A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
# Melyek a felhasználás feltételei?A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
# Hogyan kerülnek elosztásra az erőforrások?A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
# Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
# Milyen felhasználói támogatás/segítség vehető igénybe?A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
# Mennyit kell fizetni a szuperszámítógépek használatáért?A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2588</id>
		<title>NIIF szuperszámítógépek használata</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=NIIF_szupersz%C3%A1m%C3%ADt%C3%B3g%C3%A9pek_haszn%C3%A1lata&amp;diff=2588"/>
				<updated>2013-06-19T13:56:49Z</updated>
		
		<summary type="html">&lt;p&gt;Herbert(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Az oldal célja ==&lt;br /&gt;
Ez a wiki oldal a NIIF Intézet (Nemzeti Információs Infrastruktúra Fejlesztési Intézet) szuperszámítógépes szolgáltatásához kapcsolódó információkat tartalmazza.&lt;br /&gt;
&lt;br /&gt;
== A szuperszámítógépekről == &lt;br /&gt;
&lt;br /&gt;
Az NIIF Intézet szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:&lt;br /&gt;
&lt;br /&gt;
* Debreceni Egyetem&lt;br /&gt;
* NIIFI központ&lt;br /&gt;
* Pécsi Tudományegyetem&lt;br /&gt;
* Szegedi Tudományegyetem&lt;br /&gt;
&lt;br /&gt;
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig &amp;quot;fat-node&amp;quot; fürtözött megoldás. Az alrendszereket az NIIFI nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.&lt;br /&gt;
A szuperszámítógép-rendszert az NIIFI üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettel.&lt;br /&gt;
A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel.&lt;br /&gt;
&lt;br /&gt;
== Hozzáférés a szuperszámítógépekhez == &lt;br /&gt;
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.&lt;br /&gt;
&lt;br /&gt;
=== Hozzáférés a Shell Framework használatával ===&lt;br /&gt;
A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.&lt;br /&gt;
&lt;br /&gt;
==== Telepítés és frissítés ====&lt;br /&gt;
A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    git clone git://github.com/hornos/shf3.git&lt;br /&gt;
    echo 'source $HOME/shf3/bin/shfrc' &amp;gt;&amp;gt; $HOME/.profile&lt;br /&gt;
    source .profile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A frissítéseket a következő paranccsal tudjuk letölteni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    shfmgr -u&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SSH elérés beállítása ====&lt;br /&gt;
Az SSH modul független a &amp;lt;tt&amp;gt;$HOME/.ssh&amp;lt;/tt&amp;gt; könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei &amp;lt;tt&amp;gt;kulcs=érték&amp;lt;/tt&amp;gt; formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a &amp;lt;tt&amp;gt;source&amp;lt;/tt&amp;gt; paranccsal tudunk beolvasni. A &amp;lt;tt&amp;gt;$HOME/shf3&amp;lt;/tt&amp;gt; könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.&lt;br /&gt;
&lt;br /&gt;
Új SSH MID-et a következő paranccsal tudunk létrehozni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sshmgr -n &amp;lt;MID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A következő beállításokat kell beleírni a MID fájlba:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # a távoli gép IP címe vagy DNS neve&lt;br /&gt;
    mid_ssh_fqdn=&amp;quot;skynet.cyberdy.ne&amp;quot;&lt;br /&gt;
    # távoli felhasználói név&lt;br /&gt;
    mid_ssh_user=&amp;quot;$USER&amp;quot;&lt;br /&gt;
    # SSH port&lt;br /&gt;
    mid_ssh_port=22&lt;br /&gt;
    # explicit ellenőrzés&lt;br /&gt;
    mid_ssh_port_check=&amp;quot;ping&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a &lt;br /&gt;
&amp;lt;tt&amp;gt;$HOME/shf3/key/ssh&amp;lt;/tt&amp;gt; könyvtár alatt találjuk: privát kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.sec&amp;lt;/tt&amp;gt;, publikus kulcs: &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;.pub&amp;lt;/tt&amp;gt;. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a &amp;lt;tt&amp;gt;$HOME/shf3/mid/ssh&amp;lt;/tt&amp;gt; könyvtár alatt vannak a &amp;lt;tt&amp;gt;&amp;lt;MID&amp;gt;&amp;lt;/tt&amp;gt; nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Felhasználói felület ==&lt;br /&gt;
A szupergépek elsődleges felhasználói felülete a Bash shell. Az automatikusan betöltődő NIIF Common Environment (NCE) a PS1 promptot a következőképp állítja be:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
               rövid CWD&lt;br /&gt;
                    |&lt;br /&gt;
    BUDAPEST[login] ~ (0)$&lt;br /&gt;
        |      |       |&lt;br /&gt;
   HPC állomás |       |&lt;br /&gt;
         rövid gép név |&lt;br /&gt;
               korábbi parancs exit kódja&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Általános jellemzők ==&lt;br /&gt;
A frontend gépeken felhasználói limitek vannak beállítva. Ezekről a következő paranccsal kapunk információt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ulimit -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A limitek a compute node-okon és az UV-n nincsenek beállítva.&lt;br /&gt;
&lt;br /&gt;
=== JVM heap méret ===&lt;br /&gt;
A memória limit miatt a Java virtuális gépen és fordító nem jól működik, ezért meg kell adni a maximális heap méretét, ami a frontend gépeken maximum 3500m:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    java -Xmx512m -version&lt;br /&gt;
    javac -J-Xmx512m -version&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HP Budapest ==&lt;br /&gt;
=== Fordítás ===&lt;br /&gt;
Elérhető fordítók listája&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Forító&lt;br /&gt;
! Soros&lt;br /&gt;
! Párhuzamos&lt;br /&gt;
|-&lt;br /&gt;
| Intel Fortran&lt;br /&gt;
| ifort&lt;br /&gt;
| mpiif90&lt;br /&gt;
|-&lt;br /&gt;
| Intel C&lt;br /&gt;
| icc&lt;br /&gt;
| mpiicc&lt;br /&gt;
|-&lt;br /&gt;
| GNU Fortran&lt;br /&gt;
| gfotran&lt;br /&gt;
| mpif90&lt;br /&gt;
|-&lt;br /&gt;
| GNU C&lt;br /&gt;
| gcc&lt;br /&gt;
| mpicc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A fordítási paramétereket az NCE környezeti változókból érdemes kiolvasni:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    NCE_OFLAGS - optimalizációs kapcsolók C és Fortran&lt;br /&gt;
    NCE_FFLAGS - Fortran kapcsolók&lt;br /&gt;
    NCE_CFLAGS - C kapcsolók&lt;br /&gt;
    NCE_LDFLAGS - könyvtárak C és Fortran&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az NCE környezeti változó listáját az &amp;lt;code&amp;gt;nce&amp;lt;/code&amp;gt; paranccsal kérhetjük le.&lt;br /&gt;
&lt;br /&gt;
A budapesti gépen elérhető a PRACE környezet is, amely tartalmaz egy ajánlott kapcsoló és könyvtár összeállítást tartalmaz. A PRACE környezet betöltése:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    module load prace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A PRACE környezet az AMD ACML matematikai könyvtárakat használja, amennyiben az Intel MKL-re van szükségünk, akkor a PRACE környezetet nem kell betölteni. A megfelelő MKL kapcsolókat az [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Intel Link Advisor] szerint kell beállítani, pl.:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    FFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    CFLAGS=-openmp -I$(MKLROOT)/include&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a \&lt;br /&gt;
      -Wl,--end-group -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Párhuzamos környezet ===&lt;br /&gt;
==== OpenMP ====&lt;br /&gt;
Az OpenMP paraméterket környezeti változókon keresztül kell beállítani. Az &amp;lt;code&amp;gt;openmp&amp;lt;/code&amp;gt; párhuzamos SGE környezet az OpenMP szálak számát beállítja. Tovább környezeti változókat az [https://computing.llnl.gov/tutorials/openMP/#EnvironmentVariables LLNL OpenMP oldalán] találtok.&lt;br /&gt;
&lt;br /&gt;
==== MPI ====&lt;br /&gt;
Az alapértelmezett MPI könyvtár az Open MPI. Ajánlott optimalizációs kapcsolók (CPU binding):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    --bind-to-core --bycore&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SGI UV Pécs ==&lt;br /&gt;
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.&lt;br /&gt;
&lt;br /&gt;
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani. Fordításhoz az Intel Link Advisor-t érdemes használni. Az ajánlott fordítás opciók:&lt;br /&gt;
&lt;br /&gt;
=== MPI fordítási opciók ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2&lt;br /&gt;
    LDFLAGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_sequential.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -lpthread -lm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI és OpenMP fordítási opciók ===&lt;br /&gt;
Ebben az esetben az MKL műveletek OpenMP szálasíthatók, a program hibrid MPI és OMP módban is tud üzemelni.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    CFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    FFLAGS=-O2 -xSSE4.2 -openmp&lt;br /&gt;
    LDFALGS=$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \&lt;br /&gt;
      -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_core.a \&lt;br /&gt;
      $(MKLROOT)/lib/intel64/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group \&lt;br /&gt;
      -liomp5 -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N MPITEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 384 szál lefoglalása az&lt;br /&gt;
    # mpi párhuzamos környezetben&lt;br /&gt;
    #$ -pe mpi 384&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=1&lt;br /&gt;
    ### MPI&lt;br /&gt;
    # MPI beállítások&lt;br /&gt;
    export MPI_MEMMAP_OFF=1&lt;br /&gt;
    # saját szkript vagy az mpirun közvetlen meghívás&lt;br /&gt;
    # 384 MPI szál fog elindulni&lt;br /&gt;
    mpirun $NSLOTS dplace -s 1 &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `&amp;lt;APP&amp;gt;` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== OMP SGE job szkript példa ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    ### SGE&lt;br /&gt;
    #$ -N OMPTEST&lt;br /&gt;
    # 12 órás walltime limit &lt;br /&gt;
    #$ -l h_rt=12:00:00&lt;br /&gt;
    # 192 szál lefoglalása az&lt;br /&gt;
    # openmp párhuzamos környezetben&lt;br /&gt;
    #$ -pe openmp 192&lt;br /&gt;
    # az uv.q sor használatával&lt;br /&gt;
    #$ -q uv.q&lt;br /&gt;
    # a standard kimenet ide íródik&lt;br /&gt;
    #$ -o StdOut&lt;br /&gt;
    # a hibakimenet ide íródik&lt;br /&gt;
    #$ -e StdErr&lt;br /&gt;
    # a jelenlegi shell környezet exportálódik&lt;br /&gt;
    #$ -V&lt;br /&gt;
    ### NUMA&lt;br /&gt;
    # az StdOut-ba írja a numa node információt&lt;br /&gt;
    numactl --show&lt;br /&gt;
    ### OMP&lt;br /&gt;
    # OMP beállítások&lt;br /&gt;
    export OMP_NUM_THREADS=$NSLOTS&lt;br /&gt;
    omplace &amp;lt;APP&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.&lt;br /&gt;
&lt;br /&gt;
=== Monitorozás ===&lt;br /&gt;
A jobhoz rendelt cpusetet (CPU és memória szelet) a következő parancsokkal lehet megfigyelni. A grafikonokhoz &amp;lt;code&amp;gt;ssh -X&amp;lt;/code&amp;gt; átirányítás szükséges. A processzorterhelés grafikonján négy adat szerepel: &amp;lt;span style=&amp;quot;color:#00FF00&amp;quot;&amp;gt;zöld - hasznos, felhasználói terhelés&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#FFFF00;background-color:#DDDDDD;&amp;quot;&amp;gt;sárga - üresjárat&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#0000FF&amp;quot;&amp;gt;kék&amp;lt;/span&amp;gt; és &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;piros - káros rendszerterhelés&amp;lt;/span&amp;gt;. Egy HPC program akkor fut &amp;quot;jól&amp;quot;, ha a zöld, felhasználói terhelés maximális, a többi pedig minimális. Ideális esetben a grafikonon egyenes zöld vonalak láthatók. Nem egyenes (&amp;quot;ugráló&amp;quot;) grafikon a terhelés nem egyenletes elosztására utal, ezen a CPU binding (dplace, omplace parancsok használata) általában segít.&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés numa node-onként (6 core), az ideális terhelés 6-nál (600%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processzor terhelés CPU-nként, az ideális terhelés 1-nél (100%) van:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Memória terhelés numa node-onként, a maximális terhelés 30 GB-nál van, ami core-onként 5GB-nak felel meg:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemmon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés Linpack-kal ====&lt;br /&gt;
A monitorozást egy Linpack teszt segítségével érdemes kipróbálni. A következő parancsokkal előkészítjünk egy Linpack teszt futást a &amp;lt;code&amp;gt;test.q&amp;lt;/code&amp;gt; sorban:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    cd $HOME&lt;br /&gt;
    mkdir linpack&lt;br /&gt;
    module load hpl/2.0.mpt&lt;br /&gt;
    cd linpack&lt;br /&gt;
    cp $LINPACK_HPL_HOME/bin/{xhpl.sh,HPL.dat} .&lt;br /&gt;
    qsub xhpl.sh&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A visszakapott jobid-vel hívjuk meg a monitor parancsot:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    sgemon -g -n &amp;lt;JOBID&amp;gt;&lt;br /&gt;
    sgemon -g -m &amp;lt;JOBID&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A képen látható ábráknak megfelelő terhelési grafikonokat kell kapnunk. A grafikonok jellege más HPC alkalmazások esetén is ilyennek kell legyen (&amp;quot;egyenes&amp;quot; zöld vonal).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_cpu.jpg|frame|left|320px|Linpack teszt processzorterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Linpack_mem.jpg|frame|left|320px|Linpack teszt memóriaterhelés]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GY.I.K ==&lt;br /&gt;
&lt;br /&gt;
1. Ki használhatja a szuperszámítógépet?&lt;br /&gt;
A szuperszámítógép-rendszert felhasználói a magyar akadémiai körből, azon belül is az NIIF tagintézmények köréből kerülhetnek ki. A szuperszámítógépek tényleges felhasználói ezen intézmények munkatársai ill. hallgatói, valamint - indokolt esetben - egy NIIF tagintézmény és egy magyar vagy külföldi nem NIIF tagintézmény közötti tudományos kooperáció esetén a nem NIIF tagintézmény munkatársai lehetnek. Speciális esetben, egyéb indokokra való tekintettel (pl. nagy jelentőségű, az ország számára kiemelten fontos kutatás/fejlesztés/alkalmazás stb.) a fenti szabály alól az NIIF Program vezetése egyedi elbírálás alapján felmentést adhat.&lt;br /&gt;
2. Mire használható a szuperszámítógép-rendszer?&lt;br /&gt;
A szuperszámítógép üzemeltetésének célja a magyar kutatás és felsőoktatás nagysebességű ill. kapacitású számítási igényeinek kiszolgálása. A gépek tehát felhasználhatók az alkalmazására jogosult intézmények bármelyikében folyó olyan kutatási és/vagy oktatási célra, amelyhez ilyen teljesítményű számítástechnikai kapacitás szükséges. Elsősorban az extrém számítási mennyiséget vagy sebességet igénylő vagy igen nagy memóriaigényű alkalmazások kiszolgálása a cél.&lt;br /&gt;
A szuperszámítógépek nem használhatók a fentiektől eltérő célokra (pl. profitérdekelt tevékenység keretében folyó fejlesztésekhez, alkalmazásokhoz, vagy más, hagyományos eszközökkel is kielégítően megoldható feladatokhoz, stb.), vagy hagyományos értelemben vett hálózati szolgáltatások (pl. web-, ftp-, adatbázis- vagy file szerver) üzemeltetésére sem.&lt;br /&gt;
3. Hogyan lehet a szuperszámítógépekhez hozzáférni?&lt;br /&gt;
A szuperszámítógép-rendszer mindegyik alrendszere az NIIF központban, illetve NIIF regionális központokban üzemelnek, ott ahol a magyar akadémiai Internet gerinchálózat (HBONE+) nagysebességű vonalai összefutnak. Az alrendszerek többször 10GB/s sebességű, dedikált lambda-kapcsolatokon keresztül kapcsolódnak egymáshoz, illetve a hálózathoz. Igénybevételük távolról, a hálózaton keresztül lehetséges, tetszőleges kliens számítógépről, alfanumerikus vagy grafikus terminál, ill. terminál emuláció valamint biztonságos kapcsolatot lehetővé tevő protokollok (ssh, scp), köztesréteg felhasználásával.&lt;br /&gt;
A kitűnő hálózati kapcsolódás biztosítja, hogy a rendszert a gerinchálózat bármelyik pontjáról nagy sebességgel el lehet érni, és így még nagy mennyiségű adat mozgatása sem jelent problémát.&lt;br /&gt;
A szuperszámítógép-rendszerhez való hozzáféréshez témaszám(ok)ra van szükség, amit az üzemeltetőtől kell igényelni. A témaszám igényléshez egy kérdőívet kell kitölteni, amelyen megadott információk alapján dönt az NIIF Intézet az igénylés jogosságáról. Szükség esetén az NIIFI konzultálhat is az igénylővel mielőtt döntést hoz. A témaszám személyre szóló és át nem ruházható. A témaszám átvételével a felhasználó deklarálja, hogy megismerte, és magára nézve kötelezőnek tartja a szuperszámítógép használatára vonatkozó szabályokat.&lt;br /&gt;
4. Melyek a felhasználás feltételei?&lt;br /&gt;
A szuperszámítógépeket csak érvényes témaszám birtokában, a témaszám igénylésekor megjelölt feladatokra lehet használni a kapott kvóták keretein belül.&lt;br /&gt;
A szuperszámítógépek felhasználásával elért tudományos eredmények, tapasztalatok hazai és nemzetközi publikációiban meg kell említeni az NIIF infrastruktúra alkalmazásának tényét.&lt;br /&gt;
A szuperszámítógépeket felhasználó projektek státuszáról, előrehaladásáról, elért eredményeiről évente legalább egyszer rövid összegzést kell küldeni az NIIF Intézetnek.&lt;br /&gt;
5. Hogyan kerülnek elosztásra az erőforrások?&lt;br /&gt;
A szuperszámítógép erőforrásai (gépidő, processzorszám, memória, háttértár) korlátozottak. Az alapvető cél az, hogy mindenki hozzájusson a számára szükséges kapacitáshoz. Amennyiben egy adott pillanatban az igények meghaladják a rendelkezésre álló kapacitást, úgy a felhasználható kvóták, és az egyes projektekhez rendelt prioritások alapján osztjuk fel az erőforrásokat. A szuperszámítógépen a CPU igényes jobok futtatása helyi ütemező és erőforrás elosztó rendszeren, illetve grid erőforrás brókeren keresztül lehetséges.&lt;br /&gt;
6. Milyen alkalmazások, felhasználói szoftverek ill. fejlesztő eszközök állnak rendelkezésre?&lt;br /&gt;
A szuperszámítógépeken elérhetők az elterjedt számítógép programozási nyelvek fordítóprogramjai, könyvtárai ill. egyéb fejlesztőeszközei (pl. C, C++, Fortran), a párhuzamos alkalmazások futtatásához szükséges különféle szoftver környezetek (pl. PVM, MPI, OpenMP), egyéb, Linux környezetben használható HPC (High Performance Computing) eszközök, optimalizált párhuzamos matematikai könyvtárak, valamint különféle célalkalmazások.&lt;br /&gt;
7. Milyen felhasználói támogatás/segítség vehető igénybe?&lt;br /&gt;
A szuperszámítógépek üzemeltetői helpdesk szolgáltatás keretében a gép felhasználói számára szakmai segítséggel, konzultációval, tanácsadással szolgálnak. Szervezünk továbbá a szuperszámítógéppel és felhasználásával kapcsolatos tanfolyamokat, workshopokat és szemináriumokat is. A projekt weboldalai szintén hasznos információkkal szolgálnak.&lt;br /&gt;
8. Mennyit kell fizetni a szuperszámítógépek használatáért?&lt;br /&gt;
A szuperszámítógépek használata ingyenes a jogosult felhasználók számára.&lt;br /&gt;
&lt;br /&gt;
[[Category: HPC]]&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Herbert(AT)niif.hu</name></author>	</entry>

	</feed>