Περιγραφή¶
The Dakota (Design Analysis Kit for Optimization and Terascale Applications) toolkit provides a flexible, extensible interface between analysis codes and iteration methods.
Dakota 6.12¶
Massively Serial¶
Για το Massively Serial
παράδειγμα θα χρησιμοποιήσουμε το Dakota toolkit
για την παραμετρική υποβολή μίας σειριακής εργασίας Matlab
.
Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=dakota-case1
#SBATCH --partition=batch
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --tasks-per-node=8
module load gcc/9.2.0 mvapich2/2.3.4 dakota/6.12
module load matlab/R2022b
# Case 1: Run DAKOTA in parallel and launch M-1 = 5 parallel analysis
# jobs at once (use default scheduling; to run M = 6 jobs, see
# dakota_pstudy.in for peer static or peer dynamic scheduling)
srun dakota -i dakota-matlab.in -o dakota-matlab.out
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας, έστω DAKOTA-6.12-case1.sh.
# mkdir DAKOTA-6.12-case1
# cd DAKOTA-6.12-case1
Θα χρειαστεί να μεταφέρουμε στο directory DAKOTA-6.12-case1
τα παρακάτω αρχεία:
- dakota-matlab.in: Input file για το
Dakota toolkit
, το οποίο περιγράφει την εργασία όσον αφορά τις μεταβλητές που θα χρησιμοποιηθούν, το πώς αυτές θα τροποποιούνται καθώς και την μέθοδο και το interface που θα χρησιμοποιηθεί. Αναλυτικές πληροφορίες σχετικά με τα αρχεία εισόδου τουDakota toolkit
υπάρχουν διαθέσιμες στο Dakota Input Spec Summary. - driver-matlab.sh: Το script που περιγράφει την παραμετρική εργασία σε 3 στάδια (
Pre-processing Phase
,Execution Phase
,Post-processing Phase
). - mymfile.template: Template M-file με τις εντολές που θέλουμε να τρέξει το matlab, το οποίο θα τροποποιηθεί από το
Dakota toolkit
ώστε να τρέξει για τις παραμέτρους που θέλουμε να χρησιμοποιήσουμε. - myfact.m: Matlab function
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>
ως εξής:
# sbatch DAKOTA-6.12-case1.sh
Παρακολουθούμε με την εντολή squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f slurm-*.out
# cat dakota-matlab.out
# ls workdir*
Sequantial Parallel¶
Για το Sequantial Parallel
παράδειγμα θα χρησιμοποιήσουμε το Dakota toolkit
για την εκτέλεση μίας παράλληλης εργασίας OpenFOAM
που θα τρέξει με μία διαφορετική παράμετρο εισόδου η οποία θα τροποποιείται με βάση το βήμα που καθορίζουμε στο input file του Dakota toolkit
.
Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=dakota-case2
#SBATCH --partition=batch
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --tasks-per-node=8
module load gcc/9.2.0 mvapich2/2.3.4 dakota/6.12
module load openfoam/2006_201012
dakota -i dakota-of.in -o dakota-of.out
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας, έστω DAKOTA-6.12-case2.sh.
# mkdir DAKOTA-6.12-case2
# cd DAKOTA-6.12-case2
Θα χρειαστεί να μεταφέρουμε στο directory DAKOTA-6.12-case2
τα παρακάτω αρχεία κατά αντιστοιχία με το προηγούμενο παράδειγμα:
Επιπλέον, θα χρειαστεί να αντιγράψουμε ένα από τα παραδείγματα (tutorials) του OpenFoam. Για το σκοπό αυτό διαμορφώνουμε κατάλληλα το περιβάλλον χρήσης και αντιγράφουμε τα δεδομένα εισόδου του παραδείγματος cavity
μέσα στο φάκελο:
# module load gcc/9.2.0 mvapich2/2.3.4 openfoam/2006_201012
# cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity/* .
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>
ως εξής:
# sbatch DAKOTA-6.12-case2.sh
Παρακολουθούμε με την εντολή squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f slurm-*.out
# cat dakota-of.out
# ls workdir*
Dakota toolkit examples¶
Για να χρησιμοποιήσουμε τα παραδείγματα του Dakota toolkit
, μπορούμε να ενεργοποιήσουμε τα αντίστοιχα modules:
# module load gcc/9.2.0 mvapich2/2.3.4 dakota/6.12
και στην συνέχεια να χρησιμοποιήσουμε τα αρχεία εισόδου που βρίσκονται στα directories:
$DAKOTA_ROOT/share/dakota/examples/users
.$DAKOTA_ROOT/share/dakota/examples/training/exercises