fbpx
Wikipedia

Modelo de programación paralela

En los programas informáticos, un modelo de programación paralela es un modelo para escribir programas paralelos los cuales pueden ser compilados y ejecutados. El valor de un modelo de programación puede ser juzgado por su generalidad (Si las soluciones ofrecidas son óptimas a comparación de diferentes arquitecturas o soluciones existentes), y su rendimiento (Eficiencia, precisión o velocidad de la ejecución). La implementación de un modelo de programación puede tomar varias formas, tales como bibliotecas invocadas desde lenguajes secuenciales tradicionales, extensiones del lenguaje, o nuevos modelos completos de ejecución.

Es importante que haya un consenso entre cada uno de los modelos de programación, ya que permite que el software desarrollado pueda ejecutarse en diferentes arquitecturas. Para arquitecturas de programación secuencial se puede utilizar el modelo de von Neumann, ya que proporciona un puente eficaz entre hardware y software, lo que significa que lenguajes de alto nivel pueden compilarse eficientemente y se pueden implementar de manera eficiente en el hardware.[1]

Características principales

Las características de los modelos de programación paralela se pueden sub-dividir ampliamente, pero se puede generalizar en 2 rasgos fundamentales: la interacción de procesos y los problemas de descomposición.

Interacción de proceso

La interacción de proceso se refiere a los mecanismos por los cuales procesos paralelos son capaces de comunicarse entre sí. Las formas más comunes de interacción son la memoria y el paso de mensajes compartidos, pero también puede ser implícita.

Memoria compartida

La memoria compartida es un medio eficaz de pasar datos entre programas. Dependiendo del contexto, los programas pueden ejecutarse en un procesador único o en varios procesadores separados. En este modelo, las tareas paralelas comparten un espacio de direcciones global donde ellas leen y escriben de forma asíncrona. Esto requiere mecanismos de protección, tales como cerraduras, semáforos y monitores para controlar el acceso concurrente. La memoria compartida puede ser emulada en sistemas de memoria distribuida pero los tiempos de NUMA (acceso a memoria no uniforme, Non-Uniform Memory Access) pueden entrar en juego. A veces la memoria también es compartida entre diferentes secciones del código del mismo programa. Por ejemplo, un bucle for puede crear hilos para cada iteración que actualiza una variable en paralelo.

Paso de mensaje

El paso de mensajes es un concepto de la informática que se utiliza ampliamente en el diseño e implementación de modernas aplicaciones de software; es clave para algunos modelos de concurrencia y la programación orientada a objetos. En un modelo de paso de mensajes, las tareas paralelas intercambian datos a través del paso de mensajes entre sí. Estas comunicaciones pueden ser asíncronas o síncronas. La formalización de la Comunicación de procesos secuenciales (CSP) del paso de mensaje emplea canales de comunicación para conectar procesos, y dio lugar a una serie de lenguajes importantes, como Joyce, Occam y Erlang.

Implícito

En un modelo implícito, ninguna interacción del proceso es visible al programador, en cambio el compilador y/o tiempo de ejecución es responsable de realizar la misma. Esto es más común con los lenguajes con especificidad de dominio en el que la concurrencia de un problema puede ser más prescrita.

Descomposición de problema

Un programa paralelo está compuesto de procesos que están ejecutándose simultáneamente. La descomposición del problema se refiere a la forma en que se formula estos procesos. Esta clasificación también puede ser referida como esqueletos algorítmicos o paradigmas de programación paralela.

Paralelismo de tarea

Un modelo de tarea paralela se centra en los procesos o hilos de ejecución. Estos procesos suelen tener conductas distintas, que hace hincapié en la necesidad de comunicación. El paralelismo de tareas es una forma natural de expresar la comunicación de paso de mensajes. Por lo general se clasifica como MIMD/MPMD o MISD.

Paralelismo de dato

Un modelo de datos en paralelo se centra en realizar operaciones en un conjunto de datos que por lo general está estructurado en una matriz. Un conjunto de tareas realizará operaciones en estos datos, pero de forma independiente en particiones separadas. En un sistema de memoria compartida, los datos serán accesibles para todos, pero en un sistema de memoria distribuida estos serán divididos entre las memorias y trabajados de forma local. El paralelismo de datos por lo general se clasifica como MIMD/SPMD o SIMD.

Sistemas Paralelos idealizados

Los sistemas idealizados son divididos en dos categorías. Los sistemas analizados en la primera categoría, se caracterizan por el aislamiento del espacio de diseño abstracto visto por el programador. En esta, todos los procesos son presentados con el mismo acceso a algún tipo de espacio de memoria compartida. En su forma más fácil, cualquier proceso puede intentar acceder a cualquier tema en cualquier momento. La segunda categoría considera máquinas en las que los dos niveles están más cerca entre sí y, en particular, aquellos en los que el mundo del programador incluye paralelismo explícito. Esta categoría descarta la memoria compartida y trabaja con base en cooperación con alguna forma de paso de mensaje explícito.

Ejemplo modelos de programación paralela

  • Esqueletos algorítmicos
  • Componentes
  • Objetos distribuidos
  • Invocación de Método de manera remota
  • Workflows
  • Máquina de Acceso paralelo Aleatorio
  • Procesamiento de flujo
  • Bulk synchronous parallelism

Véase también

Referencias

  1. Leslie G. Valiant, A bridging model for parallel computation, Commun.
  •   Datos: Q27929394

modelo, programación, paralela, estilo, esta, traducción, aún, sido, revisado, terceros, eres, hispanohablante, nativo, participado, esta, traducción, puedes, colaborar, revisando, adaptando, estilo, esta, otras, traducciones, acabadas, programas, informáticos. El estilo de esta traduccion aun no ha sido revisado por terceros Si eres hispanohablante nativo y no has participado en esta traduccion puedes colaborar revisando y adaptando el estilo de esta u otras traducciones ya acabadas En los programas informaticos un modelo de programacion paralela es un modelo para escribir programas paralelos los cuales pueden ser compilados y ejecutados El valor de un modelo de programacion puede ser juzgado por su generalidad Si las soluciones ofrecidas son optimas a comparacion de diferentes arquitecturas o soluciones existentes y su rendimiento Eficiencia precision o velocidad de la ejecucion La implementacion de un modelo de programacion puede tomar varias formas tales como bibliotecas invocadas desde lenguajes secuenciales tradicionales extensiones del lenguaje o nuevos modelos completos de ejecucion Es importante que haya un consenso entre cada uno de los modelos de programacion ya que permite que el software desarrollado pueda ejecutarse en diferentes arquitecturas Para arquitecturas de programacion secuencial se puede utilizar el modelo de von Neumann ya que proporciona un puente eficaz entre hardware y software lo que significa que lenguajes de alto nivel pueden compilarse eficientemente y se pueden implementar de manera eficiente en el hardware 1 Indice 1 Caracteristicas principales 1 1 Interaccion de proceso 1 1 1 Memoria compartida 1 1 2 Paso de mensaje 1 1 3 Implicito 1 2 Descomposicion de problema 1 2 1 Paralelismo de tarea 1 2 2 Paralelismo de dato 1 2 3 Sistemas Paralelos idealizados 2 Ejemplo modelos de programacion paralela 3 Vease tambien 4 ReferenciasCaracteristicas principales EditarLas caracteristicas de los modelos de programacion paralela se pueden sub dividir ampliamente pero se puede generalizar en 2 rasgos fundamentales la interaccion de procesos y los problemas de descomposicion Interaccion de proceso Editar La interaccion de proceso se refiere a los mecanismos por los cuales procesos paralelos son capaces de comunicarse entre si Las formas mas comunes de interaccion son la memoria y el paso de mensajes compartidos pero tambien puede ser implicita Memoria compartida Editar La memoria compartida es un medio eficaz de pasar datos entre programas Dependiendo del contexto los programas pueden ejecutarse en un procesador unico o en varios procesadores separados En este modelo las tareas paralelas comparten un espacio de direcciones global donde ellas leen y escriben de forma asincrona Esto requiere mecanismos de proteccion tales como cerraduras semaforos y monitores para controlar el acceso concurrente La memoria compartida puede ser emulada en sistemas de memoria distribuida pero los tiempos de NUMA acceso a memoria no uniforme Non Uniform Memory Access pueden entrar en juego A veces la memoria tambien es compartida entre diferentes secciones del codigo del mismo programa Por ejemplo un bucle for puede crear hilos para cada iteracion que actualiza una variable en paralelo Paso de mensaje Editar El paso de mensajes es un concepto de la informatica que se utiliza ampliamente en el diseno e implementacion de modernas aplicaciones de software es clave para algunos modelos de concurrencia y la programacion orientada a objetos En un modelo de paso de mensajes las tareas paralelas intercambian datos a traves del paso de mensajes entre si Estas comunicaciones pueden ser asincronas o sincronas La formalizacion de la Comunicacion de procesos secuenciales CSP del paso de mensaje emplea canales de comunicacion para conectar procesos y dio lugar a una serie de lenguajes importantes como Joyce Occam y Erlang Implicito Editar En un modelo implicito ninguna interaccion del proceso es visible al programador en cambio el compilador y o tiempo de ejecucion es responsable de realizar la misma Esto es mas comun con los lenguajes con especificidad de dominio en el que la concurrencia de un problema puede ser mas prescrita Descomposicion de problema Editar Un programa paralelo esta compuesto de procesos que estan ejecutandose simultaneamente La descomposicion del problema se refiere a la forma en que se formula estos procesos Esta clasificacion tambien puede ser referida como esqueletos algoritmicos o paradigmas de programacion paralela Paralelismo de tarea Editar Un modelo de tarea paralela se centra en los procesos o hilos de ejecucion Estos procesos suelen tener conductas distintas que hace hincapie en la necesidad de comunicacion El paralelismo de tareas es una forma natural de expresar la comunicacion de paso de mensajes Por lo general se clasifica como MIMD MPMD o MISD Paralelismo de dato Editar Un modelo de datos en paralelo se centra en realizar operaciones en un conjunto de datos que por lo general esta estructurado en una matriz Un conjunto de tareas realizara operaciones en estos datos pero de forma independiente en particiones separadas En un sistema de memoria compartida los datos seran accesibles para todos pero en un sistema de memoria distribuida estos seran divididos entre las memorias y trabajados de forma local El paralelismo de datos por lo general se clasifica como MIMD SPMD o SIMD Sistemas Paralelos idealizados Editar Los sistemas idealizados son divididos en dos categorias Los sistemas analizados en la primera categoria se caracterizan por el aislamiento del espacio de diseno abstracto visto por el programador En esta todos los procesos son presentados con el mismo acceso a algun tipo de espacio de memoria compartida En su forma mas facil cualquier proceso puede intentar acceder a cualquier tema en cualquier momento La segunda categoria considera maquinas en las que los dos niveles estan mas cerca entre si y en particular aquellos en los que el mundo del programador incluye paralelismo explicito Esta categoria descarta la memoria compartida y trabaja con base en cooperacion con alguna forma de paso de mensaje explicito Ejemplo modelos de programacion paralela EditarEsqueletos algoritmicos Componentes Objetos distribuidos Invocacion de Metodo de manera remota Workflows Maquina de Acceso paralelo Aleatorio Procesamiento de flujo Bulk synchronous parallelismVease tambien EditarComputacion paralela Computacion concurrente Paralelizacion automaticaReferencias Editar Leslie G Valiant A bridging model for parallel computation Commun Datos Q27929394 Obtenido de https es wikipedia org w index php title Modelo de programacion paralela amp oldid 136013717, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos