PDF de programación - Clustering

Imágen de pdf Clustering

Clusteringgráfica de visualizaciones

Publicado el 7 de Septiembre del 2017
681 visualizaciones desde el 7 de Septiembre del 2017
5,1 MB
46 paginas
Creado hace 17a (03/05/2006)
Clustering

Remo Suppi Boldrito

P07/M2103/02290

© FUOC • P07/M2103/02290

2

Clustering

© FUOC • P07/M2103/02290

Índex

Clustering

Introducció ...............................................................................................

5

1. Introducción al HPC .........................................................................
7
8
1.1. Beowulf ...........................................................................................
1.1.1. ¿Cómo configurar los nodos? .............................................
9
1.1.2. Beneficios de cómputo distribuido ..................................... 10
1.2. ¿Cómo hay que programar para aprovechar la concurrencia? ...... 12
1.2.1. PVM, parallel virtual machine ............................................... 13
1.2.2. MPI, message passing interface .............................................. 17

2. OpenMosix ........................................................................................... 22

3. Metacomputers, grid computing ..................................................... 25
3.1. Diferentes arquitecturas de cómputo ............................................. 25
3.2. Globus ............................................................................................. 27
3.3. Software, instalación y administración de Globus ......................... 29

Actividades ............................................................................................... 31

Bibliografía .............................................................................................. 32

GNU Free Documentation License ...................................................... 42

© FUOC • P07/M2103/02290

Clustering

© FUOC • P07/M2103/02290

5

Clustering

Introducció

Se denomina cluster (agrupación) de ordenadores a un grupo de ordenadores
que trabajan con un fin común. Estos ordenadores agrupan hardware, redes
de comunicación y software para trabajar conjuntamente como si fueran un
único sistema. Existen muchas razones atrayentes para realizar estas agrupa-
ciones, pero la principal es poder efectuar el procesamiento de la información
de forma más eficiente y rápida como si fuera un único sistema. Generalmen-
te, un cluster trabaja sobre una red de área local (LAN) y permite una comuni-
cación eficiente, si bien las máquinas se encuentran dentro de un espacio
físico próximo. Una concepción mayor del concepto es la llamada grid, donde
el objetivo es el mismo, pero implica agrupaciones de ordenadores unidos por
redes de área extensa (WAN). Algunos autores consideran el grid como un clus-
ter de clusters en un sentido ‘global’. Si bien cada vez más la tecnología y los
costes permiten estas aproximaciones, los esfuerzos y la complejidad de utili-
zación de decenas o centenares (en algunos casos, miles) es muy grande. Sin
embargo, las ventajas en tiempo de cómputo hacen que, aun así, este tipo de
soluciones para el cómputo de altas prestaciones (HPC, high performance com-
puting) sean consideradas muy atractivas y en constante evolución. En esta
unidad se mostrarán algunas de las aproximaciones más difundidas y utiliza-
das. [Rad, Dieb, Prob, Prod, Proe, Gloa]

Nota

Un cluster es un conjunto
de ordenadores en una LAN
que trabajan con un objetivo
común.
Los grids son agrupaciones de
ordenadores unidos por redes
de área extensa (WAN).

© FUOC • P07/M2103/02290

6

Clustering

© FUOC • P07/M2103/02290

7

Clustering

1. Introducción al HPC

Los avances en la tecnología han significado procesadores rápidos, de bajo
coste y redes altamente eficientes, lo cual ha favorecido un cambio de la rela-
ción precio/prestaciones en favor de la utilización de sistemas de procesadores
interconectados en lugar de un único procesador de alta velocidad. Este tipo
de arquitectura se puede clasificar en dos configuraciones básicas:

• Tighly coupled systems: son sistemas donde la memoria es compartida por
todos los procesadores (shared memory systems) y la memoria de todos ellos
se ‘ve’ (por el programador) como una única memoria.

• Loosely couple systems: no comparten memoria (cada procesador posee la
suya) y se comunican por mensajes pasados a través de una red (message
passing systems).

En el primer caso son conocidos como sistemas paralelos de cómputo (parallel
processing system) y en el segundo como sistemas distribuidos de cómputo
(distributed computing systems). En este último caso podemos decir que un sis-
tema distribuido es una colección de procesadores interconectados por una
red donde cada uno tiene sus propios recursos (memoria y periféricos) y se co-
munican intercambiando mensajes por la red.

La historia de los sistemas informáticos es muy reciente (se puede decir que
comienza en la década de los sesenta). En un principio eran sistemas grandes,
pesados, caros, de pocos usuarios expertos, no accesibles, lentos. En la década
de los setenta, la evolución permitió mejoras sustanciales llevadas a cabo por
tareas interactivas (interactive jobs), tiempo compartido (time sharing), termina-
les y con una considerable reducción del tamaño. La década de los ochenta se
caracteriza por un aumento notable de las prestaciones (hasta hoy en día) y
una reducción del tamaño en los llamados microcomputers. Su evolución ha
sido a través de las estaciones de trabajo (workstations) y los avances en redes
(LAN de 10 Mbits/s y WAN de 56 Kbytes/s en 1973 a LAN de 1Gbit/s y WAN
con ATM, asynchronous transfer mode de 1.2 Gbits/s en la actualidad), que es
un factor fundamental en las aplicaciones multimedia actuales y de un futuro
próximo. Los sistemas distribuidos, por su parte, comenzaron su historia en la
década de los setenta (sistemas de 4 u 8 ordenadores) y su salto a la populari-
dad lo hicieron en la década de los noventa.

Si bien su administración/instalación/mantenimiento es compleja porque
continúan creciendo, las razones básicas de su popularidad son el incremento
de prestaciones que presentan en aplicaciones intrínsecamente distribuidas
(por su naturaleza), la información compartida por un conjunto de usuarios,

© FUOC • P07/M2103/02290

8

Clustering

compartir recursos, la alta tolerancia a los fallos y la posibilidad de expansión
incremental (capacidad de agregar más nodos para aumentar las prestaciones
de modo incremental).

En los próximos apartados veremos algunos de los sistemas más comunes de
procesamiento paralelo/distribuido, así como los modelos de programación
utilizados para generar código capaz de utilizar estas prestaciones.

1.1. Beowulf

Beowulf [Rad, Beo] es una arquitectura multiordenador que puede ser utilizada
para aplicaciones paralelas/distribuidas (APD). El sistema consiste básicamen-
te en un servidor y uno o más clientes conectados (generalmente) a través de
Ethernet y sin la utilización de ningún hardware específico. Para explotar esta
capacidad de cómputo, es necesario que los programadores tengan un modelo
de programación distribuido que, si bien a través de UNIX es posible (socket,
rpc), puede significar un esfuerzo considerable, ya que son modelos de progra-
mación a nivel de systems calls y lenguaje C, por ejemplo; pero este modo de
trabajo puede ser considerado de bajo nivel.

La capa de software aportada por sistemas tales como parallel virtual machine
(PVM) y message passing interface (MPI) facilita notablemente la abstracción del
sistema y permite programar APD de modo sencillo y simple. La forma básica
de trabajo es maestro-trabajadores (master-workers), en que existe un servidor
que distribuye la tarea que realizarán los trabajadores. En grandes sistemas (por
ejemplo, de 1.024 nodos) existe más de un maestro y nodos dedicados a tareas
especiales como, por ejemplo, entrada/salida o monitorización.

Nota

Varias opciones:
• Beowulf
• OpenMosix
• Grid (Globus)

Una de las principales diferencias entre beowulf y un cluster of workstations
(COW) es que Beowulf se ‘ve’ como una única máquina donde los nodos se
acceden remotamente, ya que no disponen de terminal (ni de teclado), mien-
tras que un COW es una agrupación de ordenadores que pueden ser utilizados
tanto por los usuarios de la COW, como por otros usuarios en forma interac-
tiva a través de su pantalla y teclado. Hay que considerar que Beowulf no es
un software que transforma el código del usuario en distribuido ni afecta al
kernel del sistema operativo (como por ejemplo Mosix). Simplemente, es una
forma de agrupación (cluster) de máquinas que ejecutan GNU/Linux y actúan
como un superordenador. Obviamente, existe gran cantidad de herramientas
que permiten obtener una configuración más fácil, bibliotecas o modificacio-
nes al kernel para obtener mejores prestaciones, pero es posible construir un
cluster Beowulf a partir de un GNU/Linux estándar y de software convencio-
nal. La construcción de un cluster beowulf de dos nodos, por ejemplo, se puede
llevar a cabo simplemente con las dos máquinas conectadas por Ethernet me-
diante un hub, una distribución de GNU/ Linux estándar (Debian), el sistema
de archivos compartido (NFS) y tener habilitados los servicios de red como rsh

© FUOC • P07/M2103/02290

9

Clustering

o ssh. En estas condiciones, se puede argumentar que se dispone de un cluster
simple de dos nodos.

1.1.1. ¿Cómo configurar los nodos?

Primero se debe modificar de (cada nodo) el /etc/hosts para que la línea de lo-
calhost sólo tenga el 127.0.0.1 y no incluya ningún nombre de la máquina,
por ejemplo:

127.0.0.1 localhost

Y añadir las IP de los nodos (y para todos los nodos), por ejemplo:

192.168.0.1 pirulo1
192.168.0.2 pirulo2
...

Se debe crear un usuario (nteum) en todos los nodos, crear un grupo y añadir
este usuario al grupo:

groupadd beowulf
adduser nteum beowulf
echo umask 007 >> /home/nteum/.bash_profile

Así, cualquier archivo creado por el usuario nteum o cualquiera dentro del
grupo será modificable por el grupo beowulf.

Se debe crear un servidor de NFS (y los demás nodos serán clientes de este
N
  • Links de descarga
http://lwp-l.com/pdf6836

Comentarios de: Clustering (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad