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

Περιγραφή

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 35.1

ΠΡΟΣΟΧΗ

Το GAMS στην έκδοση 35.1 είναι προσβάσιμο μόνο από χρήστες που ανήκουν στο group gams_ece.

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

Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας.

# mkdir GAMS-35.1-case
# cd GAMS-35.1-case

Μέσα στο φάκελο τοποθετούμε τo αρχείo εισόδου trnsport.gms.

Χρήση παραλληλίας

Το GAMS εν γένει δεν είναι παραλληλοποιημένη εφαρμογή, αλλά αρκετοί solvers δίνουν τη δυνατότητα χρήσης πολλαπλών processes ή threads. Στο αρχείο εισόδου του παραδείγματος χρησιμοποιείται ο επιλυτής CPLEX με αριθμό παράλληλων νημάτων 2. Αυτό καθορίζεται στη γραμμή

option threads=2;

και έπειτα στο job script (παρακάτω) όπου και ζητείται η δέσμευση των αντίστοιχων πόρων στη γραμμή:

#SBATCH --ntasks-per-node=2

Το script που θα χρησιμοποιήσουμε, (έστω GAMS-35.1-case.sh), θα έχει την ακόλουθη μορφή:

SLURM submission script
#!/bin/bash
#SBATCH --time=1:00:00
#SBATCH --ntasks-per-node=2
#SBATCH --nodes=1
#SBATCH --partition=batch

module load gcc/9.2.0 GAMS/35.1

gams trnsport.gms

Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch GAMS-35.1-case.sh

Παρακολουθούμε με squeue την εξέλιξη της εργασίας και εφόσον έχει εκκινήσει μπορούμε να παρακολουθούμε την πρόοδο μέσω των αρχείων εξόδου.

# tail -f slurm-XXXXX.out