Вы находитесь на странице: 1из 10

Algoritmos y Programacin Paralela

El modelo linda

Ral Rodrguez Cruz

Linda es un modelo que puede ser implementado para


cualquier lenguaje que provea herramientas para crear y
coordinar multiples procesos, algunas ejemplos de
implementacin son CppLINDA para C++, Simple C-Linda
para C o PYLinda para Python.

El concepto principal de LINDA es el de Espacio de Tuplas


a travs del cual los procesos se comunican.

Este espacio de tuplas es una abstraccin de un espacio de


memoria compartida el cual se usa de manera asociativa.

El espacio de tuplas es donde se almacena la informacin


accesible para todos los procesos.

Las tuplas son colecciones de campos de algn tipo soportado


por el lenguaje para el que se esta implementando.

Estos campos pueden ser de dos tipos, valores de un tipo


soportado o variables para recibir la informacin obtenida del
espacio de tuplas, a las variables se les aade ? delante.

Primitivas

Linda sugiere 4 primitivas adems de 2 opcionales.

Las primitivas out y eval para aadir datos al espacio de


tuplas.

Las primitivas rd e inn para obtener o eliminar elementos

Adems de estas hay dos opcionales inp y rdp que son las
versiones predictivas de rd e inn

out

Aade la tupla al espacio de tuplas


Es una primitiva no bloqueante

Espacio de tuplas

Out(x,5)

(x, 5)

in

Retira una tupla del espacio de tuplas.


Es una primitiva bloqueante si no encuentra ninguna tupla
que cumpla los requisitos se bloquea esperando a que sea
aadida.
Es destructiva, al ejecutarse elimina la tupla obtenida del
espacio de tuplas.
Si hay mas de una tupla que coincida se obtiene una al azar

Espacio de tuplas
(x, 5)

in(x,?X)

rd

Similar a in pero no elimina la tupla del espacio de tuplas.

Al igual que in es una primitiva bloqueante si no encuentra


ninguna tupla que cumpla los requisitos se bloquea
esperando a que sea aadida.

Espacio de tuplas
(x, 5)

rd(x,?X)

inp

Es la version predictiva de in.

Funciona igual que in pero en vez de guardar en la variable X


el valor de la tupla guarda 1 si ha encontrado alguna tupla
coincidente y 0 si no.

Espacio de tuplas
(x, 5)

inp(x,?X)

rdp

Es la version predictiva de rd.

Funciona igual que rd pero en vez de guardar en la variable


X el valor de la tupla guarda 1 si ha encontrado alguna tupla
coincidente y 0 si no.

Espacio de tuplas
(x, 5)

inp(x,?X)

eval

Es similar a out con la diferencia de que los valores de la


tupla se evalan antes de ser introducidos, esta evaluacin
se hace en paralelo creando un proceso para cada valor.

Espacio de tuplas
eval(x,4!)

(x, 24)

Вам также может понравиться