SlideShare una empresa de Scribd logo
Quincena
                     Ingeniería 2012
                              Concurrencia o
                             “Hardcomputing”
           Manuel I. Capel Tuñón
Departmento Lenguajes y Sistemas,
         Universidad de Granada,
    ETSIIT - Aynadamar Campus,
                  18071 Granada.
         manuelcapel@ugr.es




U.Cádiz 23.03.2012    Concurrencia o "Hardcomputing"   1
Índice
             Historia de la Concurrencia

             Paralelismo, Sincronización y Máximo Rendimiento

             ”To Thread or Not to Thread”

             Memoria Compartida, Paso de Mensajes y Coordinación
            Una Solución de Compromiso
             Computación de Alta Productividad

             Paralelismo Dirigido por Tareas

             Decálogo para programar multinúcleos

             Conclusiones
U.Cádiz 23.03.2012    Concurrencia o "Hardcomputing"               2
I. Historia de la                                                                 Historia


                         Concurrencia                                             Objetos y Concurrencia


                                 Modelos de “Monitores”
                                                            Mezcla de paradigmas:
                                                            funcional, concurrente,
                                                                                         2001
                                                                                               Orca (Easdown, 1995 )
           Época dorada de los                                           1993                  Python (Tanembaum A
                                                                                               2001)                 B
           “programadores de
               sistemas”                                                                       Amoeba (Tanembaum,    S
                                                         …1985               WWW (Berners-Lee, 2000)                 T
                                                                             Caillau, 1991)                          R
                                                                             Java (Goslin et al. 1994)               A
 Diseño sistemas                                             Erlang (Eriksson 1986)                                  C
    operativos                                               Occam (May 1983)                                        C
multiprogramación                    …1980                                                                           I
                                                             Ada (DoD 1980, 1995)
                                                                                                                     Ó
                     … 1970                  Concurrent Pascal (Brinch-Hansen 1982)                                  N
                                             Mesa (Lampson, Redell 1980)
                                             Modula 2, Modula 3 (Wirth 1980)
                                   Actor Model (Hewitt 1970)
                        RC4000 (Brinch-Hansen    1970)                             Evolución de los
     196
     8            “Proceso” (Wulf 1969)                                            lenguajes de la
              THE (Dijkstra 1968)                                                 Prog. Concurrente


   U.Cádiz 23.03.2012              Concurrencia o "Hardcomputing"                                                  3
Historia




               Procesadores Multinúcleo
       El computador puede obtener con varias tareas a
        la vez la misma eficiencia que con 1 tarea
       Ley Amdahl (1967):
                          1
      A( f , S) =
                  (1 − f ) + ( f )
                                S




U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"        4
Historia




               Procesadores Multinúcleo II
      Ley Amdahl no sirve para arquitecturas masivas-
       paralelas sobre grandes conjuntos de datos
      Ley Gustafson-Barsis: A ( f , S ) = s ' + ( p ' × n)




U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"        5
Paralelismo, Sincron..


 II. Paralelismo, Sincronización y
 Máximo Rendimiento
     ¿Se puede
     obtener el          Reducción de latencia: creación dinámica
       máximo
    rendimiento
    paralelo sin          de hebras de ejecución en servidores
   utilizar hebras
     ni paso de
     mensajes?           Impedir condiciones de carrera en acceso
                          a datos comunes: paso de mensajes
                         “We cannot longer count on the speed of
                          processors increasing exponentially…we
                          have to find ways to take advantage of
                          increasingly abundant number of cores”

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                     6
Multithreading

                         El esfuerzo del programador
                          tendría que centrarse más
                III. “To Thread or Not to Thread”
                         en identificar el potencial de
                         paralelización del programa
                             que en programar un
 Programación paralela con múltiples hebras
                           complejo protocolo para
  no escala con el número degestionar los hebras,
                              núcleos
                           equilibrar la carga de los
 Se puede adoptar un estilo SPMD o SIMD, que
                                 núcleos, etc.
  escala mejor
 Problemas adicionales:
    No siempre el código susceptible de
     paralelización posee la misma granularidad
    Difícil programación: crear pools de hebras,
     asignarles tareas, equilibrar la carga …

  U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"            7
Memoria, mensajes…




          IV.Memoria Compartida, Paso de Mensaj
          y Coordinación
 Comunicación a través de la memoria de los procesos
   produce “condiciones de carrera”
 Se pueden sincronizar los accesos (semáforos…), pero
   aparecen bloqueos vivos e interbloqueos
 Resultado previsible: muy baja productividad
 Sustituir secciones críticas y sus protocolos por colas de
   mensajes (fifos, ...)
 Tipo de comunicación que escala bien en multinúcleos
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 8
Memoria, mensajes…


                      “message passing is harmful to
                     parallel programming as the goto
          ¿Considerando el paso de mensajes
                          is harmful to sequential
                        programming” (Gorlatch)
          pernicioso para PP?
    Comunicación con Paso de Mensajes (CPM) ,
     inadecuada con paralelismo dirigido por los datos y
     puede producir inversión de control
    El programa puede degenerar en un conjunto de
     manejadores de hebras de activación imprevisible
    Similar a programar con saltos incondicionales de
     control: el flujo de mensajes deviene incontrolable!
    El esfuerzo de escribir un programa es muy alto
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 9
Memoria, Solución…
                                                         Una mensajes…




               V. Una Solución de Compromiso
   Software Transactional Memory (TSM), nuevo
    modelo de comunicación/sincronización de Haskell
   Concepto de bloque atómico:
      Similar a las RCC del lenguaje Edison,
      Sin condiciones de carrera entre hebras
      STM escala bien con núcleos
      No más “locks” (cerrojos)

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 10
Memoria, Solución…
                                                           Una mensajes…




                 Transacciones vs cerrojos
 Series de operaciones sobre memoria compartida, de
  principio a fin, valores intermedios vars. no son visibles
 STM es una primitiva concurrente optimista
    No se comprueba la consistencia antes de escribir
    Sino, si van a comprometer los cambios realizados
    Siempre se puede abortar una transición, antes de
     comprometer los cambios
    Aumentan la concurrencia: diferentes tareas pueden
     modificar simultáneamente regiones de memoria
  U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 11
Memoria, Solución…
                                                             Una mensajes…


                 Problema de las Transacciones
                 Bancarias
                           Thread P2::
                                    var Suma=0; i=1; Error:= false;
int a[1..n];
                                    {Suma= a[1]+a[2]+ ... a[i-1]}
{TOT==a[1]+...+a[n]==               while (i <= n) {
  cte}                              B1 : {Suma== a[1]+...a[i−1],i< n}
Thread P1::                         S2 : Suma = Suma + a[i];
A1:{a[x]==X,a[y]== Y}               B2 : {Suma== a[1]+...a[i−1]+a[i]}
                                            i= i+1;
S1:< a[x] = a[x] − K;
                                    B3 : {Suma== a[1]+ ...a[i−1]}
      a[y] = a[y] + K >             }
A2:{a[x]== X − K,                   {Suma ==a[1] + a[2] + ...a[n]}
  a[y]==y+K}                        if S<>TOT then Error=true

                                            El estado intermedio no
                                              debe ser visible a P2
  U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                   12
Memoria, Solución…
                                                               Una mensajes…


               Problema de las Transacciones
               Bancarias II
 Solución con cerrojos :
   a[]
            1 2           x                           y   y+1   N
                     Parte con posibles problemas
   Lock()              de lectura no consistente
                                                                    Unlock()




U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                       13
Memoria, Solución…
                                                                Una mensajes…


                Problema de las Transacciones
                Bancarias II
                        La sobrecarga se reduce a
                           copiar el array original, pero
  Solución con          transacciones (Haskell) :
                             ahora las tareas pueden
                            acceder simultáneamente
    a[]
             1 2           x                           y   y+1   N
Log file
previo            atomic{
                       if ( ∀ a[i]≠ a[x], a[y]
                       “consistent(log_file)==true”){
                      a[x] = a[x] − K;a[y] = a[y] + K
                      } else retry
 U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                       14
                  }
Memoria, Solución…
                                                           Una mensajes…




                 Transacciones vs cerrojos II
 Evitan la inversión de prioridad que que los cerrojos
  causan en las hebras: siempre se puede abortar una
  transacción menos prioritaria
 Es compatible programarlas con los objetos
 Interbloqueos y bloqueos vivos evitados externamente
 Tablas hash con operaciones transaccionables:
  inimplementables con cerrojos salvo que el proveedeor
  de la tabla hash prevea métodos específicos


  U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 15
Computación
                                                      Alta Product.

                 VI. Computación de Alta
                 Productividad
    “Los supercomputadores de ayer son los
     computadores de sobremesa de hoy y serán los
     teléfonos de mañana”
    HPCS es un programa DARPA para los futuros
     Sistemas Concurrentes:
       Cray propone Chapel como lenguaje de HPCS
       IBM con el lenguaje X10
       Sun está desarrollando Fortress

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"            16
Computación
                                                        Alta Product.




                   Nuevos Lenguajes para HPCS
 Chapel, X10 y Fortress son muy parecidos:
    Abstracción de Espacio Direcciones Compartido (PGAS)
    Libera al programador de escribir protocolos tediosos
    Aplicaciones para un amplio rango de configuraciones:
     desde 1 multinúcleo hasta granjas de servidores
    Configuración adaptable basada en locales
    Sólo descripción local de los algoritmos
    Simplificación programando, ganancia de productividad.

  U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"           17
Computación
                                                                     Alta Product.

                 Paralelismo de Datos vs
                 Control
 Problema de la configuración de un multicomputador:
                                                              D2     Dortmund
                                                      Köln
 Paralelización dirigida por                                   D1    D4
                                                        D7
  control : Asignación                            Koblenz
                                                               D3          Kasel

  automática en bucles                                       D6      D5
                                                                     Frankfurt

 Paralelización dirigida por                  Global work queue
                                                                               BS
  datos: Distribución de                                                      Best solution
  datos globales a “locales”                                                     found


 La configuración no es
  completamente
  automatizable!
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                                   18
Computación
                                                      Alta Product.



                 “Mapeando” Dominios
        Distribución 1 bloque de datos entre “locales”:
       const Dist = new dmap(new
         Block(boundingBox=[1..4,1..8]));
        Se pasa como argumento a un constructor de
         dominio:
       var Dom: domain(2) dmapped
         Dist=[1..4,1..8];
        “Mapped Domain”: conjunto 2D de índices en
         correspondencia con Dist
        Si hay 8 “locales”, cada uno se encargará de
         procesar una región 2x2
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"            19
Dirigido por Tareas

             VII. Paralelismo Dirigido por
             Tareas
          Propicia la óptima paralelización
           de código del tipo dirigida por control
          El sistema de tiempo de ejecución es quien se
           encarga de hacer corresponder tareas a hebras:
               Grupos tareas con poca carga, asignados a 1 hebra
               Los hebras se ocultan a los programadores, pero
                no la definición de las tareas
          Ahora las estructuras de datos y los flujos de
           control se programan de forma monolítica

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                20
Agrega capacidades de                           Dirigido por Tareas

     Arquitectura de programación
         consulta a C# y VB.
     Divide el origen de datos en
     paralela en .NET Framework 4
    segmentos y lanza consultas
    en cada segmento por hebras
           independientes
       Asignar tareas a las
   hebras , administrar detalle Incluye clases colección
    de bajo nivel, evita que lasimultáneas, primitivas de
        paralelización sea sincronización ligeras y tipos
            ineficiente          de incialización diferida




U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                 21
Dirigido por Tareas



                Task Parallel Library
      Creación y cancelación implícita de tareas
         Invocación paralela mediante delegados definidos
          como lambda expresiones
         El número de tareas que se crea en 2do plano
          con Parallel.invoke()≠ num. hebras
      Creación y ejecución explícita de tareas:
           Los objetos-tareas exponen su estado a los usuarios
           Se pasan en el constructor delegados de usuario:
            métodos, anónimos y expresiones lambda


U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                22
Dirigido por Tareas

                Delegados y lambda
                expresiones
 Las lambda expresiones proporcionan el soporte formal
  para definir funciones anónimas
 Sintaxis de lambda expresión que devuelve resultado:
                           Objeto de estado
     [captura](argumentos)->devuelve-tipo{cuerpo}
 Función que calcula una suma de 5 términos:
     std::vector<int> una_lista;
     int total=0;
     for(int i=0;i<5;i++)una_lista.push.back(i);
     std::for_each(begin(una_lista),
                   end(una_lista),
                   [&total](int x){total += x;});
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                23
Dirigido por Tareas



                Creación-inicio de tareas
 Capturan sólo el valor final de las variables en los bucles. Se
  soluciona definiendo 1 objeto de estado a en el constructor:
for(int= i=0;i<arrayTareas.Length;i++){
    arrayTareas[i]= new Task((obj)=>
   { DatosUsuario misDatos (DatosUsuario) obj;
 misDatos.N_Hebra=Thread.Current.Thread.ManagerThreadId;
        Console.Write(misDatos.Nombre,misDatos.Tiempo,
    misDatos.N_Hebra);}//lambda expresión
     new DatosUsuario(){Nombre=i,Tiempo=DateTime.Ticks();}
    );//tarea creada
arrayTareas[i].start();
}
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                24
Dirigido por Tareas


                Colecciones y estructuras
                para coordinación
      Clases de colección seguras, tipos de sincronización
       ligeros y tipos para la inicialización diferida:
          Clases contenedores con acceso sin bloqueos y
             escalables en multinúcleos:
             System.Collections.Concurrent.XXX
      Nuevos tipos de sincronización evitan los bloqueos
       indiscriminados de las primitivas para hebras:
           SemaphoreSlim, Barriers, EventSlim,
            SpinLock, SpinWait..

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                25
Dirigido por Tareas


                Programación asíncrona
                en .NET framework 4
      Utiliza operaciones asíncronas estructuradas (APM):
        FileStream.BeginRead, FileStream.EndRead …
      Modelos basados en pares método/evento (EAP):
          WebClient.DownloadString.Async,
            WebClient.Download.Completed, …
      Las operaciones APM y EAP pueden hacerse
       accesibles a los usuarios de TPL o bien se pueden
       implementar con objetos tarea
      Instrucción FromAsync:crea un objeto tarea para
       representar un par Begin/End
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                26
Dirigido por Tareas

                     Comparativa lenguajes para
                     HPCS

  Lenguaje                                  Modelo de    Concurrencia
                      Propietario           Memoria
  para HPCS                                             multiresolución
 Fortress            Sun Systems       Transaccional          NO
                                                             SI
 Chapel              CRAY              Transaccional     (forall,
                                                        Begin/End)
                                                             SI
 X10                 IBM               Transaccional      (Async)

U.Cádiz 23.03.2012    Concurrencia o "Hardcomputing"                  27
Decálogo

             VIII. Decálogo para Programar
             multinúcleos
      Pensarás en Paralelo
      Programarás con tareas,
          no con hebras
      Depurarás lo secuencial antes
      No utilizarás cerrojos
      Tendrás el control de tu memoria
      En lo antiguo no hay “salvación”
      Diseñarás deseando tener más núcleos
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"       28
Conclusiones



                  IX. Conclusiones
 La programación multihebra está en decadencia, se usa sólo para
  controlar la latencia en la respuesta a peticiones en servidores
 La programación paralela dirigida por tareas y el paralelismo semi-
  implícito concitan actualmente la máxima atención
 El paso de mensajes (MPI, etc.) también ha entrado en
  decadencia, debido a que propicia un estilo de programación
  demasiado tedioso
 El espacio de direcciones compartido (PGAS) es considerado de
  máxima actualidad
 Programar con cerrojos (locks) tiende a la obsolescencia, debido a
  que suponen un estilo de programación de demasiado bajo nivel
 La memoria transaccional (STM) , de actualidad en HPCS
 U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"              29
Referencias
 -The Chapel Parallel Programming Language ( http://chapel.cray.com/ )
 -X10: Performance and Productivity at Scale ( http://x10-lang.org/ )
 -Project Fortress ( http://projectfortress.sun.com/ )
 -“Unified Parallel C”. The High Performance Computing Laboratory –
     George Washington University ( http://upc.gwu.edu/ )
 -“Task Parallel Library”. Microsoft (
     http://msdn.microsoft.com/es-es/library/dd460717.aspx )
 -Intel Threading Building Blocks for Open Source
     ( http://threadingbuildingblocks.org/ )
 -“Scalable Software Transactional Memory for Global Address Space
     Architectures”. Sridharan,S.,Vetter,J.S.,Kogge,P.M. Future
     Technologies Group (2009)
 -“Designing an Effective Hybrid Transactional Memory System” PhD
     Dissertation, Stanford (USA), Chí Chao Minh (2008)
 -“Concurrency in the D Programming Language”. A. Alexandrescu (2010)
U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"                   30
Gracias por la atención !

                           ¿Preguntas?

U.Cádiz 23.03.2012   Concurrencia o "Hardcomputing"   31

Más contenido relacionado

Similar a Concurrency or "Hard Computing"

Telecomunicaciones capa 6
Telecomunicaciones capa 6Telecomunicaciones capa 6
Telecomunicaciones capa 6
johan27
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6
johan27
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6
johan27
 
Diccionario informatico!!
Diccionario informatico!!Diccionario informatico!!
Diccionario informatico!!
nataliatocua
 
Deberes de simm
Deberes de simmDeberes de simm
Deberes de simm
bryan789
 
Deberes de simm
Deberes de simmDeberes de simm
Deberes de simm
William Javier B
 
Trabajo Sistemas Operativos
Trabajo Sistemas OperativosTrabajo Sistemas Operativos
Trabajo Sistemas Operativos
Cesar Augusto Corrales Zuluaga
 
Cuarta y quinta generacion de computadoras. expo
Cuarta y quinta generacion de computadoras.  expoCuarta y quinta generacion de computadoras.  expo
Cuarta y quinta generacion de computadoras. expo
Karen Parada Ballesteros
 
Procesadores Vectoriales
Procesadores VectorialesProcesadores Vectoriales
Procesadores Vectoriales
CeciliaOrtega
 
CLASES DE COMPUTACION APLICADA I
CLASES DE COMPUTACION APLICADA I  CLASES DE COMPUTACION APLICADA I
CLASES DE COMPUTACION APLICADA I
CGRR14
 
Historia Pc 2003
Historia Pc 2003Historia Pc 2003
Historia Pc 2003
carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
carol858
 
Generaciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTAGeneraciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTA
Rafa Cuesta
 
Primera generación
Primera generaciónPrimera generación
Primera generación
CamilaFidalgo
 
Unidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdfUnidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdf
ProfLorenzaParedes1
 
Info (2)
Info (2)Info (2)
Info (2)
Info (2)Info (2)
1.antecedentes de las computadoras y sistemas operativos
1.antecedentes de las computadoras y sistemas operativos1.antecedentes de las computadoras y sistemas operativos
1.antecedentes de las computadoras y sistemas operativos
danieladominguezcasasola
 

Similar a Concurrency or "Hard Computing" (20)

Telecomunicaciones capa 6
Telecomunicaciones capa 6Telecomunicaciones capa 6
Telecomunicaciones capa 6
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6
 
Diccionario informatico!!
Diccionario informatico!!Diccionario informatico!!
Diccionario informatico!!
 
Deberes de simm
Deberes de simmDeberes de simm
Deberes de simm
 
Deberes de simm
Deberes de simmDeberes de simm
Deberes de simm
 
Trabajo Sistemas Operativos
Trabajo Sistemas OperativosTrabajo Sistemas Operativos
Trabajo Sistemas Operativos
 
Cuarta y quinta generacion de computadoras. expo
Cuarta y quinta generacion de computadoras.  expoCuarta y quinta generacion de computadoras.  expo
Cuarta y quinta generacion de computadoras. expo
 
Procesadores Vectoriales
Procesadores VectorialesProcesadores Vectoriales
Procesadores Vectoriales
 
CLASES DE COMPUTACION APLICADA I
CLASES DE COMPUTACION APLICADA I  CLASES DE COMPUTACION APLICADA I
CLASES DE COMPUTACION APLICADA I
 
Historia Pc 2003
Historia Pc 2003Historia Pc 2003
Historia Pc 2003
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003
 
Generaciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTAGeneraciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTA
 
Primera generación
Primera generaciónPrimera generación
Primera generación
 
Unidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdfUnidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdf
 
Info (2)
Info (2)Info (2)
Info (2)
 
Info (2)
Info (2)Info (2)
Info (2)
 
1.antecedentes de las computadoras y sistemas operativos
1.antecedentes de las computadoras y sistemas operativos1.antecedentes de las computadoras y sistemas operativos
1.antecedentes de las computadoras y sistemas operativos
 

Más de Manuel Capel-Tunon

Mantenimiento y evolución del software
Mantenimiento y evolución del softwareMantenimiento y evolución del software
Mantenimiento y evolución del software
Manuel Capel-Tunon
 
Software Testing (2)
Software Testing (2)Software Testing (2)
Software Testing (2)
Manuel Capel-Tunon
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
Manuel Capel-Tunon
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
Manuel Capel-Tunon
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
Manuel Capel-Tunon
 
Presen sew-35-12(beamer)
Presen sew-35-12(beamer)Presen sew-35-12(beamer)
Presen sew-35-12(beamer)
Manuel Capel-Tunon
 
BUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLINGBUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLING
Manuel Capel-Tunon
 

Más de Manuel Capel-Tunon (7)

Mantenimiento y evolución del software
Mantenimiento y evolución del softwareMantenimiento y evolución del software
Mantenimiento y evolución del software
 
Software Testing (2)
Software Testing (2)Software Testing (2)
Software Testing (2)
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Presen sew-35-12(beamer)
Presen sew-35-12(beamer)Presen sew-35-12(beamer)
Presen sew-35-12(beamer)
 
BUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLINGBUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLING
 

Último

Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
estroba5
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
shirherrer
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Demetrio Ccesa Rayme
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
belbarcala
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
https://gramadal.wordpress.com/
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Juan Martín Martín
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
amayaltc18
 
2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
GiselaBerrios3
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 

Último (20)

Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
 
2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 

Concurrency or "Hard Computing"

  • 1. Quincena Ingeniería 2012 Concurrencia o “Hardcomputing” Manuel I. Capel Tuñón Departmento Lenguajes y Sistemas, Universidad de Granada, ETSIIT - Aynadamar Campus, 18071 Granada. manuelcapel@ugr.es U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 1
  • 2. Índice Historia de la Concurrencia Paralelismo, Sincronización y Máximo Rendimiento ”To Thread or Not to Thread” Memoria Compartida, Paso de Mensajes y Coordinación Una Solución de Compromiso Computación de Alta Productividad Paralelismo Dirigido por Tareas Decálogo para programar multinúcleos Conclusiones U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 2
  • 3. I. Historia de la Historia Concurrencia Objetos y Concurrencia Modelos de “Monitores” Mezcla de paradigmas: funcional, concurrente, 2001 Orca (Easdown, 1995 ) Época dorada de los 1993 Python (Tanembaum A 2001) B “programadores de sistemas” Amoeba (Tanembaum, S …1985 WWW (Berners-Lee, 2000) T Caillau, 1991) R Java (Goslin et al. 1994) A Diseño sistemas Erlang (Eriksson 1986) C operativos Occam (May 1983) C multiprogramación …1980 I Ada (DoD 1980, 1995) Ó … 1970 Concurrent Pascal (Brinch-Hansen 1982) N Mesa (Lampson, Redell 1980) Modula 2, Modula 3 (Wirth 1980) Actor Model (Hewitt 1970) RC4000 (Brinch-Hansen 1970) Evolución de los 196 8 “Proceso” (Wulf 1969) lenguajes de la THE (Dijkstra 1968) Prog. Concurrente U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 3
  • 4. Historia Procesadores Multinúcleo  El computador puede obtener con varias tareas a la vez la misma eficiencia que con 1 tarea  Ley Amdahl (1967): 1 A( f , S) = (1 − f ) + ( f ) S U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 4
  • 5. Historia Procesadores Multinúcleo II  Ley Amdahl no sirve para arquitecturas masivas- paralelas sobre grandes conjuntos de datos  Ley Gustafson-Barsis: A ( f , S ) = s ' + ( p ' × n) U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 5
  • 6. Paralelismo, Sincron.. II. Paralelismo, Sincronización y Máximo Rendimiento ¿Se puede obtener el  Reducción de latencia: creación dinámica máximo rendimiento paralelo sin de hebras de ejecución en servidores utilizar hebras ni paso de mensajes?  Impedir condiciones de carrera en acceso a datos comunes: paso de mensajes  “We cannot longer count on the speed of processors increasing exponentially…we have to find ways to take advantage of increasingly abundant number of cores” U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 6
  • 7. Multithreading El esfuerzo del programador tendría que centrarse más III. “To Thread or Not to Thread” en identificar el potencial de paralelización del programa que en programar un  Programación paralela con múltiples hebras complejo protocolo para no escala con el número degestionar los hebras, núcleos equilibrar la carga de los  Se puede adoptar un estilo SPMD o SIMD, que núcleos, etc. escala mejor  Problemas adicionales:  No siempre el código susceptible de paralelización posee la misma granularidad  Difícil programación: crear pools de hebras, asignarles tareas, equilibrar la carga … U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 7
  • 8. Memoria, mensajes… IV.Memoria Compartida, Paso de Mensaj y Coordinación  Comunicación a través de la memoria de los procesos produce “condiciones de carrera”  Se pueden sincronizar los accesos (semáforos…), pero aparecen bloqueos vivos e interbloqueos  Resultado previsible: muy baja productividad  Sustituir secciones críticas y sus protocolos por colas de mensajes (fifos, ...)  Tipo de comunicación que escala bien en multinúcleos U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 8
  • 9. Memoria, mensajes… “message passing is harmful to parallel programming as the goto ¿Considerando el paso de mensajes is harmful to sequential programming” (Gorlatch) pernicioso para PP?  Comunicación con Paso de Mensajes (CPM) , inadecuada con paralelismo dirigido por los datos y puede producir inversión de control  El programa puede degenerar en un conjunto de manejadores de hebras de activación imprevisible  Similar a programar con saltos incondicionales de control: el flujo de mensajes deviene incontrolable!  El esfuerzo de escribir un programa es muy alto U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 9
  • 10. Memoria, Solución… Una mensajes… V. Una Solución de Compromiso  Software Transactional Memory (TSM), nuevo modelo de comunicación/sincronización de Haskell  Concepto de bloque atómico:  Similar a las RCC del lenguaje Edison,  Sin condiciones de carrera entre hebras  STM escala bien con núcleos  No más “locks” (cerrojos) U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 10
  • 11. Memoria, Solución… Una mensajes… Transacciones vs cerrojos  Series de operaciones sobre memoria compartida, de principio a fin, valores intermedios vars. no son visibles  STM es una primitiva concurrente optimista  No se comprueba la consistencia antes de escribir  Sino, si van a comprometer los cambios realizados  Siempre se puede abortar una transición, antes de comprometer los cambios  Aumentan la concurrencia: diferentes tareas pueden modificar simultáneamente regiones de memoria U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 11
  • 12. Memoria, Solución… Una mensajes… Problema de las Transacciones Bancarias Thread P2:: var Suma=0; i=1; Error:= false; int a[1..n]; {Suma= a[1]+a[2]+ ... a[i-1]} {TOT==a[1]+...+a[n]== while (i <= n) { cte} B1 : {Suma== a[1]+...a[i−1],i< n} Thread P1:: S2 : Suma = Suma + a[i]; A1:{a[x]==X,a[y]== Y} B2 : {Suma== a[1]+...a[i−1]+a[i]} i= i+1; S1:< a[x] = a[x] − K; B3 : {Suma== a[1]+ ...a[i−1]} a[y] = a[y] + K > } A2:{a[x]== X − K, {Suma ==a[1] + a[2] + ...a[n]} a[y]==y+K} if S<>TOT then Error=true El estado intermedio no debe ser visible a P2 U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 12
  • 13. Memoria, Solución… Una mensajes… Problema de las Transacciones Bancarias II  Solución con cerrojos : a[] 1 2 x y y+1 N Parte con posibles problemas Lock() de lectura no consistente Unlock() U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 13
  • 14. Memoria, Solución… Una mensajes… Problema de las Transacciones Bancarias II La sobrecarga se reduce a copiar el array original, pero  Solución con transacciones (Haskell) : ahora las tareas pueden acceder simultáneamente a[] 1 2 x y y+1 N Log file previo atomic{ if ( ∀ a[i]≠ a[x], a[y] “consistent(log_file)==true”){ a[x] = a[x] − K;a[y] = a[y] + K } else retry U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 14 }
  • 15. Memoria, Solución… Una mensajes… Transacciones vs cerrojos II  Evitan la inversión de prioridad que que los cerrojos causan en las hebras: siempre se puede abortar una transacción menos prioritaria  Es compatible programarlas con los objetos  Interbloqueos y bloqueos vivos evitados externamente  Tablas hash con operaciones transaccionables: inimplementables con cerrojos salvo que el proveedeor de la tabla hash prevea métodos específicos U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 15
  • 16. Computación Alta Product. VI. Computación de Alta Productividad  “Los supercomputadores de ayer son los computadores de sobremesa de hoy y serán los teléfonos de mañana”  HPCS es un programa DARPA para los futuros Sistemas Concurrentes:  Cray propone Chapel como lenguaje de HPCS  IBM con el lenguaje X10  Sun está desarrollando Fortress U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 16
  • 17. Computación Alta Product. Nuevos Lenguajes para HPCS  Chapel, X10 y Fortress son muy parecidos:  Abstracción de Espacio Direcciones Compartido (PGAS)  Libera al programador de escribir protocolos tediosos  Aplicaciones para un amplio rango de configuraciones: desde 1 multinúcleo hasta granjas de servidores  Configuración adaptable basada en locales  Sólo descripción local de los algoritmos  Simplificación programando, ganancia de productividad. U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 17
  • 18. Computación Alta Product. Paralelismo de Datos vs Control  Problema de la configuración de un multicomputador: D2 Dortmund Köln  Paralelización dirigida por D1 D4 D7 control : Asignación Koblenz D3 Kasel automática en bucles D6 D5 Frankfurt  Paralelización dirigida por Global work queue BS datos: Distribución de Best solution datos globales a “locales” found  La configuración no es completamente automatizable! U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 18
  • 19. Computación Alta Product. “Mapeando” Dominios  Distribución 1 bloque de datos entre “locales”: const Dist = new dmap(new Block(boundingBox=[1..4,1..8]));  Se pasa como argumento a un constructor de dominio: var Dom: domain(2) dmapped Dist=[1..4,1..8];  “Mapped Domain”: conjunto 2D de índices en correspondencia con Dist  Si hay 8 “locales”, cada uno se encargará de procesar una región 2x2 U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 19
  • 20. Dirigido por Tareas VII. Paralelismo Dirigido por Tareas  Propicia la óptima paralelización de código del tipo dirigida por control  El sistema de tiempo de ejecución es quien se encarga de hacer corresponder tareas a hebras:  Grupos tareas con poca carga, asignados a 1 hebra  Los hebras se ocultan a los programadores, pero no la definición de las tareas  Ahora las estructuras de datos y los flujos de control se programan de forma monolítica U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 20
  • 21. Agrega capacidades de Dirigido por Tareas Arquitectura de programación consulta a C# y VB. Divide el origen de datos en paralela en .NET Framework 4 segmentos y lanza consultas en cada segmento por hebras independientes Asignar tareas a las hebras , administrar detalle Incluye clases colección de bajo nivel, evita que lasimultáneas, primitivas de paralelización sea sincronización ligeras y tipos ineficiente de incialización diferida U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 21
  • 22. Dirigido por Tareas Task Parallel Library  Creación y cancelación implícita de tareas  Invocación paralela mediante delegados definidos como lambda expresiones  El número de tareas que se crea en 2do plano con Parallel.invoke()≠ num. hebras  Creación y ejecución explícita de tareas:  Los objetos-tareas exponen su estado a los usuarios  Se pasan en el constructor delegados de usuario: métodos, anónimos y expresiones lambda U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 22
  • 23. Dirigido por Tareas Delegados y lambda expresiones  Las lambda expresiones proporcionan el soporte formal para definir funciones anónimas  Sintaxis de lambda expresión que devuelve resultado: Objeto de estado [captura](argumentos)->devuelve-tipo{cuerpo}  Función que calcula una suma de 5 términos: std::vector<int> una_lista; int total=0; for(int i=0;i<5;i++)una_lista.push.back(i); std::for_each(begin(una_lista), end(una_lista), [&total](int x){total += x;}); U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 23
  • 24. Dirigido por Tareas Creación-inicio de tareas  Capturan sólo el valor final de las variables en los bucles. Se soluciona definiendo 1 objeto de estado a en el constructor: for(int= i=0;i<arrayTareas.Length;i++){ arrayTareas[i]= new Task((obj)=> { DatosUsuario misDatos (DatosUsuario) obj; misDatos.N_Hebra=Thread.Current.Thread.ManagerThreadId; Console.Write(misDatos.Nombre,misDatos.Tiempo, misDatos.N_Hebra);}//lambda expresión new DatosUsuario(){Nombre=i,Tiempo=DateTime.Ticks();} );//tarea creada arrayTareas[i].start(); } U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 24
  • 25. Dirigido por Tareas Colecciones y estructuras para coordinación  Clases de colección seguras, tipos de sincronización ligeros y tipos para la inicialización diferida:  Clases contenedores con acceso sin bloqueos y escalables en multinúcleos: System.Collections.Concurrent.XXX  Nuevos tipos de sincronización evitan los bloqueos indiscriminados de las primitivas para hebras:  SemaphoreSlim, Barriers, EventSlim, SpinLock, SpinWait.. U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 25
  • 26. Dirigido por Tareas Programación asíncrona en .NET framework 4  Utiliza operaciones asíncronas estructuradas (APM): FileStream.BeginRead, FileStream.EndRead …  Modelos basados en pares método/evento (EAP): WebClient.DownloadString.Async, WebClient.Download.Completed, …  Las operaciones APM y EAP pueden hacerse accesibles a los usuarios de TPL o bien se pueden implementar con objetos tarea  Instrucción FromAsync:crea un objeto tarea para representar un par Begin/End U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 26
  • 27. Dirigido por Tareas Comparativa lenguajes para HPCS Lenguaje Modelo de Concurrencia Propietario Memoria para HPCS multiresolución Fortress Sun Systems Transaccional NO SI Chapel CRAY Transaccional (forall, Begin/End) SI X10 IBM Transaccional (Async) U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 27
  • 28. Decálogo VIII. Decálogo para Programar multinúcleos  Pensarás en Paralelo  Programarás con tareas, no con hebras  Depurarás lo secuencial antes  No utilizarás cerrojos  Tendrás el control de tu memoria  En lo antiguo no hay “salvación”  Diseñarás deseando tener más núcleos U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 28
  • 29. Conclusiones IX. Conclusiones  La programación multihebra está en decadencia, se usa sólo para controlar la latencia en la respuesta a peticiones en servidores  La programación paralela dirigida por tareas y el paralelismo semi- implícito concitan actualmente la máxima atención  El paso de mensajes (MPI, etc.) también ha entrado en decadencia, debido a que propicia un estilo de programación demasiado tedioso  El espacio de direcciones compartido (PGAS) es considerado de máxima actualidad  Programar con cerrojos (locks) tiende a la obsolescencia, debido a que suponen un estilo de programación de demasiado bajo nivel  La memoria transaccional (STM) , de actualidad en HPCS U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 29
  • 30. Referencias -The Chapel Parallel Programming Language ( http://chapel.cray.com/ ) -X10: Performance and Productivity at Scale ( http://x10-lang.org/ ) -Project Fortress ( http://projectfortress.sun.com/ ) -“Unified Parallel C”. The High Performance Computing Laboratory – George Washington University ( http://upc.gwu.edu/ ) -“Task Parallel Library”. Microsoft ( http://msdn.microsoft.com/es-es/library/dd460717.aspx ) -Intel Threading Building Blocks for Open Source ( http://threadingbuildingblocks.org/ ) -“Scalable Software Transactional Memory for Global Address Space Architectures”. Sridharan,S.,Vetter,J.S.,Kogge,P.M. Future Technologies Group (2009) -“Designing an Effective Hybrid Transactional Memory System” PhD Dissertation, Stanford (USA), Chí Chao Minh (2008) -“Concurrency in the D Programming Language”. A. Alexandrescu (2010) U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 30
  • 31. Gracias por la atención ! ¿Preguntas? U.Cádiz 23.03.2012 Concurrencia o "Hardcomputing" 31

Notas del editor

  1. Gustafson&apos;s law (also known as Gustafson-Barsis&apos; law) follows the argument that Amdahl&apos;s law did not adequately represent massively parallel architectures that operate on very large data sets, where smaller scales of parallelism would not provide solutions in tractable amounts of time . Here, the computation problem size changes dramatically with the dramatic increase in processors (núcleos); it is not assumed that the computation problem size will remain constant. Instead, the ratio of parallelized work to serialized work approaches one [ Gustafson88 ]. The law is described by the equation in Figure 6 below, where s&apos; is the serial time spent on the parallel system, p&apos; is the parallel time spent on the parallel system, and n is the number of processors