SlideShare une entreprise Scribd logo
1  sur  31
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

Contenu connexe

Similaire à Concurrency or "Hard Computing"

Telecomunicaciones capa 6
Telecomunicaciones capa 6Telecomunicaciones capa 6
Telecomunicaciones capa 6johan27
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6johan27
 
Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6Equipo 1° Telecomunicaciones capa 6
Equipo 1° Telecomunicaciones capa 6johan27
 
Diccionario informatico!!
Diccionario informatico!!Diccionario informatico!!
Diccionario informatico!!nataliatocua
 
Deberes de simm
Deberes de simmDeberes de simm
Deberes de simmbryan789
 
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. expoKaren Parada Ballesteros
 
Procesadores Vectoriales
Procesadores VectorialesProcesadores Vectoriales
Procesadores VectorialesCeciliaOrtega
 
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 2003carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003carol858
 
Historia pc 2003
Historia pc 2003Historia pc 2003
Historia pc 2003carol858
 
Generaciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTAGeneraciones de sistemas operativos RAFA CUESTA
Generaciones de sistemas operativos RAFA CUESTARafa Cuesta
 
Unidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdfUnidad de almacenamiento Masivo.pdf
Unidad de almacenamiento Masivo.pdfProfLorenzaParedes1
 
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 operativosdanieladominguezcasasola
 

Similaire à 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
 

Plus de Manuel Capel-Tunon

Plus 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
 

Dernier

SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 

Dernier (20)

SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.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

Notes de l'éditeur

  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