Cómo mandar Espresso

send_espresso

Para lanzar al sistema de colas trabajos de Quantum Espresso existe la utilidad send_espresso. Al ejecutarlo, muestra la sintaxis del comando, que se resume a continuación:

send_espresso input Executable Nodes Procs_per_node Time Mem [``Otherqueue options'' ]
Input Nombre del input de espresso sin extensión
Executable Nombre del programa de espresso que se quiere usar: pw.x, ph.x, cp.x,…
Nodos Número de nodos a los que se quiere mandar el cálculo
Procs_per_node: Número de procesadores por nodo
Time: Tiempo solicitado a la cola, formato hh:mm:ss
Mem Memoria en GB y sin especificar la unidad
[«Otras opciones de Torque»] Existe la posibilidad de pasar más variables al sistema de colas. Ver ejemplos más abajo

Ejemplos

Mandamos Espresso (binario pw.x) con el input job1.in a 1 nodo, 4 procesadores de ese nodo, con un tiempo solicitado de 4 horas y 1 GB de RAM:

send_espresso job1 pw.x 2 4 04:00:00 1

Mandamos espresso (car-parrinello) con el input job2.in a 2 nodos, 8 procesadores en cada nodo, con un tiempo solicitado de 192 horas, 8 GB de RAM y que se ejecute después del trabajo 1234.arina:

send_espresso job2 cp.x 2 8 192:00:00 8 ``-W depend=afterany:1234''

Mandamos espresso (binario ph.x) con el input job3.in a 8 nodos y 8 procesadores en cada nodo, con un tiempo solicitado de 200:00:00 horas, 64 GB de RAM (global) y que nos envíe un mensaje de correo al inicio y final del cálculo a la dirección especificada.

send_espresso job3 ph.x 8 8 200:00:00 64 ``-m be -M mi.email@ehu.es''

El comando send_espresso copia el contenido del directorio desde el que se lanza al /scratch o /gscratch -si se usan 2 o más nodos. Es allí donde realiza el cálculo.

Cómo usar creando tu propio script para Torque

Los ejecutables de Espresso se encuentran instalados en /software/bin/espresso. Por ejemplo, para ejecutar pw.x en las colas usar:

source /software/Espresso/compilervars.sh
/software/Espresso/bin/pw.x -npool ncores < input_file > output_file

En la opción -npool ncores hay que sustituir ncores por el número de cores que se va a usar, esto mejora la velocidad de ejecución del cálculo. Si se solicitan más de un core se ejecuta automáticamente en paralelo.