Módosítások

Debrecen2 GPU klaszter en

633 bájt törölve, 2021. július 14., 10:25
nincs szerkesztési összefoglaló
==== SLURM warnings ====
<pre>
Resources/AssociationResourceLimit - Erőforrásra várWaiting for a resourceAssociationJobLimit/QOSJobLimit - Nincs elég Not enough CPU idő vagy a maximális time or maximum CPU szám le van foglalvanumber is reservedPiority Priority - Alacsony prioritás miatt várakozikWaiting due to low priority 
</pre>
Az utóbbi esetbenIn the latter case, csökkenteni kell a the time to be reserved by the job által lefoglalni kívánt időtmust be reduced. Egy adott projekt részére maximálisan Jobs for a given project can run on up to 512 CPU-n futhatnak jobok egy adott időbenCPUs at a given time.
==== Licenszek ellenőrzése Checking licenses ====
Az elérhető és éppen használt licenszekről a következő parancs ad információt:
<pre>
</pre>
==== Karbantartás ellenőrzése Checking maintenance ====A karbantartási időablakban az ütemező nem indít új jobokatIn the maintenance time window, de beküldeni lehetthe scheduler does not start new jobs, but jobs could still be submitted. A karbantartások időpontjairól a következő parancs ad tájékoztatástThe following command provides information on maintenance dates:
<pre>
sreservations
</pre>
==== Összesített felhasználás Aggregate consumption ====Egy hónapra visszamenőleg az elfogyasztott You can retrieve the CPU perceket a következő paranccsal kérhetjük leminutes consumed up to one month ago with the following command:
<pre>
susage
</pre>
==== Teljes fogyasztás Total consumption ====Ha szeretnénk tájékozódni arrólIf you want to know how much CPU time you have been using for a certain period, hogy egy bizony idő óta mennyi a CPU idő felhasználásunk akkor azt ezzel paranccsal tudjuk lekérdezniyou can query it with this command:
<pre>
sreport -t Hours Cluster AccountUtilizationByUser Accounts=ACCOUNT Start=2015-01-01
</pre>
=== Feladatok futtatása Submitting jobs ===Alkalmazások futtatása a szupergépeken kötegelt (It is possible to run applications on supercomputers in batch) üzemmódban lehetségesmode. Ez azt jelentiThis means that for each run, hogy minden futtatáshoz egy a job szkriptet kell elkészíteni, amely tartalmazza az igényelt erőforrások leírását és script must be created that includes a futtatáshoz szükséges parancsokatdescription of the resources required and the commands required to run. Az ütemező paramétereit Scheduler parameters (erőforrás igényekresource requirements) a must be specified with the <code>#SBATCH</code> direktívával kell megadnidirective.
==== Kötelező paraméterek Mandatory parameters ====A következő paramétereket minden esetben meg kell adniThe following parameters must be specified in each case:
<pre>
#!/bin/bash
#SBATCH --time=TIME
</pre>
ahol az where <code>ACCOUNT</code> a terhelendő számla neve is the name of the account to be charged (elérhető számláinkről az <code>your available accounts are indicated by the sbalance</code> parancs ad felvilágosítástcommand), a <code>NAME</code> a is the short name of the job rövid neve, a and <code>TIME</code> pedig a maximális walltime idő is the maximum wall clock time (<code>DD-HH:MM:SS</code>). A következő időformátumok használhatókThe following time formats can be used:  "minutes", "minutes:seconds", "hours:minutes:seconds", "days-hours", "days-hours:minutes" és and "days-hours:minutes:seconds".
==== GPU-k lefoglalása Reservation of GPUs ====A GPU-k lefoglalása a következő direktívával törénikGPUs are reserved using the following directive:
<pre>
#SBATCH --gres=gpu:N
</pre>
Az <code>N</code> a GPU-kspecifies the number of GPUs /node számát adja meg, ami which can be 1, 2 és , and a maximum of 3 lehet maximum.
==== Interaktív használat Interactive use ====Rövid interaktív feladatokat az You can submit short interactive jobs with the 'srun' paranccsal tudunk beküldenicommand, ple.g.:
<pre>
srun -l -n 1 -t TIME --gres=gpu:1 -A ACCOUNT APP
</pre>
==== Batch job-ok indítása Submitting batch jobs ====A jobok feladását a következő parancs végziTo submit jobs use the following command:
<pre>
sbatch slurm.sh
</pre>
Sikeres feladás esetén a következő kimenetet kapjukOn successful submission you get the following output:
<pre>
Submitted batch job JOBID
ahol a <code>JOBID</code> a feladat egyedi azonosítószáma.
A feladat leállítását a következő parancs végziThe following command stops the job:
<pre>
scancel JOBID
</pre>
==== Nem újrainduló jobok Non-restarting jobs ====Nem újrainduló jobokhoz a következő direktívát kell használniFor non-restarting jobs, the following directive should be used:
<pre>
#SBATCH --no-requeue
</pre>
==== Feladat sorok Partitions ====A szupergépen két, egymást nem átfedő, sor There are two non-overlapping queues (partíciópartitions) áll rendelkezésre, a on the supercomputer: the <code>prod-gpu-k40</code> sor és a queue and the <code>prod-gpu-k20</code> sorqueue. Mind a kettő éles számolásokra valóBoth are for production purposes, az első olyan the first featuring CN gépeket tartalmaz amikben machines with Nvidia K40x GPU-k, a másodikban pedig GPUs and the second with Nvidia K20x GPU-k vannakGPUs. Az alapértelmezett sor a The default queue is <code> prod-gpu-k20</code>. A The prod-gpu-k40 partíciót a következő direktívával lehet kiválasztanipartition can be selected with the following directive:
<pre>
#SBATCH --partition=prod-gpu-k40
</pre>
==== A szolgáltatás minősége Quality of Service (QOSQoS) ====A szolgáltatást alapértelmezett minősége The default quality of the service is <code>normal</code>, azaz nem megszakítható a futási.e. it cannot be interrupted.
===== Magas prioritás High priority =====A magas prioritású jobok maximum High-priority jobs can run for up to 24 óráig futhatnak, és kétszer gyorsabb időelszámolással rendelkeznek, cserébe az ütemező előreveszi ezeket a feladatokathours and are charged for twice the time in return for prioritizing these jobs.
<pre>
#SBATCH --qos=fast
</pre>
===== Alacsony prioritás Low priority =====Lehetőség van alacsony prioritású jobok feladására It isalso possible to post low-priority jobs. Az ilyen feladatokat bármilyen normál prioritású Such jobs can be interrupted at any time by any normal priority job bármikor megszakíthatja, cserébe az elhasznált gépidő fele számlázódik csakin exchange for being charged for only half the machine time spent. A megszakított jobok automatikusan újraütemeződnekInterrupted jobs are automatically rescheduled. Fontos, hogy olyan feladatokat indítsunk alacsony prioritással, amelyek kibírják a véletlenszerű megszakításokat, rendszeresen elmentik az állapotukat Only submit jobs with low priority that can withstand random interruptions and save their status regularly (checkpoint) és ebből gyorsan újra tudnak indulniso that they could be quickly restarted.
<pre>
#SBATCH --qos=lowpri
</pre>
==== Memória foglalás Memory allocation ====Alapértelmezetten By default, 1 CPU core-hoz is assigned 1000 MB memória van rendelve, ennél többet a következő direktívával igényelhetünkof memory but more can be requested with the following directive:
<pre>
#SBATCH --mem-per-cpu=MEMORY
</pre>
ahol where <code>MEMORY</code> is specified in MB egységben van megadva. A maximális memóriaThe maximum memory /core can be 7800 MB lehet.
==== Email értesítés notification ====Levél küldése Send mail when job állapotának változásakor status changes (elindulásstart,leállásstop,hibaerror):
<pre>
#SBATCH --mail-type=ALL
#SBATCH --mail-user=EMAIL
</pre>
ahol az where <code>EMAIL</code> az értesítendő emial címis the email address to be notified.
==== Tömbfeladatok (arrayjob) Arrayjobs ====Tömbfeladatokra akkor van szükségünk, egy szálon futó (soros) alkalmazást szeretnénk egyszerre sok példányban (más-más adatokkal) futtatni. A példányok számára az ütemező a <code>SLURM_ARRAY_TASK_ID</code> környezeti változóban tárolja az egyedi azonosítót. Ennek lekérdezésével lehet az arrayjob szálait elkülöníteni. A szálak kimenetei a <code>slurm-SLURM_ARRAY_JOB_ID-SLURM_ARRAY_TASK_ID.out</code> fájlokba íródnak. Az ütemező a feltöltést szoros pakolás szerint végzi. Ebben az esetben is érdemes a processzorszám többszörösének választani a szálak számát. [http://slurm.schedmd.com/job_array.html Bővebb ismertető]
Arrayjobs are needed when a single threaded (serial) application is to be run in many instances (with different parameters) at once. For instances, the scheduler stores the unique identifier in the <code>SLURM_ARRAY_TASK_ID</code> environment variable. By querying this, the threads of the array job can be separated. The outputs of the threads are written to the <code>slurm-SLURM_ARRAY_JOB_ID-SLURM_ARRAY_TASK_ID.out</code> files. The scheduler performs the upload according to a tight pack. You may want to select the number of threads as a multiple of the number of processors in this case too. [http://slurm.schedmd.com/job_array.html|More information]
<pre>
#!/bin/bash
</pre>
==== OpenMPI feladatok jobs ====For MPI feladatok esetén meg kell adnunk az egy jobs, you must also specify the number of MPI processes starting on each node-on elinduló MPI processzek számát is (<code>#SBATCH --ntasks-per-node=</code>). A leggyakoribb esetben ez az egy In the most common case this is the number of CPU cores of a single node-ban található CPU core-ok száma. A párhuzamos programot az The parallel program must be started with the <code>mpirun</code> paranccsal kell indítanicommand.
<pre>
#!/bin/bash
OpenMPI FAQ: http://www.open-mpi.org/faq
==== OpenMP (OMP) feladatok jobs ====OpenMP párhuzamos alkalmazásokhoz A maximum of 1 node-ot lehet lefoglalnican be reserved for OpenMP parallel applications. Az The number of OMP szálák számát az threads must be specified with the <code>OMP_NUM_THREADS</code> környezeti változóval kell megadnienvironment variable. A változót vagy az alkamazás elé kell írni The variable must either be set before the application (ld. példasee example), vagy exportálni kell az indító parancs előttor exported before the start command:
<code>
export OMP_NUM_THREADS=8
</code>
A következő példában egy taskhoz In the following example, we have assigned 8 CPU core-t rendeltunkcores to a task, a the 8 CPU core-nak egy cores must be on one node-on kell lennie. A The number of CPU core-ok számát a cores is included in the <code>SLURM_CPUS_PER_TASK</code> változó tartalmazzavariable, és ez állítja be az and it also sets the number of OMP szálak számát isthreads.
User Alice felhasználó launches an 8-thread OMP application at the expense of the foobar account for a foobar számla terhére, maximum of 6 órára indít el egy 8 szálas OMP alkalmazásthours.
<pre>
#!/bin/bash
</pre>
==== Hibrid Hybrid MPI-OMP feladatok jobs ====Hibrid We speak of a hybrid MPI-OMP módról akkor beszélünk, ha a párhuzamos alkalmazás mode when the parallel application uses both MPI-t és and OMP-t . It is használ. Érdemes tudni, hogy az worth noting that MKL calls of programs linked with Intel MKLare OpenMP-el linkelt programok MKL hívásai OpenMP képesekcapable. Általában a következő elosztás javasoltIn general, the following distribution is recommended: az the number of MPI processzek száma processes from 1-től az egy to the number of CPU sockets in one node-ban található CPU foglalatok száma, az the OMP szálak ennek megfelelően az egy node-ban található összes threads to be the total number of CPU core szám vagy annak felenumbers in one node, negyede or half, or quarter (értelem szerűenas appropriate). A jobszkipthez a fenti két mód paramétereit kombinálni kellFor the job script the parameters of the above two modes must be combined.
A következő példában In the following example, we start 2 node-ot, és node-onként nodes and 1-1 taskot indítunk taskonként task per node with 10 szállalthreads per task. User Alice felhasználó submitted a hybrid job to 2 nodes for 8 hours at the expense of the foobar számla terhére, 8 órára, 2 node-ra küldött be egy hibrid jobotaccount. Egy node-on egyszerre csak Only 1 db MPI processz fut ami process runs on one node-onként at a time, which uses 8 OMP szálat használthreads per node. A The 2 gépen összesen machines run a total of 2 MPI proceszz és processes and 2 x 8 OMP szál futthreads.
<pre>
#!/bin/bash
</pre>
==== Maple Grid feladatok jobs ==== Maple-t az OMP feladatokhoz hasonlóan can be run on 1 node-on lehet futtatnilike OMP tasks. Használatához be kell tölteni a You must also load the maple modult ismodule to use it. A Maple kliensworks in client-szerver üzemmódban működik ezért a Maple feladat futtatása előtt szükség van a server mode so you must also start the grid szerver elindítására is server (<code>${MAPLE}/toolbox/Grid/bin/startserver</code>)before running the Maple job. Ez az alkalmazás licensz kötelesThis application requires a license, amit a jobszkriptben meg kell adni which must be specified in the job script (<code>#SBATCH --licenses=maplegrid:1</code>). A The Maple feladat indátását a job must be started with the <code>${MAPLE}/toolbox/Grid/bin/joblauncher</code> paranccsal kell elvégeznicommand.
User Alice felhasználó a foobar számla terhére, 6 órára indítja el a starts Maple Grid alkalmazástfor 6 hours from the foobar account:
<pre>
#!/bin/bash

Navigációs menü