AC Seminario0 Torque

  • 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.cfm
  • 7/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.cfm
  • 7/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.php
  • 7/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