Σειριακές εργασίες
Υποβολή σειριακής εργασίας - Slurm¶
Το παρακάτω batch script
(έστω serial_job), αποτελεί ένα παράδειγμα μίας πολύ απλής σειριακής εργασίας, η οποία τυπώνει το όνομα του κόμβου στον οποίο δρομολογήθηκε.
Παράδειγμα
#!/bin/bash
#SBATCH --time=01:00:00 # Run time (days-hh:mm:ss) - (max 7days)
#SBATCH --partition=batch # Submit to queue/partition named batch
echo "Hello from $(hostname)"
Δημιουργούμε το αρχείο serial_job.sh
με το παραπάνω περιεχόμενο, ή μεταφέρουμε το αρχείο από τον υπολογιστή μας.
Μεταφορά αρχείων στη συστοιχία
Για περισσότερες πληροφορίες σχετικά με τη μεταφορά αρχείων στη συστοιχία, συμβουλευτείτε την ενότητα [Μεταφορά αρχείων στη συστοιχία](../transfer.md).
Οι γραμμές που ξεκινούν με #SBATCH
αποτελούν τις οδηγίες (directives) για τη δρομολόγηση εργασιών στην υπολογιστική συστοιχία.
Παράμετροι Slurm
Περισσότερες επιλογές υπάρχουν στην ενότητα Παράμετροι Slurm. Επίσης, μπορείτε να συμβουλευτείτε το man page (manual) της εντολής sbatch
, χρησιμοποιώντας την εντολή:
# man sbatch
Για να υποβάλουμε την εργασία, τρέχουμε την παρακάτω εντολή από το directory στο οποίο βρίσκεται το serial_job.sh
:
Terminal Output
# sbatch serial_job.sh
Submitted batch job 7143
Παρακολούθηση εξέλιξης εργασίας¶
Εφόσον η προηγούμενη εντολή έχει εκτελεστεί σωστά, επιστρέφει ένα μοναδικό αναγνωριστικό (JOB_ID
) της εργασίας που υποβλήθηκε. Στη συγκεκριμένη περίπτωση είναι το 7143
.
Μπορείτε να παρακολουθείτε την εξέλιξη της εργασίας μέσω των αρχείων εξόδου που παράγονται απευθείας στον φάκελο από όπου την υποβάλατε, με την παρακάτω εντολή, αντικαθιστώντας το σωστό JOB_ID
.
# tail -f slurm-7143.out
Πληκτρολογείστε Ctrl+C
για την διακοπή της προηγούμενης εντολής.
'Ελεγχος status εργασίας¶
Για να ελέγξουμε το status
στο οποίο βρίσκεται μία εργασία που έχετε υποβάλει στην υπολογιστική συστοιχία, χρησιμοποιούμε την εντολή squeue
. Το παρακάτω είναι ένα παράδειγμα της εξόδου που δίνει η εντολή squeue
.
Terminal output
# squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
7088 batch TestJob TestUser R 2:07 1 cn4
7089 batch TestJob TestUser R 3:04 1 cn3
7090 batch TestJob TestUser R 0:25 1 cn5
7091 batch TestJob TestUser PD 0:00 1 (BeginTime)
7092 batch TestJob TestUser PD 0:00 1 (Resources)
7093 batch TestJob TestUser PD 0:00 1 (Priority)
State Examples
Το state της εργασίας (στήλη ST
) είναι, συνήθως, ένα από τα παρακάτω:
R
:RUNNING
- Job currently has an allocationPD
:PENDING
- Job is awaiting resource allocationS
:SUSPENDED
- Job has an allocation, but execution has been suspended and CPUs have been released for other jobsCG
:COMPLETING
- Job is in the process of completing. Some processes on some nodes may still be activeCD
:COMPLETED
- Job has terminated all processes on all nodes with an exit code of zero
Ακύρωση εργασίας¶
Για να ακυρώσουμε την εκτέλεση μίας εργασίας, χρησιμοποιούμε την εντολή scancel
σε συνδυασμό με το JOB_ID
ή με το JOB_NAME
της εργασίας που θέλετε να ακυρώσετε.
Παράδειγμα
# scancel 7089 # ακυρώνει τα jobs με JOB_ID=7089
# scancel -n TestJob # ακυρώνει τα jobs με JOB_NAME=TestJob
# scancel -u TestUser # ακυρώνει τα jobs που έχει υποβάλλει ο χρήστης TestUser