You are on page 1of 5

COMPUTACION PARALELA Y DISTRIBUIDA, ESTADO DEL ATRE, VOL. 1, NO.

1, MAYO 2016

Computacion Paralela y Distribuida


Joel Fernandez, Informatica, UNT, Jordy Reyes, Informatica, UNT,
ResumenLa computacion Paralela y Distribuida es un area de la ACM, esta relacionada al procesamiento paralelo,
las arquitecturas paralelas y los sistemas distribuidos,estudiaremos las distintas sub areas que hay, hablaremos sobre
los fundamentos del paralelismo, la descomposicion paralela, la comunicacion y coordinacion, los algoritmos paralelos,
la arquitectura paralela, el rendimiento, la computacion distribuida, el cloud computing y los modelos formales y
de esa area.
semanticos.Daremos tambien una perspectiva del avance de los ultimos 20 anos
Index TermsParalelismo, Rendimiento,concurrencia, atomicidad, exclusion mutua, multicast, computacion distribuida,cloud computing.

1.

I NTRODUCCION

N los anos
50, empezo a surgir el procesamiento paralelo . El objetivo en esa
e poca era construir una maquina con capacidad computacional 100 veces mayor de la
de cualquier otra maquina disponible. En esos

anos
empezaron producir los dos primeros
productos: los supercomputadores conocidos
como STRETCH y LARC. En paralelo a estas iniciativas, muchas otras producen computadores con las arquitecturas mas variadas y
con diferentes tipos de software. Las princi de maquipales razones para la construccion
nas paralelas son: disminuir el tiempo total
de una aplicacion,
conseguir rede ejecucion
solver problemas mas complejos, de grandes
dimensiones, y proporcionar concurrencia, o
simultanea de tareas,
sea, permitir la ejecucion
red distribuida(
en otras ventajas utilizacion
WAN o la propia internet) esto nos permite disminuir costos, en vez de pagar para utilizar un
supercomputador, podramos utilizar recursos
baratos disponibles remotamente, para problemas de grandes dimensiones, usar memorias
de varios computadores permite resolver el
de memoria presente
problema de la limitacion
J. Fernandez es estudiante de Informatica, Escuela de Informatica,
Universidad Nacional de Trujillo, La Libertad, Peru.
E-mail: jcferseg@gmail.com
J. Reyes es estudiante de Informatica, Escuela de Informatica,
Universidad Nacional de Trujillo, La Libertad, Peru.
Articulo recivido el 31 de Mayo, 2016; revisado 31 Mayo, 2016.

en una unica
maquina. Ademas de esto, po

demos decir que durante los ultimos


10 anos,
apuntan a la
las tendencias en computacion
paralela,
presencia continua de la computacion
continuan

dado que las redes de interconexion


avanzando significativamente en terminos de
y ancho de banda.
velocidad de comunicacion
Mayo 31, 2016

2. Q UE ESTUDIA LA C OMPUTACION
PARALELA Y D ISTRIBUIDA ?

Debido a la terminologa de la computacion


paralela y distribuida vara entre las comuni
dades, ofrecemos aqu una breve descripcion
de los sentidos previstos de algunos terminos.
Esta lista no es exhaustiva ni definitiva, pero se
proporciona en aras de la claridad.
-Paralelismo: El uso de los recursos computacionales adicionales simultaneamente, por lo
general para acelerar.
eficaz y regular el
-Concurrencia: la gestion
acceso simultaneo a los recursos.
-Actividad: Un calculo que pueden realizar
de forma concurrente con otros; por ejemplo,
un programa, proceso, hilo, o un componente
de hardware paralelo activo.
-Atomicidad: Reglas y propiedades de le es observacionalmente
galidad de una accion
indivisible; por ejemplo, el establecimiento de
de
todos los bits en una palabra, la transmision

un unico
paquete, o completar una transaccion.

COMPUTACION PARALELA Y DISTRIBUIDA, ESTADO DEL ATRE, VOL. 1, NO. 1, MAYO 2016

-Consenso: Acuerdo entre dos o mas actividades alrededor de un predicado dado; Por
de
ejemplo, el valor de un contador, el dueno
de un hilo.
una cerradura, o la terminacion
-Consistencia: Las reglas y propiedades que
rigen acuerdo acerca de los valores de las
variables escritos o mensajes producidos, por
parte de algunas actividades y usada por otros
(por lo tanto, posiblemente, exhibiendo una
carrera de datos); por ejemplo, la consistencia
secuencial, que indica que los valores de todas las variables de un programa paralelo de
memoria compartida son equivalentes a la de

de algun

un unico
programa de la realizacion
entrelazado de accesos a la memoria de estas
actividades.
-Multicast: Un mensaje enviado a varios des
tinatarios, posiblemente, en general, sin ningun
tipo de restricciones acerca de si algunos de
los destinatarios reciban el mensaje antes que
otros. Un evento es un mensaje de multidi enviado a un conjunto designado de
fusion
oyentes o suscriptores.
2.1. Fundamentos del Paralelismo
En esta a rea se estudia todos los fundamentos del paralelismo como por ejemplo: calculos

simultaneos multiples;
los objetivos del para y coordinacion
como
lelismo; la comunicacion
Los
por ejemplo la necesidad de sincronizacion;
que no se encuentran
errores de programacion
secuencial o carreras de
en la programacion
datos.

dependencia de tiempo, es decir, un procesador


de la tarea T1
P1 debe culminar la ejecucion
antes que otro procesador P2 pueda comenzar
de la tarea T2. Normalmente, ellas
la ejecucion
para cumplir
deben comunicarse informacion
sus trabajos, ya sea:
- Compartiendo recursos: datos en la memoria compartida, etc.
de la informacion:
envo
- Por la transmision
de mensajes, etc.
2.3.1. Paso de Mensajes
Los datos son intercambiados entre los procesadores por medio de mensajes. El mensaje es
originado en un sitio (el procesador que enva),
transmitido a traves de la red de intercone y recibido en otro lugar (el procesador
xion,
receptor). Cualquier computador puede actuar
como receptor o puede enviar mensajes en un
momento dado. Para el sistema de pase de
mensajes la red es un servidor, y de acuerdo
del que enva y del que recibe la
a la ubicacion
de comunicacion
puede hacerse mas
operacion
rapida o no.
2.3.2. Exclusion Mutua
En las maquinas a memoria compartida, la
forma de comunicarse dos procesadores es a
traves de la memoria compartida entre ellos.
Esto implica que se debe controlar el acceso
a la memoria para que dos o mas procesos
no accesen al mismo tiempo la misma direc de memoria y se creen as situaciones de
cion
inconsistencia (por ejemplo, datos modificados
simultaneamente por dos procesos distintos).

paralela
2.2. Descomposicion
basada en ta- 2.3.3. Redes de Interconexion
Se estudia la descomposicion
o como hilos,
reas, estrategias de aplicacion
Las maquinas paralelas pueden clasificarse
Data-paralelo, estrategias tales
descomposicion
si es directa
tomando
en cuenta la conexion:
como SIMD y MapReduce.
entre los procesadores (normalmente la red de
es estatica) o a traves de bancos
interconexion
y Coordinacion

2.3. Comunicacion
de memorias compartidos (en este caso, la red
es generalmente dinamica)
Las maquinas paralelas se caracterizan por de interconexion
replicar algunos de sus componentes: unidades
- Memoria compartida: Los procesos tienen
de procesamiento, unidades de control, etc. acceso a la misma memoria fsica. Los procesos

Ademas, es muy raro que la descomposicion


pueden correr en un solo procesador( tiem en tareas, po compartido) o los procesos pueden correr
que uno haga de una aplicacion
conlleve a que estas sean completamente inde- en procesadores distintos dentro del mismo
pendientes entre ellas. En este caso se habla de computador.

COMPUTACION PARALELA Y DISTRIBUIDA, ESTADO DEL ATRE, VOL. 1, NO. 1, MAYO 2016

- Memoria Distribuida: Otra forma es conectar a los procesadores directamente entre


ellos (la memoria esta distribuida entre los
procesadores), teniendose as una maquina a
memoria distribuida sin espacio de direcciones
globales.

realizar. De esta manera, parte de los datos


pueden ser procesados en la fase 1 mientras
otros son procesados en la 2, otros en la tres, y
as sucesivamente.
-MIMD(Multiple Instruction, Multiple Data):

Las ideas basicas son que multiples


tareas
heterogeneas puedan ser ejecutadas al mismo
tiempo, y que cada procesador opere indepen2.4. Algoritmos Paralelos, Analisis y Prodientemente con ocasionales sincronizaciones
gramacion
con otros. Esta compuesto por un conjunto
Aqu podemos estudiar un algoritmo, anali- de elementos de procesamiento donde cada
zarlo, ver su eficiencia y rendimiento. Vemos uno realiza una tarea, independiente o no, con
y la respecto a los otros procesadores.
caminos crticos, el trabajo y la duracion
con la ley de Amdahl. Asi como la
relacion
velocidad y escalabilidad.
2.6. Rendimiento paralelo
Un aspecto importante a considerar es que
En los Sistemas Distribuidos/Paralelos, uno
todo programa paralelo tiene una parte secuen
de
sus principales problemas es la degradacion

cial que eventualmente limita la aceleracion


que se puede alcanzar en una plataforma pa- de sus rendimientos. En un ambiente ideal,
el rendimiento crece linealmente al crecer el
ralela.

de procesadores. Si se duplica el nume es la re- numero


La Ley de Amdahl: la aceleracion
ro
de
procesadores
en
un
sistema,
el
rendi entre el tiempo de ejecucion
sobre un
lacion
miento debera igualmente duplicarse. Esto no

procesador secuencial y el tiempo de ejecucion

en multiples
procesadores. Esto es conocido sucede en la realidad, ya que a partir de un

cierto numero
de procesadores los excesivos
como la ley de Amdahl.
intercambios de mensajes de control y de transferencia de datos entre los procesadores, pro2.5. Arquitectura Paralela
en el sistema, lo
vocan un efecto de saturacion

la que genera automaticamente una degradacion


Aqu estudiamos las arquitecturas segun
del
rendimiento.
Parece
entonces
evidente
la
taxonoma de Flynn, a los procesadores multi
entre la optimizacion
del rendimiento

nucleo,
el procesamiento vectorial, el procesa- relacion

y
la
minimizaci
on
de
los
intercambios
entre los
miento simetrico(SMP), y los accesos de memoprocesadores.
Existen
otros
aspectos
que
juegan
rias UMA y NUMA.
un papel importante para optimizar el rendimiento en un sistema Distribuido/Paralelo,
2.5.1. Taxonomia de Flynn
como es el equilibrio de la carga de trabajo, y
-SISD(Single Instruction, Single Data): un
del numero

la minimizacion
de operaciones de

unico
programa es ejecutado usando solamenentradas/salidas, entre otros.
te un conjunto de datos especficos a e l. SIMD(Single Instruction, Multiple Data): un
simple controlador enva las instrucciones, una 2.7. Sistemas Distribuidos
Un sistema distribuido se define como una
a una, a un arreglo de procesadores que ope de computadoras separadas fsicaran en el esquema maestro-esclavo. Es de- coleccion
cir, las instrucciones son difundidas desde la mente y conectadas entre s por una red de
memoria a un conjunto de procesadores. As, comunicaciones; cada maquina posee sus comcada procesador es simplemente una unidad ponentes de hardware y software que el pro
aritmetica-logica
y se tiene una sola unidad gramador percibe como un solo sistema (no nede control. -MISD(Multiple Instruction, Single cesita saber que cosas estan en que maquinas).
Data): La idea es descomponer las unidades El programador accede a los componentes de
de procesamiento en fases, en donde cada una software (objetos) remotos, de la misma mase encarga de una parte de las operaciones a nera en que accedera a componentes locales,

COMPUTACION PARALELA Y DISTRIBUIDA, ESTADO DEL ATRE, VOL. 1, NO. 1, MAYO 2016

en un grupo de computadoras que usan un


middleware entre los que destacan (RPC) y
SOAP para conseguir un objetivo. Los sistemas
distribuidos deben ser muy confiables, ya que
si un componente del sistema se descompone
otro componente debe ser capaz de reemplazarlo. Esto se denomina tolerancia a fallos. El
de un sistema distribuido puede ser
tamano
muy variado, ya sean decenas de hosts (red
de a rea local), centenas de hosts (red de a rea
metropolitana), o miles, o millones de hosts
(Internet); esto se denomina escalabilidad.
2.8. Cloud Computing
se
Es un paradigma en el que la informacion
almacena de manera permanente en servidores
en Internet y se enva a memorias temporales del cliente, lo que incluye computadores
portatiles, equipos de escritorio, centros de
ocio, telefonos celulares, etc. Como consecuen
cia se ha creado un nuevo modelo de prestacion
de servicios de negocio y tecnologa, basados
en la web. Este modelo permite al usuario acceder a un catalogo de servicios estandarizados
y responder a las necesidades de su negocio.

El usuario, a cambio, paga unicamente


por el
consumo efectuado. Los tipos de servicios que
se pueden proveer a traves de la nube son
muy variados: almacenamiento de documentos
y datos, los usuarios pueden obtener un CPU
sin comprar equipo, utilizar un software para
de los recursos empresariales
la planificacion
(ERP)sin necesidad de comprarlo, etc.
2.9. Modelos Formales y Semanticas
Estudia - Los modelos formales de los procesos y de paso de mensajes, incluyendo las
secuencial
a lgebra tales como la comunicacion
- Procesos (CSP) y pi-calculo - Los modelos for en paralelo, incluyendo
males de computacion
el paralelo de acceso aleatorio de la maquina
(PRAM) y - alternativas como paralelo sncrona a granel (BSP) - Los modelos formales de
dependencias computacionales - Modelos de
consistencia de memoria compartida (relaja con las especificaciones del
do) y su relacion
- requisitos de relenguaje de programacion

gularidad algortmicos incluyendo instruccion

logartmica,
atomica
- Modelos de progresion

incluyendo no bloqueantes garantas y equidad


- Las tecnicas para especificar y comprobar las
como la atomicidad
propiedades de correccion
y la ausencia de datos.

3. P ROSPECTIVA DE LA C OMPUTACION

PARALELA Y D ISTRIBUIDA EN 20 A NOS


paralela y distribuida en los
La computacion

ha ido creciendo exponencialmenultimos


anos
de los sistemas de
te. Debido a la evolucion

computo
paralelo, el desarrollo de aplicaciones que explotan paralelismo ha ido cambiando paulatinamente su foco. Desde las clasicas
aplicaciones numericas en supercomputadores
de alto rendimiento, hacia las aplicaciones de
de
streaming multimedia, y la computacion

proposito
general en cualquier a mbito. Hoy por
hoy interesa explotar el paralelismo tanto de
algoritmos basicos como de complejos programas modulares. Las nuevas aplicaciones paralelas muestran diferentes niveles de paralelis
mo, con diferentes estrategias de paralizacion.
Muchas aplicaciones muestran comportamientos dinamicos, dependientes de datos, donde
las polticas de balanceo automatico de carga
son claves. A su vez, las aplicaciones deberan
ser flexibles, para poder ejecutarse en entornos

cada vez mas diversos, mezclando cluster


de
memoria distribuida con multicores y dispositivos aceleradores como GPUs. La enorme diversidad y heterogeneidad de las plataformas,
y las diferentes formas de componer dichos elementos presentan problemas para el desarrollo de aplicaciones portables que sean capaces
de adaptarse de forma eficiente al entorno de
Hasta ahora han aparecido diversos
ejecucion.
que han sido adopmodelos de programacion
tados con e xito por la comunidad cientfica
y de desarrolladores. En sistemas distribuidos
las implementaciones eficientes del paradigma
de paso de mensajes (las implementaciones de
MPI). Para sistemas de memoria compartida las
herramientas de control de threads de alto nivel
(OpenMP). Para los dispositivos aceleradores, o
sistemas hbridos que contengan aceleradores,
modelos especficos (CUDA u OpenCL). En un
intento de unir diferentes tendencias y paradigmas los modelos PGAS (Partitioned Global
Adress Space) (UPC, Chapel, X10). Sin embargo

COMPUTACION PARALELA Y DISTRIBUIDA, ESTADO DEL ATRE, VOL. 1, NO. 1, MAYO 2016

cada da se crean nuevas arquitecturas con cada

vez mas potencia y nucleos


que explotar, en

unos 20 anos
veremos como las arquitecturas
de computadoras van a cambiar, veremos que
una computadora ya no se compondra de 2 ,3

o 4 nucleos,
sino de 30 o 40 nucleos,
es mas
ya no usaremos una placa madre, sino tal vez
dos o tres a la vez; estos avances se veran
forzados a llevar el software a otro nivel, y con
estos avances deben surgir nuevas tecnologas
de software. Para poder aprovechar estas ar seran lenguaquitecturas la principal aparicion
y compiladores paralelos
jes de programacion
nativos, dejaremos de lado a los compilado
res que ejecutan codigo
de manera secuencial
y las libreras que ayudan al paralelismo de
lenguajes secuenciales tambien desapareceran.
Los algoritmos deberan ser implementados de
manera paralela y aqu el analisis de algoritmos
sera clave, as como tambien su rendimiento y
complejidad. Otra de las a reas que se van a
beneficiar sera el procesamiento grafico, pues
paralela y las nuevas arcon la computacion
quitecturas sera mas sencillo poder representar
graficos cada vez mas ntidos sin mucho esfuer en la nube, los sistemas
zo. La computacion
distribuidos y las supercomputadoras tambien
se veran beneficiadas con este avance, ya que la

prioridad de estas es el uso eficiente y optimo


de los recursos.

4.

[2] Association From Computing Machinery and IEEE. (2013).


Computer Science Curricula 2013. United States of America.
[3] Jimenes, D., Boratto, M.,
Coelho, L. (s.f.). Uni
versidad de Murcia- Espana.
Obtenido de Univer
sidad de Murcia- Espana:
http://dis.um.es/ domingo/09/ERBASE/minicursoespanol.pdf
[4] Liu, M. (2004). Computacion Distribuida, Fundamentos y
Aplicaciones. United States Of America: Pearson Edication.
[5] Ortiz, A. (2012). Programacion Multinucleo. Monterrey,
Mexico.
[6] Solano, J. (2011). Computacion en la Nube. Investiga TEC,
4-5.
[7] Vargas, J., Alpizar, I. (s.f.). Universidad de Costa Rica.
Recuperado el 22 de 05 de 2016, de Universidad de Costa
Rica: http://citic.ucr.ac.cr/sites/default/files/recursos/17

Joel Fernandez Segura Estudiante de la


carrera profesional de Informatica, en la
Universidad Nacional de Trujillo.
PLACE
PHOTO
HERE

C ONCLUSION

Como pudimos observar el area de la ACM Computacion Paralela y Distribuida abarca un


tema muy interesante, amplio y aun por investiar mucho mas , tambien el avance de las tecnologias en la arquitectura nos ayuda a poder
lograr la programacion paralela. El estudio de
los algoritmos paralelos y su rendimiento nos
da una perspectiva de los avances en terminos
de los
medibles del rendimiento. Y el diseno
sistemas distribuidos han contribuido bastante
para la tecnologia de hoy en dia, tal como la
computacion en la Nube, los clusters.

R EFERENCIAS
[1] Aguilar, J., Leiss, E. (2004). Introduccion a la Computacion
Paralela. Merida, Venezuela: Graficas Quinteto.

Jordy Reyes Julca Estudiante de la carrera profesional de Informatica, en la Universidad Nacional de Trujillo.
PLACE
PHOTO
HERE

You might also like