Diese Frage stellt sich, wenn ich versuche, ein Skript in meinem Host-Computercluster zu finden, das eine bequemere Verwaltung quantenchemischer Berechnungen auf Gaussian ermöglicht. DasBenutzerhandbuchvon meinem Host gibt folgendes an:
Gaussian 09 bietet eine alternative Möglichkeit, dem Programm Werte für die Anzahl der Prozessoren, die Speichermenge und den zu verwendenden Festplattenspeicher zu übergeben. Anstatt %mem, %nprocshared und Maxdisk in der Eingabedatei anzugeben, ist es für Sie möglicherweise attraktiver, die Gaussian-Umgebungsvariablen $GAUSS_PDEF, $GAUSS_MDEF und $GAUSS_RDEF zu verwenden. Die Verwendung dieser Variablen ermöglicht es, die PBS-Jobwerte für ncpus, mem und jobfs in die von Gaussian 09 lesbaren Umgebungsvariablen zu konvertieren. Wir empfehlen Ihnen, das Bash-Skript „g09.sh“ anstelle von „g09“ in der Befehlszeile des PBS-Skripts auszuprobieren. Das Skript führt diese Konvertierung für Sie durch und startet das Programm, wobei es die PBS-Einstellungen erkennt. Die Syntax der Skriptverwendung ist einfach:
Leider scheint das Skript im Cluster nicht mehr vorhanden zu sein (und ich kann dies nicht vollständig überprüfen, da mir als Benutzer der Zugriff auf /root nicht gestattet ist, obwohl ich tatsächlich auf den Ordner / zugreifen und /apps und /modules überprüfen kann, in denen die Software und die Umgebungsmodule gespeichert sind).
Das heißt, ich muss auf Grundlage dieser Informationen versuchen, ein eigenes Skript zu schreiben, das die gleiche Aufgabe für mich erledigt. Ein typisches PBS, das vom Host verwendet wird, sieht folgendermaßen aus:
#!/bin/bash
#PBS -l walltime=20:00:00
#PBS -l ncpus=4
#PBS -l mem=4GB
#PBS -l jobfs=100GB
#PBS -l software=g09
#PBS -l wd
module load gaussian/g09e01
g09 < inputdeck > outputfile 2>&1
Daher, wie in derPBS Professional Benutzerhandbuch, alles mit -l sind die Ressourcen, die dem Job zugewiesen werden sollen.
Ich habe dann versucht, Umgebungsvariablen zu finden, die den Wert der Ressourcen mem, ncpus und jobfs speichern, damit ich exportieren kann $(some gaussian environment variable)=$(some PBS environment variable correspond to the resources)
. Die einzige PBS-Umgebungsvariable, die Ressourcen speichert, ist jedoch PBS_NCPUS, daher schien die Strategie nicht zu funktionieren
Wie kann ich also die Werte jedes Ressourcentyps aus den PBS-Direktiven extrahieren, damit ich sie gaußschen Umgebungsvariablen zuordnen kann?