abaqus

=Cette page est ABAQUS Powered=

-Lors des premières tentatives d'execution de jobs après une mise en donnée, il est courant de corriger des erreurs de syntaxe du .inp à la main. Afin de vérifier que la syntaxe est correcte, il est inutile d'effectuer un datacheck qui monopolise inutilement une license ! Inversement, si toutes les licenses sont prises, il est dommage de demander un suspend/resume à un autre utilisateur pour effectuer cette vérification ! -La solution est d'effectuer un syntaxcheck qui ne prend aucune license et qui écrit bien le .dat : -pour un input toto.inp : abaqus j=toto synt
 * Vérifier la syntaxe d'un job**

-pour un input toto.inp : abaqus j=toto -pour un input toto.inp en intéractif : abaqus j=toto int -pour un input toto.inp sur n coeurs : abaqus j=toto cpu=n
 * Lancer un job**

-pour un input toto.inp sur n coeurs : abaqus j=toto cpu=n -il faut mettre dans le répertoire de calcul un fichier abaqus_v6.env qui contient par exemple : mp_host_list='matrics002',1],['matrics003',1],['matrics004',1],['matrics007',1],['matrics008',1],['matrics010',1],['matrics012',1],['matrics013',1],['matrics014',1],['matrics015',1 La variable mp_host_list contient le nom des noeuds et le nombre de coeur associé à utiliser avec l'ordre d'utilisation. Il est conseillé de ne pas utiliser le maître (MATRICS) et d'opter pour un coeur par noeud comme dans l'exemple ci-dessus...
 * Lancer un job parallélisé sur MATRICS**

//**Lancer un GROS job (>5Mdof)** -Il faut absolument rajouter un fichier abaqus_v6.env dans votre répertoire de calcul définissant la mémoire à utiliser et pointant sur le répertoire de scratch ! -Un exemple de fichier abaqus_v6.env à créer : pre_memory = "20000 mb" standard_memory = "30214 mb" standard_memory_policy = MAXIMUM scratch="/scratch" -Il faut utiliser la valeur MODERATE pour la variable standard_memory_policy pour un gain de vitesse CPU (résultat mis en évidence les benchs S4B et S7B notamment).
 * 1) Memoire pour la phase de datacheck (pre.exe)
 * 1) Memoire pour la phase de calcul (standard.exe)
 * 1) Politique de gestion de la memoire, par defaut sur MODERATE
 * 1) Repertoire de scratch sur SCALAR a utiliser

-batcher est très utile : les jobs sont exécutés les un à la suite des autres, ne monopolisant qu'une license à chaque fois. -Il faut préparer un fichier texte (lance.txt par exemple) avec la séquence du batch et un répertoire de calcul avec tous les jobs à batcher. -pour éxecuter le batch, ouvrir un terminal depuis le répertoire de calcul et copier/coller le contenu de lance.txt dans le terminal (bouton milieu de la souris). -structure de lance.txt pour 3 jobs toto1.inp, toto2.inp, toto3.inp (bien respecter les retours chariots !) : "abaqus j=toto1 int
 * Lancer n job en batch**

abaqus j=toto2 int

abaqus j=toto3 int

"

-dans le fichier lance.txt : #! /bin/sh, puis les commandes à lancer -rendre executable le fichier : chmod +x lance.txt -executer le fichier en différé : utiliser la commande at, exemple 1 : at 11:59pm<lance.txt exemple 2 : at now + 1 day <lance.txt -afficher les lancements différés : at -l
 * Lancer n job en batch en différé**

Il y a trois options : -se mettre dans la queue en lancant son job. C'est la solution classique si aucune urgence des autres utilisateurs n'est à prendre en considération. -lancer un batch différé : cela permet de prendre en compte l'ordre d'execution des jobs des différents utilisateurs. -demander un suspend/resume : un autre utilisateur peut cèder sa license pour faire passer le calcul. C'est typiquement le cas quand un job est petit et que d'autres utilisateurs occupent toutes les licenses avec de gros calculs. Le seul inconvénient est que les jobs suspendus conservent la RAM occupée sur SCALAR. Commande pour céder sa place sur un job toto.inp : abaqus j=toto suspend puis abaqus j=toto resume.
 * Que faire si aucune license n'est disponible au moment du lancement ?**

-Le réglage par défaut est de 3750Mo de RAM pour le pre.exe et le standard.exe. S'ils sont insuffisant, il faut ajouter un fichier abaqus_v6.env modifié dans le répertoire de calcul. Pour plus de détails, voir la section 331 du Analysis User Guide. -Pour minimiser le temps de calcul, il faut jouer avec le paramètre standard_memory_policy du .env. Le mettre sur MAXIMUM minimise l'utilisation du disque dur comme mémoire virtuelle et maximise l'utilisation de la RAM en tentant d'allouer la valeur du paramètre standard_memory. Par défaut ce réglage est en MODERATE (réglage intermédiaire).
 * Gérer la mémoire du calcul**

-dans un terminal : top -pre.exe est le préprocesseur. Quand un calcul démarre après la phase de préprocessing, c'est le process standard.exe qui apparaît.
 * Savoir si un calcul a démarré**

-pour voir s'écrire dans un terminal l'évolution du calcul, donc suivre par exemple le .msg dans le répertoire du calcul en cours : tail -f *.msg
 * Suivre en continu l'écriture d'un fichier**

-La commande grep (indispensable !) permet d'afficher la ligne contenant une chaîne de caractère définie, ici LAGR. Le -B 5 permet de ramener les 5 lignes au dessus de la ligne trouvée. -Commande : grep -B 5 "LAGR" *.dat
 * Obtenir la taille du modèle EF :**

-Il est inutile de faire un calcul avec /Standard sur plus de 4 CPU. 2 CPU est le meilleur compromis. -Sur l'exemple du calcul de bielle, le temps de calcul sur 2 CPU est presque la moitié du temps de calcul sur 1 CPU. Par contre, le temps de calcul sur 4 CPU n'est plus que le tiers du temps de calcul sur 1 CPU. -La comparaison entre une station PC et SCALAR montre que ce dernier est le plus rapide, surtout pour des calculs sur 2 CPU.//
 * Performances de SCALAR sur Abaqus 662**


 * Bench Bielle DW10C**

Descriptif (avec d'autres benchs) : http://www.simulia.com/support/v67/v67_performance.html Fichier .inp : http://rapidshare.com/files/103836859/s4b.zip Il s'agit d'un serrage de culasse sur un carter de moteur en ligne. Des efforts de précharges sont appliqués sur les vis de culasse en 1 step et 5 itérations d'équilibre. Le modèle fait plus de 5 millions de ddl.
 * Bench S4B officiel pour la v6.6//**