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

Parallel GNU Εργασίες

Μια σύντομη εισαγωγή στη χρήση του GNU Parallel υπάρχει εδώ.

Παράδειγμα χρήσης 1

Θα υποβάλλουμε μία εργασία που διαβάζει το περιεχόμενο ενός αρχείου κειμένου, έστω του parallel_gnu_test.txt, και εκτυπώνει όλους τους συνδυασμούς των γραμμών του αρχείου με τα νούμερα 1-5.

Για το παράδειγμα αυτό θα χρησιμοποιούμε το παρακάτω script (έστω parallel-gnu-case.sh):

#!/bin/bash
#SBATCH --job-name=Parallel-GNU-Case
#SBATCH --partition=batch
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --time=00:10:00

parallel -j $SLURM_NTASKS  echo "Output from task {1} and {2}" :::: parallel_gnu_test.txt ::: 1 2 3 4 5

Για την υποβολή της εργασίας τοποθετούμε το text αρχείο parallel_gnu_test.txt στον ίδιο φάκελο με το script και εκτελούμε την εντολή:

sbatch parallel-gnu-case.sh

Παράδειγμα Χρήσης 2

Θα υποβάλλουμε μία εργασία η οποία θα διαβάζει το περιεχόμενο δύο αρχείων και θα εκτυπώνει κάθε στοιχείο του ενός σε συνδυασμό με όλα τα στοιχεία του άλλου. Για παράδειγμα, μπορούμε να χρησιμοποιήσουμε το αρχείο years.txt, το οποίο περιέχει τις χρονολογίες 2020-2015, και το months.txt, το οποίο περιέχει όλους τους μήνες. Θέλουμε, λοιπόν, να εκτυπώνονται όλοι οι μήνες σε συνδυασμό με κάθε μία από τις 5 χρονολογίες.

Θα χρησιμοποιήσουμε το παρακάτω script (έστω parallel-gnu-case2.sh)

#!/bin/bash
#SBATCH --job-name=Parallel-GNU-Case2
#SBATCH --partition=batch
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --time=00:10:00

parallel -j $SLURM_NTASKS  echo "Month: {2}, Year: {1}" :::: years.txt :::: months.txt

Για την υποβολή της εργασίας τοποθετούμε τα αρχεία years.txt και months.txt στον ίδιο φάκελο με το script και εκτελούμε την εντολή:

sbatch parallel-gnu-case2.sh