Upload
lkjl
View
222
Download
0
Embed Size (px)
Citation preview
7/23/2019 AC Seminario0 Torque
1/26
2 curso / 2 cuatr.
Grado en
Ing. Informtica
2 curso / 2 cuatr.
Grado en
Ing. Informtica
2 curso / 2 cuatr.
Grado en
Ing. Informtica
Seminario 0. Entorno de programacin:
atcgrid y gestor TORQUE
Arquitectura de Computadores
http://creativecommons.org/licenses/by-nc-sa/3.0/es/7/23/2019 AC Seminario0 Torque
2/26
AC
AC
Contenidos
Cluster de prcticas (atcgrid)
Sistema de colas TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE2
7/23/2019 AC Seminario0 Torque
3/26
AC
AC
Contenidos
Cluster de prcticas (atcgrid) Componentes
Placa madre
Chip de procesamiento (procesador) Acceso
Sistema de colas TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE3
7/23/2019 AC Seminario0 Torque
4/26
AC
AC
Cluster de prcticas (atcgrid): componentes
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE4
Nodos de cmputo (tres): Servidores rackSuperMicro SuperServer 6016T-T
http://www.supermicro.com/products/system/
1U/6016/SYS-6016T-T.cfm
Switch: SMC8508T
http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=
6&scid=24&pid=1147
Cables
Nodo f ront-end
(ho st, master)
http://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.smc.com/index.cfm?event=viewProduct&localeCode=EN_USA&cid=6&scid=24&pid=1147http://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfmhttp://www.supermicro.com/products/system/1U/6016/SYS-6016T-T.cfm7/23/2019 AC Seminario0 Torque
5/26
AC
AC
Cluster de prcticas (atcgrid): placa madre
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE5
Supermicro X8DTL-i Dual Socket 1366 ATX
Server Mainboard Intel 5500 chipset
http://www.supermicro.com/products/mother
board/QPI/5500/X8DTL-i.cfm
Intel 5520 Chipset
http://www.intel.com/p/en_US/embedded/h
wsw/hardware/xeon-5600-5500/overview
QPI
QPIQPI
3SM
I
3SM
I
http://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.intel.com/p/en_US/embedded/hwsw/hardware/xeon-5600-5500/overviewhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfmhttp://www.supermicro.com/products/motherboard/QPI/5500/X8DTL-i.cfm7/23/2019 AC Seminario0 Torque
6/26
AC
AC
Cluster de prcticas (atcgrid): chip de
procesamiento
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE6
Intel Xeon E5645 (6 cores/12
threads, 12M L3 Cache
compartida, 2.40 GHz cada core,
5.86 GT/s Intel QPI)
http://ark.intel.com/products/48768?wapkw=(E5645)
Core0
Core1 Core2
Core3
L1 L1 L1 L1
L2 L2 L2 L2
Core4
Core5
L1 L1
L2 L2
LLC - L3 (12MB)
QPI(5.86 GT/s )
SMI
Memory Controller
6 cores
hyperthreading2.4 GHz (12
threads)
http://ark.intel.com/products/48768?wapkw=(E5645)http://ark.intel.com/products/48768?wapkw=(E5645)http://ark.intel.com/products/48768?wapkw=(E5645)http://ark.intel.com/products/48768?wapkw=(E5645)http://ark.intel.com/products/48768?wapkw=(E5645)http://ark.intel.com/products/48768?wapkw=(E5645)7/23/2019 AC Seminario0 Torque
7/26
ACAC
Cluster de prcticas (atcgrid): acceso
Cada usuariotiene un home en el nodo front-endde atcgrid al que acceder:
Para ejecutar comandos (pbsnodes, qsub, qstat, qdel ), con un cliente ssh (secureshell): Linux: ssh [email protected] (pidepassworddel usuario username)
Para cargar y descargar ficheros (put hello, get stdin.o1, ), con un cliente sftp (securefile transferprotocol)
Linux: sftp [email protected] (pidepassworddel usuario username)
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE7
Nodo f ront-end:
atcgrid.ugr.es
Nodos
decmputo:
atcgrid1,a
tcgrid2yatcgrid3
Switch
Cables usuarios
work1
work2
work3
work4
workn
cola de trabajos TORQUE
mailto:[email protected]:[email protected]:[email protected]:[email protected]7/23/2019 AC Seminario0 Torque
8/26
ACAC
Contenidos
Cluster de prcticas (atcgrid)
Sistema de colas TORQUE
Qu es TORQUE?
Ejemplo con comandos TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE8
7/23/2019 AC Seminario0 Torque
9/26
ACAC
Qu es TORQUE?
Es un gestor de colas y de recursos distribuidos basado en PBS(Portable Batch System)
TORQUE: Terascale Open-source Resource and QUEue manager
Comandos TORQUE que se usarn en prcticas
pbsnodes: informacin de nodos PBS qsub: enviar un trabajo a ejecutar. Devuelve dos ficheros:
Salida del programa: en un fichero con extensin que comienza por .o
Errores : en un fichero con extensin que comienza por .e
qstat: chequear el estado de los trabajos qdel: eliminar un trabajo
Otros comandos:
http://docs.adaptivecomputing.com/torque/4-1-3/help.htm#topics/12-appendices/commandsOverview.htm
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE9
http://www.adaptivecomputing.com/resources/docs/torque/2-5-9/a.acommands.phphttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://docs.adaptivecomputing.com/torque/4-1-3/help.htmtopics/12-appendices/commandsOverview.htmhttp://www.adaptivecomputing.com/resources/docs/torque/2-5-9/a.acommands.phphttp://www.adaptivecomputing.com/resources/docs/torque/2-5-9/a.acommands.php7/23/2019 AC Seminario0 Torque
10/26
ACAC
Ejemplos con comandos TORQUE/PBS
Se ejecutarn en elfront-endcon conexin ssh
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE10
Ejemplo Explicacin
echo hello | qsub-q acEnva a ejecutar el trabajo, formado por el ejecutable
hello, por la cola ac.
qsubscript.sh -q acEnva a ejecutar el trabajo, formado por el script
script.sh, por la cola ac
echo cat /proc/cpuinfo | qsub-q ac
Enva a ejecutar el comando cat /proc/cpuinfo a
travs de la cola ac. Devuelve en elfichero de
salida el contenido del fichero /proc/cpuid de los
nodos a los que se ha enviado el trabajo.
qstat Muestra todos los trabajos que se estn ejecutandoy los que estn encolados en todas las colas
qstat-n -u usernameMuestra todos los trabajos del usuario username y
los nodos asignados a cada trabajo (-n)
qdeljobid Elimina el trabajo con identificador jobid
pbsnodes[-a] Lista los atributos de todos los nodos
7/23/2019 AC Seminario0 Torque
11/26
ACAC
Contenidos
Cluster de prcticas (atcgrid)
Sistema de colas TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE
Ejemplo hello OpenMP
Protagonistas de la ejecucin
Ejecucin de hello en atcgrid sin script
Ejecucin de hello en atcgrid con script
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE11
7/23/2019 AC Seminario0 Torque
12/26
ACAC
HelloOMP.c Cada threadimprime suidentificador
El identificador se obtiene
con la funcin OpenMP
omp_get_thread_num()
#include
#include
intmain(void){
#pragmaompparallel
printf("(%d:!!!Hello world!!!)",
omp_get_thread_num());
return(0);
}
Ejemplo hello OpenMP
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE12
7/23/2019 AC Seminario0 Torque
13/26
ACAC
Protagonistas de la ejecucin
Nodo f ront-end
(cliente PBS/TORQUE)
(servidor ssh y sftp)
Nodos de cmputo:atcgrid1, atcgrid2 y atcgrid3
(servidores PBS/TORQUE)
PC local
(cliente ssh y sftp)
work1
work2
work3
work4
workn
cola de trabajos TORQUE ac
7/23/2019 AC Seminario0 Torque
14/26
ACAC
Contenidos
Cluster de prcticas (atcgrid) Sistema de colas TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE Ejemplo hello OpenMP
Protagonistas de la ejecucin Ejecucin de hello en atcgrid sin script
Paso 1: Conectar con sshy sftpalfront-enddesde PC local
Paso 2: Generar el ejecutable en PC local y trasferirlo alfront-end
Paso 3: Encolar el ejecutable en la cola ac para su ejecucin en los
servidores Paso 4: Copiar el fichero con resultados desde elfront-endal PC local
Paso 5: Visualizar el fichero de salida en PC local
Paso 6: Eliminar el fichero de salida y el de error enfront-end
Ejecucin de hello en atcgrid con script
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE14
7/23/2019 AC Seminario0 Torque
15/26
P 2 G l j t bl PC l l
7/23/2019 AC Seminario0 Torque
16/26
ACAC
Paso 2: Generar el ejecutable en PC local y
trasfererirlo alfront-end
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE16
Ventana ssh
Ventana sftp
Ventana comandos PC local
3
4
5
4 (trasferencia de PClocal afront-end):
Lista con llseldirectorio actual en PC
local y cambia dedirectorio con lcden PClocal
Trasfiere con putelejecutable generado en 3de PC local afront-end
Lista con lsel directorio
actual enfront-end
3 (genera ejecutable en PC local):
Lista contenido directorio con ls
Genera ejecutable con gccy lo ejecuta
P 3 E l l j t bl l l
7/23/2019 AC Seminario0 Torque
17/26
ACAC
Paso 3: Encolar el ejecutable en la cola ac
para su ejecucin en los servidores
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE17
6
6 (ejecucin del ejecutable HelloOMP en los servidores ):
Usa qsub para enviar a ejecutar HelloOMP a los servidores a travs de la cola ac
Usaqstat para ver el estado del trabajo enviado a ejecucin (id.: 195.atcgrid)
Lista con lsel contenido del directorio actual antes y despus de la ejecucin
Ventanassh
ficheros con la respuestade qsub: .o (output) y
.e (errors)
P 4 C i l fi h lt d
7/23/2019 AC Seminario0 Torque
18/26
ACAC
Paso 4: Copiar el fichero con resultados
desde elfront-endal PC local
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE18
7
9
Ventana sftp
Ventana comandos PC local
8 (trasferencia de resultados defront-enda PC local):
Trasfiere con get el fichero con la salida de la ejecucin (STDIN.o195) defront-end a PC local
8
7: lista el directorio actual en PClocal antes de ejecutar getenla ventana de sftp
9: lista el directorio actual en PClocal despus de ejecutar get
en la ventana de sftp
7/23/2019 AC Seminario0 Torque
19/26
P 6 Eli i l fi h d lid l d
7/23/2019 AC Seminario0 Torque
20/26
ACAC
Paso 6: Eliminar el fichero de salida y el de
error enfront-end
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE20
11
Ventana ssh
11 (borrado de ficheros devueltos por qsub enfront-end): Elimina enfront-end con rm los dos ficheros generados por el comando qsub
(el fichero de salida STDIN.o195 y el fichero de error STDIN.e195)
7/23/2019 AC Seminario0 Torque
21/26
ACAC
Contenidos
Cluster de prcticas (atcgrid) Sistema de colas TORQUE
Ejemplo hello OpenOMP en atcgrid usando TORQUE
Ejemplo hello OpenMP
Protagonistas de la ejecucin
Ejecucin de hello en atcgrid sin script
Ejecucin de hello en atcgrid con script
Scriptpara la ejecucin del ejemplo HelloOMP en atcgrid
Paso 1: Trasferencia del scriptdesde PC local alfront-endusando sftp
Paso 2: Ejecucin del scripten los servidores del cluster con TORQUE
Paso 3: Trasferencia del fichero de salida desdefront-end a PC localusando sftp
Paso 4: Visualizacin en PC local del contenido del fichero de salida
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE21
S i t l j i d l j l
7/23/2019 AC Seminario0 Torque
22/26
ACAC
Scriptpara la ejecucin del ejemplo
HelloOMP en atcgrid
#!/bin/bash#Se asigna al trabajo el nombre helloomp#PBS -N helloomp#Se asigna al trabajo la cola ac#PBS -q ac#Se imprime informacin del trabajo usando variables de entorno de PBSecho"Id. usuario del trabajo: $PBS_O_LOGNAME"echo"Id. del trabajo: $PBS_JOBID"echo"Nombre del trabajo especificado por usuario: $PBS_JOBNAME"echo"Nodo que ejecuta qsub: $PBS_O_HOST"echo"Cola: $PBS_QUEUE"echo"Nodos asignados al trabajo:"cat $PBS_NODEFILE
#Se fija a 12 el n de threads mximo (tantos como cores en un nodo)
export OMP_THREAD_LIMIT=12echo"N de threads inicial: $OMP_THREAD_LIMIT"#Se ejecuta HelloOMP, que est en el directorio en el que se ha ejecutado qsubfor ((P=OMP_THREAD_LIMIT;P>0;P=P/2))do
export OMP_NUM_THREADS=$Pecho-e "\nPara $OMP_NUM_THREADS threads:"$PBS_O_WORKDIR/HelloOMP
done
script_helloomp.sh
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE22
rdenes
paraPBS
Pa
raimprimir
variablesde
en
tornoPBS
Instruccionesde
l
script
P 1 T f i d l script d d PC
7/23/2019 AC Seminario0 Torque
23/26
ACAC
Paso 1: Trasferencia del scriptdesde PClocal alfront-endusando sftp
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE23
Ventana sftp1
Paso 2 Ejec cin del script en los
7/23/2019 AC Seminario0 Torque
24/26
ACAC
Paso 2: Ejecucin del scripten losservidores del cluster con TORQUE
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE24
Ventana ssh2
Paso 3 Trasferencia del fichero de salida
7/23/2019 AC Seminario0 Torque
25/26
ACAC
Paso 3: Trasferencia del fichero de salidadesdefront-end a PC local usando sftp
Seminario 0. Entorno de programacin: atcgrid y gestor TORQUE25
Ventana sftp
3
7/23/2019 AC Seminario0 Torque
26/26