Μετάβαση στο περιεχόμενο

Σειριακές εργασίες

Υποβολή σειριακής εργασίας - 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 allocation
  • PD: PENDING - Job is awaiting resource allocation
  • S : SUSPENDED - Job has an allocation, but execution has been suspended and CPUs have been released for other jobs
  • CG: COMPLETING - Job is in the process of completing. Some processes on some nodes may still be active
  • CD: 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