Περιγραφή¶
The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming and optimization. It consists of a language compiler and a number of integrated high-performance solvers. GAMS is tailored for complex, large scale modeling applications, and allows one to build large maintainable models that can be adapted quickly to new situations. GAMS is specifically designed for modeling linear, nonlinear and mixed integer optimization problems.
Executing gams
parses, compiles, and solves a set of equations derived from the model expressed in the GAMS input file (usually a text file with suffix .gms
.)
GAMS 48.2¶
ΠΡΟΣΟΧΗ
Κατά τη χρήση του GAMS στην έκδοση 48.2
, πρέπει να τηρείτε τους όρους της σχετικής εκπαιδευτικής άδειας (αρχείο /mnt/apps/prebuilt/GAMS/48.2.0/GAMS_EULA.pdf
).
Παράδειγμα χρήσης¶
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας.
# mkdir GAMS-48.2.0-case
# cd GAMS-48.2.0-case
Μέσα στο φάκελο τοποθετούμε τo αρχείo εισόδου trnsport.gms
.
Χρήση παραλληλίας
Το GAMS εν γένει δεν είναι παραλληλοποιημένη εφαρμογή, αλλά αρκετοί solvers δίνουν τη δυνατότητα χρήσης πολλαπλών processes ή threads. Στο αρχείο εισόδου του παραδείγματος χρησιμοποιείται ο επιλυτής CPLEX με αριθμό παράλληλων νημάτων 2. Αυτό καθορίζεται στη γραμμή
option threads=2;
και έπειτα στο job script (παρακάτω) όπου και ζητείται η δέσμευση των αντίστοιχων πόρων στη γραμμή:
#SBATCH --ntasks-per-node=2
Το script που θα χρησιμοποιήσουμε, (έστω GAMS-48.2.0-case.sh
), θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --time=1:00:00
#SBATCH --ntasks-per-node=1
#SBATCH --nodes=1
#SBATCH --partition=batch
module load GAMS/48.2.0
gams trnsport.gms
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>
ως εξής:
# sbatch GAMS-48.2.0-case.sh
Παρακολουθούμε με squeue
την εξέλιξη της εργασίας και εφόσον έχει εκκινήσει μπορούμε να παρακολουθούμε την πρόοδο μέσω των αρχείων εξόδου.
# tail -f slurm-XXXXX.out