Logo Studenta

Diseno-de-un-cluster-beowulf-para-realizar-calculos-Monte-Carlo

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FACULTAD DE INGENIERÍA 
DISEÑO DE UN CLUSTER BEOWULF PARA 
REALIZAR CÁLCULOS MONTE CARLO 
 
 
T E S I S P R O F E S I O N A L 
 
QUE PARA OBTENER EL TÍTULO DE: 
 
INGENIERO EN COMPUTACIÓN 
 
 
PRESENTA: 
 
GUSTAVO GÓMEZ MACÍAS 
 
 
 
 
DIRECTOR DE TESIS: 
PhD. ARNULFO MARTÍNEZ DÁVALOS 
CIUDAD UNIVERSITARIA, 2008 
I N G E N I E R I A
Neevia docConverter 5.1
 
UNAM – Dirección General de Bibliotecas 
Tesis Digitales 
Restricciones de uso 
 
DERECHOS RESERVADOS © 
PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL 
 
Todo el material contenido en esta tesis esta protegido por la Ley Federal 
del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). 
El uso de imágenes, fragmentos de videos, y demás material que sea 
objeto de protección de los derechos de autor, será exclusivamente para 
fines educativos e informativos y deberá citar la fuente donde la obtuvo 
mencionando el autor o autores. Cualquier uso distinto como el lucro, 
reproducción, edición o modificación, será perseguido y sancionado por el 
respectivo titular de los Derechos de Autor. 
 
 
 
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 2
AGRADECIMIENTOS FORMALES 
 
Al Proyecto Conacyt U46761-F “Detectores de radiación para radionúclidos emisores 
de fotones” por la beca recibida durante el año 2007 para realizar la presente tesis de 
licenciatura. Al Instituto de Física, a la Coordinación de la Investigación Científica, a la 
Facultad de Medicina y a la UNAM, por el apoyo en la compra de equipo. 
 
Al Dr. Arnulfo Martínez Dávalos y a la Dra. Mercedes Rodríguez Villafuerte por su 
apoyo, guía, confianza, tiempo, paciencia, por permitirme integrarme a su proyecto de 
investigación (Conacyt U46761-F) y por las constantes e importantes recomendaciones 
que recibí a lo largo de todo el trabajo. 
 
Al Grupo de Investigación en Física Médica del IFUNAM por permitirme hacer uso de 
sus instalaciones, así como de sus equipos de cómputo sin los cuales el presente 
trabajo no hubiera sido posible de realizar. 
 
Al Lic. Neptalí González Gómez por los 3 años que me permitió trabajar a su lado, por 
todo lo que me enseñó (lo cual fue un pilar fundamental para la realización del presente 
trabajo), por su constante ayuda, apoyo, consejos, confianza, pero sobre todo por su 
amistad y por mostrarme día a día cómo debe trabajar y comportarse un verdadero 
profesional. 
 
Al Ing. Fernando Javier Martínez Mendoza por integrarme al equipo de cómputo del 
Instituto de Física de la UNAM, por permitirme colaborar con él, por apoyarme, por su 
amistad y por alentarme a continuar en todo momento al ser un claro ejemplo de un 
egresado de la Facultad de Ingeniería que es exitoso en su trabajo. 
 
A mis sinodales: M.C. María Jaquelina López Barrientos, M.I. Aurelio Adolfo Millán 
Nájera, Ing. Orlando Zaldívar Zamorategui, Dr. Miguel Moctezuma Flores y por 
supuesto a mi director de tesis Dr. Arnulfo Martínez Dávalos. A todos ellos por las 
revisiones y atinadas observaciones recibidas sobre este trabajo. 
 
A la Facultad de Ingeniería de la UNAM por brindarme una formación dentro de sus 
aulas, por proporcionarme grandes maestros y compañeros. Pero lo más importante por 
hacerme una mejor persona. 
 
Al Instituto de Física de la UNAM y a toda su comunidad académica y administrativa. 
Lugar que me permitió desarrollar habilidades prácticas de mi carrera a lo largo de tres 
años, primero por servicio social, después como estudiante asociado y por último como 
tesista. También por permitirme colaborar con expertos en diversas ramas del cómputo 
y por supuesto con importantes científicos mexicanos. Por último, pero no por eso 
menos importante, a la UNAM que me brindó todo lo arriba mencionado y me sigue 
brindando oportunidades y educación. 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 3
AGRADECIMIENTOS PERSONALES 
 
A mis padres, Maricarmen Macías Leite y Eduardo Ziehl García por su gran apoyo, 
enseñanzas, consejos, amor y cariño que he recibido a lo largo de toda mi vida. Por 
todos los valores que me inculcaron es que pude ingresar a la carrera que más 
deseaba y en la Universidad que yo quería, integrarme a un gran Instituto de 
Investigación como lo es el IFUNAM y concluir el presente trabajo. Les debo todo. 
 
A mis hermanos, Regina Ziehl Macías y Eduardo Ziehl Mora, por todos lo buenos 
momentos, su gran apoyo y por su colaboración indirecta en la realización y conclusión 
del presente trabajo. 
 
A mis abuelos, Maria Luisa Leite Vilchis y Hugo Macías Garza Ayala, quienes siempre 
han estado presentes para ayudarme con cualquier problema que se me ha presentado 
a lo largo de mi vida, por los consejos, la motivación y el interés que presentaron para la 
conclusión de este trabajo. 
 
A Isset Guerrero Galache, quien siempre de una u otra manera encontraba la forma de 
ayudarme en absolutamente todas las etapas del presente trabajo. Por su completo 
apoyo, tiempo, confianza, ánimo, motivación, amor, cariño y por hacerme una mejor 
persona. Sin ella hubiera sido imposible la realización del presente trabajo, Muchas 
Gracias. 
 
A mis amigos de la Facultad de Ingeniería Ing. Pedro Fajardo Becerril, José Guadalupe 
Serrato, Uriel Canto Arce, Alan Edgar García Flores y Carlos Franco Díaz, quienes con 
su apoyo y amistad hicieron de mi estancia en la carrera no sólo algo productivo sino 
divertido y agradable. 
 
A mis amigos Israel Sanabria Pizarro, Lic. Jorge Rafael Pérez, Ing. Miguel Sánchez 
Flores, Gilberto Galavíz Juárez, Dr. Erick Rivera Comparán, Rodrigo Santana 
Menéndez y a Ismael Hernández González por brindarme su amistad a lo largo de 
todos estos años y motivarme en la conclusión de mi carrera profesional. 
 
Finalmente a todas aquellas personas que he olvidado mencionar pero que de una u 
otra manera contribuyeron de manera directa o indirecta en este proyecto. 
 
 
 
 
 
 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 III
Índice 
 
1.0 Introducción...........................................................................................................................1 
 1.1 Panorama actual..........................................................................................................3 
1.2 Definición del problema................................................................................................6 
 1.3 Objetivos......................................................................................................................6 
 1.4 Requerimientos generales...........................................................................................6 
 1.5 Estructura del trabajo...................................................................................................7 
2.0 El Método Monte Carlo.........................................................................................................9 
 2.1 Historia.......................................................................................................................11 
 2.2 Descripción del Método Monte Carlo.........................................................................12 
 2.3 Aplicaciones del Método Monte Carlo.......................................................................15 
 2.4 El código PENELOPE................................................................................................16 
 2.5 Generadores de Números Aleatorios........................................................................18 
 2.6 Cálculo de π...............................................................................................................20 
3.0 La Tecnología de Clusters de Cómputo............................................................................21 
 3.1Historia.......................................................................................................................23 
 3.2 Aplicaciones de los Clusters de Cómputo.................................................................26 
 3.3. Tipos de Clusters de Cómputo..................................................................................27 
 3.3.1 Clusters de Balanceo de Carga..................................................................27 
 3.3.2 Clusters de Alta Disponibilidad...................................................................28 
 3.3.3 Clusters de Alto Rendimiento.....................................................................29 
 3.4 Estructura de los Clusters de Alto Rendimiento........................................................30 
 3.4.1 Estructura de cluster simétrico...................................................................30 
 3.4.2 Estructura de cluster asimétrico.................................................................31 
 3.4.3 Estructura de cluster expandido.................................................................32 
 3.5 Arquitectura de los Clusters de Alto Rendimiento.....................................................33 
 3.5.1 Hardware....................................................................................................34 
 3.5.1.1 Microprocesador….......................................................................34 
 3.5.1.2 Memoria de acceso aleatorio.......................................................37 
 3.5.1.3 Placa Base ..................................................................................38 
 3.5.1.4 Dispositivos de almacenamiento permanente ............................39 
 3.5.1.5 Tarjeta de video ...........................................................................39 
 3.5.1.6 Periféricos ....................................................................................40 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 IV
 3.5.2 Protocolo de Comunicación .......................................................................40 
 3.5.2.1 Modelo de Referencia TCP/IP.......................................................41 
 3.5.2.1.1 La capa de host a red....................................................41 
 3.5.2.1.2 La capa de interred........................................................41 
 3.5.2.1.3 La capa de transporte................................................... 41 
 3.5.2.1.4 La capa de aplicación................................................... 42 
 3.5.3 Esquema de comunicación del protocolo TCP/IP...................................... 42 
 3.5.4 Sistema Operativo...................................................................................... 43 
 3.5.4.1 GNU Linux................................................................................... 44 
 3.5.4.2 ¿Porqué utilizar GNU Linux en clusters? ................................... 45 
 3.5.5 Middleware..................................................................................................46 
 3.5.6 Aplicación....................................................................................................47 
 3.6 Los clusters tipo Beowulf...........................................................................................47 
 3.6.1 Clusters Beowulf: Clase 1 y Clase 2...........................................................47 
 3.6.2 Características de un cluster tipo Beowulf..................................................48 
 3.7 Otros tipos de computadoras paralelas.....................................................................49 
 3.7.1 Computadoras de registros vectoriales.......................................................49 
 3.7.2 Computadoras multiprocesador de memoria compartida...........................50 
 3.7.3 Computadoras multiprocesador de memoria distribuida.............................51 
 3.7.4 Computación distribuida............................................................................. 52 
 3.8 Limitaciones de los clusters........................................................................................52 
 3.8.1 La ley de Amdahl.........................................................................................53 
4.0 Diseño, Instalación y Configuración del Cluster Beowulf “Nahui”...............................55 
 4.1 Arquitectura del Cluster Beowulf “Nahui”....................................................................57 
 4.1.1 Hardware de “Nahui”...................................................................................57 
4.1.2 Protocolos de Comunicación en “Nahui”.....................................................58 
 4.1.3 Sistema Operativo en “Nahui”.....................................................................58 
 4.1.4 Middleware en “Nahui”................................................................................59 
 4.1.5 Aplicaciones en “Nahui” .............................................................................59 
 4.2 Diseño del Cluster Beowulf “Nahui” ..........................................................................59 
 4.2.1 Consideraciones de Diseño .......................................................................60 
 4.2.2 Plan General del Cluster Beowulf “Nahui” .................................................61 
 4.2.3 La red de datos del Cluster Nahui .............................................................62 
 4.2.3 Topología de red en el Cluster Nahui ........................................................62 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 V
 4.2.4 Protocolo de configuración dinámica de anfitriones (DHCP)......................63 
 4.2.5 Traducción de direcciones de red (NAT) ...................................................64 
 4.2.6 Protocolo de Consola Segura (SSH) .........................................................66 
 4.2.7 Sistema de archivos en red (NFS) ............................................................ 67 
 4.2.8 Servicio de Información de red (NIS)..........................................................70 
 4.2.9 Protocolo de tiempo de red (NTP)..............................................................72 
 4.2.10 El Administrador de recursos y colas TORQUE......................................74 
 4.2.11 El Planificador Maui. ................................................................................76 
 4.3 Instalación del Cluster Beowulf Nahui .......................................................................77 
 4.3.1 El Nodo Principal.........................................................................................77 
 4.3.2 Instalación del sistema operativo...............................................................78 
 4.3.3 Actualización del sistema operativo...........................................................79 
 4.3.4 Configuración de interfaces de red............................................................79 
 4.3.5 Configuración de los servidores DNS a utilizar..........................................80 
 4.3.6 Configuración del archivo de anfitriones....................................................80 
 4.3.7 Instalación y configuración del Servidor DHCP..........................................81 
 4.3.8 Instalación y configuración del Servidor NAT.............................................83 
 4.3.9 Instalación y configuración del Cliente y Servidor SSH..............................84 
 4.3.10 Instalación y configuración del Servidor NFS...........................................85 
 4.3.11 Instalación y configuración del Servidor NIS............................................85 
 4.3.12 Instalacióny configuración del Cliente y Servidor NTP............................86 
 4.3.13 Instalación y configuración del Cliente y Servidor TORQUE....................88 
 4.3.14 Instalación y configuración del Planificador Maui.....................................90 
 4.4 Los Nodos Clientes....................................................................................................92 
 4.4.1 Instalación del sistema operativo...............................................................92 
 4.4.2 Actualización del sistema operativo...........................................................92 
 4.4.3 Instalación y configuración del cliente y servidor SSH...............................92 
 4.4.4 Instalación y configuración del cliente NFS................................................93 
 4.4.5 Instalación y configuración del cliente NIS.................................................93 
 4.4.6 Instalación y configuración del cliente NTP................................................94 
 4.4.7 Instalación y configuración del cliente TORQUE........................................94 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 VI
5.0 La Seguridad en el Cluster “Nahui”..................................................................................95 
 5.1 Definición de los requerimientos de seguridad..........................................................97 
 5.2 Metodología para cumplir los requerimientos de seguridad……..............................98 
 5.2.1 ¿Qué se quiere proteger? ...........................................................................98 
 5.2.2 ¿De qué se quiere proteger? ......................................................................99 
 5.2.2.1 Amenazas.....................................................................................99 
 5.2.2.2 Vulnerabilidades..........................................................................100 
 5.2.2.3 Ataques.......................................................................................100 
 5.2.3 ¿Cómo se va a proteger? .........................................................................101 
 5.3 Soluciones a los requerimientos de seguridad........................................................102 
 5.4 Medidas contra las amenazas.................................................................................104 
 5.5 Medidas contra los ataques.....................................................................................105 
 5.6 Medidas contra las vulnerabilidades........................................................................105 
 5.7 Las comunicaciones seguras...................................................................................106 
 5.8 El Firewall de Nahui..................................................................................................108 
 5.8.1 IPTABLES..................................................................................................108 
 5.8.1.1 Uso de IPTABLES en Nahui con Firestarter...........................................109 
 5.9 Herramienta de monitoreo Ganglia...........................................................................112 
 5.9.1 Instalación del Servidor Ganglia................................................................113 
 5.9.2 Instalación del Cliente Ganglia..................................................................113 
 5.9.3 Utilización de Ganglia................................................................................114 
 5.10 Reglamento del cluster Nahui................................................................................115 
6.0 Administración, Utilización y Pruebas en el Cluster Beowulf “Nahui”........................117 
 6.1 Administración de Nahui...........................................................................................119 
 6.1.1 Dar de alta y baja usuarios.......................................................................120 
 6.1.1.1 Utilización de nahui_admin.........................................................120 
 6.1.1.2 Código del script nahui_admin....................................................121 
 6.1.1.3 Código del script make.key.........................................................125 
 6.1.2 Agregar y remover nodos del cluster........................................................125 
 6.1.3 La herramienta de administración C3.......................................................127 
 6.1.3.1 Instalación de C3.........................................................................128 
 6.2 Utilización del cluster Nahui.....................................................................................129 
 6.2.1 El script “Hermes”......................................................................................129 
 6.2.1.1 Utilización de “Hermes”...............................................................131 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 VII
 6.2.1.2 Código del script “Hermes”..........................................................132 
 6.2.2 El script “Apolo”..........................................................................................135 
 6.2.2.1 Utilización de “Apolo”...................................................................137 
 6.2.2.2 Código del script “Apolo”.............................................................137 
 6.3 Pruebas en el cluster Nahui.....................................................................................141 
 6.3.1 Pruebas de Rendimiento: el benchmark linpack........................................141 
 6.3.1.1 Ejecutando Linpack en un solo nodo del cluster Nahui...............141 
 6.3.1.2 Ejecutando Linpack en todo el cluster Nahui..............................143 
 6.3.2 Pruebas de Funcionamiento......................................................................146 
 6.3.2.1 Cálculo del tiempo por número de procesadores........................146 
 6.3.2.2 Cálculo del tiempo por número de historias............................... 149 
 
Conclusiones............................................................................................................................150 
 
Referencias...............................................................................................................................152 
 
Mesografía................................................................................................................................153 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 1
 
 
 
 
 
 
 
 
 
 
Capítulo 1 
 
Introducción 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 2
Capítulo 1 
Introducción 
 
“Lo que conduce y arrastra al mundo no son las máquinas sino las ideas.” 
...Víctor Hugo 
 
El origen de nuevos métodos numéricos ha propiciado que grupos de investigación 
alrededor del mundo trabajen en proyectos cada vez más interesantes y ambiciosos. Tal 
es el caso del método Monte Carlo, un método numérico que desde su creación a 
mediados del siglo pasado ha sido utilizado obteniendo buenos resultados en estudios de 
física, matemáticas, astronomía, medicina y economía, por mencionar algunos. 
Si bien el método Monte Carlo es una herramienta útil para los investigadores, también 
exige de gran capacidad en cómputo; hace algunos años esto significaba un gran 
problema para los grupos de investigación con presupuestos bajos y por consiguiente 
incapaces de adquirir una supercomputadora. En la actualidad el problema persiste pero 
la reducción en los precios de hardware durante la última década han abierto el camino a 
una ingeniosa forma de resolver los problemas sin la necesidad de adquiriruna costosa 
supercomputadora: los clusters. 
Los clusters son herramientas de cómputo que se utilizan como supercomputadoras 
personales de relativo bajo costo, y representan una solución viable a las necesidades de 
muchos grupos de investigación. El diseño y configuración de un cluster requiere de 
conocimientos teóricos y prácticos en diversas ramas de la computación: redes de 
computadoras, sistemas operativos, programación, seguridad informática etc. 
Cabe señalar que no existe un manual estricto para el diseño de clusters ya que cada uno 
está diseñado en base a un problema específico, y la gran variedad en hardware y 
software actual hace que prácticamente todos los clusters sean diferentes. Para poder 
explicar el procedimiento que se sigue para el diseño y configuración de un cluster es 
necesario entender la panorámica actual de la tecnología de clusters y la definición clara 
y concisa del problema que se desea resolver en el presente trabajo. 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 3
1.1.- Panorama Actual 
En el mundo contemporáneo, la utilización de clusters de cómputo se ha incrementado a 
medida que los precios del hardware han disminuido. Se les puede encontrar en 
universidades de todo el mundo como herramientas indispensables de diversos proyectos 
científicos, por ejemplo: 
 Predicción de desastres meteorológicos. 
 Estudio de la evolución de las galaxias. 
 Análisis criptográfico. 
 Estudio del genoma humano. 
 Análisis y generación de imágenes médicas. 
 Diseño automotriz. 
 Análisis de resistencia de materiales. 
 Estudio de moléculas biológicas. 
 Estudios de física atómica, nuclear y subnuclear. 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 4
Los clusters también son utilizados en la industria privada proporcionando excelentes 
resultados. La compañía Google es un ejemplo claro, pues su popular buscador Web se 
ejecuta en un cluster de alta disponibilidad que es capaz de responder a millones de 
peticiones por segundo. Este cluster está formado por más de 10,000 nodos ejecutando 
el sistema operativo GNU Linux. También el comercio electrónico y las bases de datos de 
alto 
rendimiento se han visto beneficiados con la utilización de la tecnología de clusters. En 
1993 se planteó la idea de crear una lista con las características de las 500 computadoras 
de mayor capacidad computacional en el mundo1, desde entonces dos veces al año esta 
lista es actualizada. El “ranking” está basado en el desempeño que tienen las 
supercomputadoras al ejecutar las pruebas linpack2. Actualmente los clusters integran la 
gran mayoría de la lista, tal como se puede apreciar en la gráfica de la figura 1.1. Es 
posible observar la aparición de los clusters en la lista alrededor del año 1999, y su 
espectacular crecimiento hasta alcanzar aproximadamente el 80% del total en 2007. 
Figura 1.1 Tipos de arquitecturas dentro del ranking mundial Top5003 
SMP = Symmetric Multi-Processing , MPP = Massive Parallel Processing, 
SIMD = Single Instruction Multiple Data 
 
 
1 Fuente: TOP500 Supercomputer sites 
2 Fuente: TOP500 The Linpack Benchmark 
3 Fuente: TOP500 November 2007 Poster 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 5
Al momento de realizar este trabajo el cluster mejor ubicado es el cluster MareNostrum 
siendo la computadora de mayor capacidad en Europa y la número 13 a nivel mundial, el 
cual cuenta con 10,240 microprocesadores (PowerPC 970 2300 MHz), 20,480 GB de 
memoria RAM, conectado por una red Myrinet y ejecutando el sistema operativo GNU 
Linux en cada uno de sus nodos. Es utilizado en investigaciones médicas alcanzando un 
rendimiento teórico total de 94,208 GFLOPS4. Esto nos demuestra que la tecnología de 
clusters puede competir con las más poderosas supercomputadoras del mercado actual. 
La UNAM no se queda atrás en temas de supercómputo, pues desde el surgimiento de 
esta tecnología varios Institutos, Facultades y por supuesto la Dirección General de 
Servicios de Cómputo Académico se han dado a la tarea de diseñar e instalar estas 
herramientas de cálculo para el uso de la comunidad universitaria. La última gran 
adquisición fue el cluster Kan Balam, que con sus 1,368 microprocesadores y 3,016 GB 
en memoria RAM es la computadora de mayor capacidad computacional de toda 
latinoamérica, alcanzando un rendimiento teórico total de 7,113 GFLOPS. Kan Balam es 
un cluster que esta integrado por nodos dedicados tal como se aprecia en la figura 1.2. 
Figura 1.2 Descripción de la estructura de la supercomputadora Kan Balam5 
 
 
4 1GFLOP = 109 operaciones de punto flotante por segundo 
5 Fuente: Supercómputo en la UNAM 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 6
Dado que Universidades, centros de investigación y compañías privadas en todo el 
mundo hacen uso de la tecnología de clusters existe un atractivo panorama laboral para 
los profesionales en tecnologías de información en materia de clusters, el cual es 
aprovechado por aquellos profesionales que toman las mejores decisiones en cuanto a 
diseño siempre teniendo en cuenta la relación costo/desempeño. 
1.2.- Definición del problema 
El Grupo de Investigación en Física Médica del Instituto de Física de la UNAM necesita de 
grandes capacidades de cálculo para realizar simulaciones de transporte de radiación en 
materia con el método Monte Carlo como parte de sus investigaciones. Debido a que la 
utilización de una computadora de escritorio de altas prestaciones resulta insuficiente para 
las tareas de cálculo intensivo requeridas, el equipo de investigación adquirió 8 servidores 
Dell Power Edge SC1425 con el objetivo de diseñar un cluster tipo Beowulf que brinde la 
suficiente capacidad en cálculo. El diseño, instalación, configuración, aseguramiento, 
administración y utilización (adaptación del cluster a sus necesidades) de dicho cluster 
son los problemas principales a los que se enfrenta el grupo de investigación. 
1.3.- Objetivos 
El objetivo principal de este trabajo ha sido el diseño, configuración y puesta en marcha 
de un cluster tipo Beowulf que proporcione al grupo de Investigación en Física Médica del 
IFUNAM suficiente poder de cálculo para realizar simulaciones con el método Monte 
Carlo. Para alcanzar el objetivo, el cluster deberá cumplir con una serie de 
requerimientos; los cuales se detallan a continuación. 
1.4.- Requerimientos Generales 
1. El software utilizado por los investigadores para realizar cálculos Monte Carlo 
deberá ser ejecutado de manera paralela en el cluster. 
 
2. Todas las decisiones en cuanto al diseño del cluster deberán ser tomadas siempre 
en base al uso que tendrá el cluster. 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 7
3. El diseño del cluster deberá tomar en cuenta cuestiones referentes a la seguridad 
informática, evitando así desde pérdidas de información hasta la inhabilitación total 
del sistema. 
 
4. La administración y utilización del cluster deberá ser sencilla y amigable al usuario 
final, haciendo que muchos de los procesos sean prácticamente transparentes. 
 
5. Toda la información generada a partir de la realización de los puntos anteriores 
deberá integrarse en el presente trabajo. Esto permitirá que el cluster sea 
reproducido de manera sencilla en caso de que sea necesaria una reinstalación o 
ampliación del mismo. Además la documentación servirá como una guía para el 
diseño de otros clusters y como un punto de partida en caso de que alguna falla se 
presente durante el ciclo de vida. 
 
1.5.- Estructura del trabajo 
El diseño de un cluster requiere de varias etapas. El presentetrabajo aborda cada una de 
ellas agrupándolas en cinco capítulos que se describen brevemente a continuación: 
Capítulo 2: Se realiza una descripción del método Monte Carlo desde sus orígenes hasta 
sus aplicaciones. También se hace mención de la importancia que tienen los números 
aleatorios en la utilización de este método. El objetivo de este capítulo es describir la 
aplicación que deberá realizar el cluster a diseñar, así como justificar su utilización en el 
proyecto de investigación. 
Capítulo 3: Enfocado al estudio de la tecnología de clusters, ¿qué son? ¿cómo 
surgieron? ¿qué ventajas y desventajas tiene su utilización? El objetivo de este capítulo 
es presentar la teoría de clusters y en especial los clusters Beowulf mostrando su historia, 
características, consideraciones de diseño y por supuesto justificar su utilización para la 
realización de cálculos Monte Carlo. 
Capítulo 4: Se presenta la forma en que se llevó a cabo el diseño, instalación y 
configuración del cluster tipo Beowulf “Nahui”. Este capítulo incluye tanto la parte teórica 
que justifica cada toma de decisión en cuanto a diseño, así como la forma en que se 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 8
realizó en el cluster del proyecto. El objetivo de este capítulo es mostrar de manera 
ordenada y justificada cada uno de los pasos que se realizaron para la instalación y 
configuración de los nodos que integran al cluster. 
Capítulo 5: Dado el incremento de amenazas informáticas de los últimos años este 
capítulo aborda el tema de la seguridad en clusters. Primero enfocado al análisis de la 
seguridad para después de manera justificada indicar que medidas de seguridad se 
tomaron en el cluster Beowulf “Nahui”. Se incluye tanto el desarrollo teórico como la 
implementación práctica realizada en el cluster del proyecto. El objetivo de este capítulo 
es el asegurar el cluster Beowulf “Nahui” de manera que tanto la información que genere 
como su misma configuración no sean susceptibles a ataques externos o internos. 
Capítulo 6: Se realiza una descripción de la manera en que se administrará y utilizará el 
cluster Beowulf “Nahui”. Además se describen las pruebas realizadas que van desde la 
ejecución del conocido benchmark linpack hasta la ejecución en paralelo del programa 
PENELOPE encargado de realizar simulaciones Monte Carlo con ayuda de middleware a 
la medida escrito para este proyecto. El objetivo de este capítulo es el comprobar que el 
cluster tenga un funcionamiento que satisfaga las necesidades del Grupo de Investigación 
en Física Médica del IFUNAM. 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 9
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 2 
 
El Método Monte Carlo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 10
 
 
Capítulo 2 
El Método Monte Carlo 
 
“El azar favorece a una mente bien entrenada”... Louis Pasteur 
 
 
Desde hace ya varias décadas los científicos se han enfrentado con complejos problemas 
matemáticos al estudiar los fenómenos físicos que nos rodean. El estudio de la 
hidrodinámica, la conducción del calor y el electromagnetismo, por mencionar algunos 
campos, tuvieron un buen desarrollo con el uso de las ecuaciones diferenciales parciales 
para la resolución de sus problemas, hasta que éstos llegaron a un grado de dificultad 
bastante elevado. Fue entonces cuando se comenzó a emplear un método numérico que 
consistía en la simulación de variables aleatorias y el cual brindaba buenos resultados, 
método que llegaría a conocerse mucho tiempo después como el método Monte Carlo. 
 
Dado que el presente trabajo está enfocado al diseño e instalación de un cluster de 
cómputo para la realización de cálculos Monte Carlo, es necesario comprender la forma 
en que el Grupo de Investigación en Física Médica del IFUNAM lo aplica en la resolución 
de ciertos problemas, y más importante aún es el comprobar que la utilización de un 
cluster verdaderamente traerá consigo los beneficios que se esperan. A lo largo de este 
capítulo se expondrá desde el origen de este método numérico hasta llegar a su 
descripción y aplicaciones. Todo lo anterior con el objetivo primordial de entender y 
corroborar la necesidad de los investigadores de contar con una herramienta de 
supercómputo. 
 
 
 
 
 
2.1- Historia 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 11
Es curioso que la base teórica del método Monte Carlo fuera bien conocida y utilizada 
mucho antes de que se le diera nombre. Un ejemplo claro se presenta en el año de 1777 
cuando el naturalista francés Georges Louis Leclerc, Conde de Buffon, ideó una nueva 
forma para calcular el número π por medio de una gran cantidad de lanzamientos de una 
aguja sobre un papel con rectas paralelas distanciadas entre sí de manera uniforme 
(experimento de la aguja de Buffon [Mathai, 1999]). Sin embargo el verdadero potencial 
del método Monte Carlo se logró explotar con la aparición de las primeras calculadoras 
mecánicas y por supuesto tiempo después con el desarrollo de las computadoras. Al 
principio de la década de 1930 el científico Enrico Fermi al estar estudiando la moderación 
de neutrones desarrolló el método Monte Carlo que se utiliza en la actualidad, aunque en 
ese momento no le dio la importancia como para publicarlo o darle un nombre. Fermi 
simplemente utilizaba este muestreo estadístico para resolver los problemas que se le 
presentaban y sorprender a sus colegas por las buenas predicciones que realizaba de sus 
experimentos, todo con la ayuda de su máquina sumadora mecánica. [Metropolis, 1987] 
 
En la década de 1940 los científicos John Von Newman, Stanislaw Ulam y Nicholas 
Metropolis trabajaban en el proyecto Manhattan. Uno de los problemas con los que se 
enfrentaron era el de modelar la difusión de neutrones. La resolución de un problema de 
esa naturaleza por medio de ecuaciones algebraicas es demasiado complejo, por lo que 
los científicos tuvieron que recurrir a la utilización de métodos numéricos con un 
acercamiento totalmente nuevo: evaluaban grandes cantidades de datos aleatorios en las 
complejas ecuaciones y los resultados obtenidos eran analizados con estadística, es decir 
utilizaban el método Monte Carlo que en ese tiempo no contaba con nombre. Cabe 
señalar que debido a la falta de computadoras electrónicas de esa época (ENIAC sería 
terminada hasta 1946 y COLOSSUS se utilizaba para descifrar mensajes alemanes nazis) 
los diversos cálculos tuvieron que ser realizados por personas con calculadoras 
mecánicas. Al final los resultados obtenidos sirvieron para la construcción de la bomba 
atómica y con ello la terminación de la Segunda Guerra Mundial. 
 
 
 
 
 
Tiempo después del final de la guerra Von Newman, Ulam y Metropolis continuaron con 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 12
su interés en la aplicación del método que utilizaron en el proyecto Mahattan. En 1947 
tuvieron la oportunidad de utilizar la computadora ENIAC para resolver una variedad de 
problemas que involucraban el transporte de neutrones y volvieron a corroborar que su 
método arrojaba excelentes resultados. Fue en el diario de la Asociación Estadística de 
América de Septiembre de 1949 cuando Metropolis y Ulam publicaron el artículo titulado 
“El Método Monte Carlo” nombrando por primera vez a este método. Fue nombrado de 
esa manera en referencia al casino de Monte Carlo por ser “la capital del juego de azar” y 
debido a que la ruleta es un buen generador de números aleatorios. [Sóbol, 1983] 
 
2.2- Descripción del Método Monte Carlo 
A continuación se presenta un ejemplo sencillo que permite entender las características 
principales del método Monte Carlo.Suponga que se desea calcular el área de la figura 
plana A y considere que toda la figura está comprendida dentro de un cuadrado de área 
igual a un metro cuadrado tal como se muestra en la figura 2.1. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 2.1 Figura plana cuya área se necesita calcular. 
Ahora imagine que la figura anterior es colocada sobre un muro y sirve de blanco a un 
tirador que, situado a cierta distancia, dispara N veces apuntando al centro del cuadrado, 
obteniéndose la siguiente figura: 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 2.2 Figura plana con disparos. 
 
Sea N' el número de puntos que aparecen dentro de la figura A, entonces el área de A es 
aproximadamente igual al cociente N'/N. Para el caso particular de este ejemplo tenemos 
que: 
 
14 disparos dentro de la figura / 40 disparos realizados = 0.35 metros cuadrados 
 
Es decir, se obtiene un resultado bastante aproximado siendo que el área real de la figura 
es de 0.3625 metros cuadrados. 
 
 
En el ejemplo anterior, por simple que parezca, se hizo uso del método Monte Carlo para 
la resolución del problema. El algoritmo del método Monte Carlo tiene en principio una 
estructura muy sencilla: 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 14
 Se define un dominio de posibles entradas (en el ejemplo anterior el dominio está 
dado por el área en la que es posible realizar disparos, es decir el área del 
cuadrado). 
 Se realizan N pruebas aleatorias e independientes (en el ejemplo anterior se le 
dispara al cuadrado varias veces y se comprueba si se acertó al área A). 
 Se calcula la media de los resultados de todos los experimentos y se obtiene un 
resultado (en el ejemplo anterior esto se realiza al calcular el cociente N'/N). 
 
A pesar de que la aplicación del método en el ejemplo anterior es bastante sencilla 
existen ciertos factores que se deben tomar muy en cuenta. Retomando el ejemplo 
anterior uno se podría preguntar lo siguiente: 
 
 ¿Cuántos disparos se deben realizar? Todo dependerá de la exactitud que se 
espere de los resultados; por regla general el error del método Monte Carlo es 
proporcional a la magnitud de ND donde D es una constante y N el número de 
pruebas realizadas. Esta fórmula permite observar que para disminuir el error en 
10 veces es necesario aumentar el número de pruebas en 100 veces, de ahí que 
el método se haya visto altamente beneficiado con el desarrollo de las 
computadoras. Volviendo al ejemplo anterior, a mayor número de disparos se 
obtendrá un mejor resultado. 
 ¿Que tanto afecta la destreza del tirador? Afecta los resultados en gran 
medida ya que un tirador experimentado acertaría en el centro del cuadrado 
prácticamente en todos sus disparos modificando el resultado del área A 
radicalmente. Esto es debido a que el tirador funciona como el generador de 
números aleatorios y en el caso de un tirador experimentado prácticamente no hay 
aleatoriedad en sus disparos. Este simple ejemplo muestra que para poder hacer 
uso del método Monte Carlo en cualquier problema es necesario contar con un 
buen generador de números aleatorios. De lo contrario los resultados obtenidos 
serán incorrectos. 
 
2.2- Aplicaciones del método Monte Carlo 
 
En la práctica el método Monte Carlo no es utilizado para el cálculo de áreas de figuras 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 15
planas ya que existen métodos más precisos. El método Monte Carlo permite simular 
procesos que dependan de factores aleatorios y, como se demostró en el ejemplo anterior, 
también permite la resolución de problemas que no tienen una relación con cuestiones 
aleatorias por medio de un modelo probabilístico artificial. Dentro de las aplicaciones en 
las que se suele utilizar el método Monte Carlo se tienen: diseño de reactores nucleares, 
evolución estelar, prospecciones en explotaciones petrolíferas, criptología, física de 
materiales, radioterapia contra el cáncer, crecimiento de bosques, comportamiento de las 
acciones en la bolsa de valores, estudios de contaminación etc. 
 
El Grupo de Investigación en Física Médica del IFUNAM1 hace uso del método Monte 
Carlo para simular el transporte de radiación en materia, entendiéndose esto como la 
simulación de la penetración de fotones, electrones y positrones de alta energía en un 
cierto material. Esta simulación es bastante compleja, ya que las partículas al penetrar la 
materia sufren múltiples interacciones por medio de las cuales, además de transferir su 
energía a los átomos y moléculas del material, también producen una cascada de 
partículas secundarias que también interactuan con el medio de la misma forma que las 
partículas que les dieron origen [Salvat et al., 2003]. Así, con el paso del tiempo, la 
energía es progresivamente depositada en el medio mientras que el remanente es 
compartido por una gran número de partículas. Una descripción fiable de la evolución de 
estas cascadas de partículas juega un papel fundamental en los campos de la dosimetría 
y la radioterapia. Antes de la creación de las primeras computadoras las simulaciones 
estaban ligadas a la utilización de la ecuación de transporte de Boltzmann [Metropolis y 
Ulam, 1949] pero la aparición conjunta de integrales y derivadas en ecuaciones de 8 
variables hacían de éste uno de los problemas más complejos de la física matemática. Es 
por eso que en la actualidad la mejor alternativa para resolver estos problemas es con la 
utilización del Método Monte Carlo. 
 
 
 
 
2.4- El código PENELOPE 
 
Para la realización de las simulaciones del transporte de radiación en materia el Grupo de 
 
1 Fuente: http://www.fisica.unam.mx/fismed 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 16
Investigación en Física Médica del IFUNAM utiliza, entre otros, el conjunto de programas 
y subrutinas PENELOPE (acrónimo de las palabras en inglés PENetration and Energy 
Loss of Positrons and Electrons) desarrollado por el equipo del profesor F. Salvat de la 
Facultad de Ciencias Físicas de la Universidad de Barcelona. Este programa escrito en el 
lenguaje Fortran77 (forma estándar ANSI/ISO) permite la simulación del transporte de 
cascadas de electrones, positrones y fotones en casi cualquier medio material, ya sea 
sólido, gaseoso o líquido. 
 
PENELOPE no puede operar por sí mismo ya que necesita que el usuario le proporcione 
un programa principal con las características del problema específico a resolver, el cual 
debe hacer llamadas a las subrutinas de PENELOPE. Esto permite al usuario realizar 
simulaciones sin la necesidad de conocer muchos de los intrincados aspectos teóricos de 
la teoría de transporte. También es necesario especificar la geometría y el material del que 
está compuesto el objeto a irradiar la cual se especifica por medio de dos archivos. 
 
El programa PENELOPE es distribuido en un archivo comprimido que contiene lo 
siguiente: 
 
Subdirectorio FSOURCE 
 PENELOPE.F: subrutina de simulación. 
 PENGEOM.F: subrutina de manejo de geometrías. 
 PENVARED.F: subrutina de reducción de varianza. 
 MATERIAL.F: programa que genera archivos de materiales. 
 TABLES.F: programa que tabula las secciones eficaces (probabilidades) de la 
interacción de partículas en un material. 
 
 
 
 
 
Subdirectorio PENDBASE 
 Contiene la base de datos de PENELOPE, la cual esta integrada por 465 archivos 
con secciones eficaces de diversos elementos, compuestos y mezclas. 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 17
 
Subdirectorio OTHER 
 GVIEW: contiene visualizadores de geometrías, así como definiciones de 
geometríasde ejemplo. 
 SHOWER: binario que realiza el transporte de electrones y fotones en capas 
creado con propósitos de enseñanza y solamente es posible ejecutarlo en el S.O. 
Windows. 
 EMFIELDS: contiene la subrutina PENFIELD.F la cual permite realizar 
simulaciones de transporte bajo el efecto de campos magnéticos estáticos y 
campos eléctricos. 
 PLOTTER: contiene scripts de GNUPLOT para crear gráficas de las simulaciones. 
 
 
Subdirectorio EXAMPLES 
 PENSLAB.F: programa principal para el transporte de partículas en capas. 
 PENSLAB.IN: archivo de entrada para ejecutar PENSLAB.F 
 AL.MAT: archivo de datos de material para ejecutar PENSLAB.F 
 PENCYL.F: programa principal para el transporte de partículas en geometrías 
cilíndricas de muchas capas. 
 PENCYL.IN: archivo de entrada para ejecutar PENCYL.F 
 PENDOSES.F: programa principal para el transporte de partículas en geometrías 
cuádricas arbitrarias. 
 PENDOSES.IN: archivo de entrada para ejecutar PENDOSES.F 
 PENDOSES.GEO: archivos de geometría para PENDOSES.F 
 NAIAL.MAT: archivos de materiales para PENCYL.F y PENDOSES.F 
 TIMER.F: subrutina genérica de reloj, compatible con el compilador g77. 
 NOTIMER.F: subrutina alternativa de reloj, para utilizarse con otros compiladores. 
 
2.5- Generadores de Números Aleatorios 
Hasta ahora se ha hablado de lo importante que es la utilización de los números aleatorios 
para la resolución de problemas por medio del método Monte Carlo, pero desde el inicio 
de esta práctica hasta la actualidad se ha presentado el problema de ¿cómo generar 
estos números? Las formas en la que se pueden generar números aleatorios y pseudo-
aleatorios son: 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 18
 
 
 
 
Generadores de Números 
Aleatorios Verdaderos 
(TRNGs) 
 
Relacionados a condiciones iniciales: lanzamiento 
de una moneda o de un dado, utilización de una ruleta, 
juegos de cartas, etc. 
 
Relacionados al ambiente: obteniendo datos a partir 
de las condiciones atmosféricas, decadencia de 
materiales radioactivos, ruido térmico de dispositivos, 
movimiento browniano, lámparas de lava, etc. 
 
 
 
 
Generadores de Números 
Pseudo-Aleatorios 
(PRNGs) 
 
 
Intrínsecamente generados por el sistema: se basan 
en la utilización de fórmulas matemáticas o de tablas 
precalculadas para la generación de números que 
aparentan ser aleatorios llamados números pseudo-
aleatorios. 
 
 
 
 
Después de observar la tabla anterior la interrogante que surge es ¿qué tipo de generador 
utilizar?, la siguiente tabla muestra las características principales que presentan cada uno 
de los generadores: 
Generadores de Números 
Aleatorios Verdaderos 
Generadores de Números 
Pseudo-Aleatorios 
Eficiencia pobre Eficiencia excelente 
No presenta periodicidad Sí presenta periodicidad 
No es determinístico Sí es determinístico 
Aplicaciones en: loterías, dados, apuestas y 
juegos de azar en general, además de 
servir como generador de llaves de cifrado.
Aplicaciones en: simulación y modelado 
principalmente. 
El software PENELOPE hace uso del generador de números pseudo-aleatorios integrado 
en el lenguaje Fortran77 por medio de la función RAND (con una periodicidad de 1018), 
cuyo código se muestra a continuación: 
 
C ********************************************************************* 
C FUNCTION RAND 
C ********************************************************************* 
C This is an adapted version of subroutine RANECU written by F. James 
C (Comput. Phys. Commun. 60 (1990) 329-344), which has been modified to 
C give a single random number at each call. 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 19
C 
C The ’seeds’ ISEED1 and ISEED2 must be initialized in the main program 
C and transferred through the named common block /RSEED/. 
C 
 IMPLICIT DOUBLE PRECISION (A-H,O-Z), INTEGER*4 (I-N) 
 PARAMETER (USCALE=1.0D0/2.0D0**31) 
 COMMON/RSEED/ISEED1,ISEED2 
C 
 I1=ISEED1/53668 
 ISEED1=40014*(ISEED1-I1*53668)-I1*12211 
 IF(ISEED1.LT.0) ISEED1=ISEED1+2147483563 
C 
 I2=ISEED2/52774 
 ISEED2=40692*(ISEED2-I2*52774)-I2*3791 
 IF(ISEED2.LT.0) ISEED2=ISEED2+2147483399 
C 
 IZ=ISEED1-ISEED2 
 IF(IZ.LT.1) IZ=IZ+2147483562 
 RAND=IZ*USCALE 
C 
 RETURN 
 END 
 
En el código se observa que antes de llevar a cabo una simulación es necesario 
especificar dos valores semilla en el archivo de datos del programa, estos valores 
permitirán reproducir con exactitud la simulación en caso de ser necesario. 
2.6- Cálculo de π 
A manera de ejemplo ilustrativo se realizó el cálculo aproximado del número π haciendo 
uso del método Monte Carlo. Se utilizó el programa simple-pi.c2 cuyo código fuente se 
obtuvo de la librería SPRNG2.03 y el programa fue ejecutado utilizando un generador de 
fibonacci retardado4 en una computadora portátil con un procesador Intel Pentium 4 a 2.0 
GHz y 512 MB en RAM. Los resultados obtenidos fueron los siguientes: 
 
 
 
2 Fuente: SPRNG Examples 
3 Fuente: Scalable Parallel Random Number Generators 
4 Fuente: SPRNG Generators 
 Números Valor de π calculado Error Error 
Tiempo 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 20
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 2.3 A medida que aumentan los números pseudo-aleatorios empleados en la 
simulación Monte Carlo el valor de π calculado se aproxima más al valor real. 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 21
 
 
 
 
 
 
 
Capítulo 3 
 
La Tecnología de Clusters de Cómputo 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 22
 
 
 
Capítulo 3 
La Tecnología de Clusters de Cómputo 
 
 
"Divide et vinces", frase célebre de Julio César que significa "divide y vencerás", nos 
proporciona una buena estrategia para resolver problemas complejos capaces de ser 
divididos en subproblemas más sencillos. Es de esta manera como las 
supercomputadoras han alcanzado su popularidad en el mundo de las ciencias y la 
industria privada, dividiendo programas complejos y ejecutando cada una de sus partes 
en varios procesadores para obtener resultados en un menor tiempo. 
 
El gran inconveniente que presenta esta práctica es que la adquisición de una 
supercomputadora (precios que rebasan el millón de dólares) supera por mucho el 
presupuesto de la gran mayoría de los grupos de investigación. Es así como surge la 
tecnología de clusters de computadoras como una solución de relativo bajo costo a las 
necesidades de cómputo actuales, todo enfocado en la idea: “Si no puede comprar una 
supercomputadora entonces... ármela usted mismo”. Bajo el simple concepto de que un 
cluster es una supercomputadora de relativo bajo costo diseñada por el mismo usuario se 
puede continuar con una definición más formal: 
 
Un cluster es un conjunto de PC's o estaciones de trabajo (llamados nodos) que se 
conectan por alguna tecnología de red y trabajan como un solo recurso integrado de 
cómputo con el objetivo de satisfacer alguna necesidad de: alta disponibilidad, balanceo 
de carga, alto rendimiento o alguna combinación de las anteriores inicialmente diseñados 
y armados bajo el esquema “hágalo usted mismo” aunque en la actualidad se puede optar 
por la contratación de compañías especializadas. [Gropp et al., 2003] 
 
 
 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 23
 
3.1- Historia 
La idea de enlazar varias computadoras con un propósito común no es nueva. En las 
décadas de los 50's y 60's la Fuerza Aérea de los Estados Unidos estableció lared de 
defensa aérea más grande hasta ese momento: el sistema SAGE. Este sistema 
coordinaba varias estaciones de radar con el objetivo de detectar amenazas aéreas 
(aviones bombarderos soviéticos, misiles intercontinentales etc.) y guiar misiles para su 
intercepción y destrucción. SAGE estuvo en funcionamiento durante 20 años (1963-1983) 
bajo las órdenes del Comando de Defensa Aeroespacial de Norte América (NORAD). 
 
El sistema SAGE (Semi-Automatic Ground Enviroment) estaba conformado por 22 centros 
de control instalados en bunkers altamente reforzados a lo largo de los Estados Unidos 
(uno de ellos dentro de la montaña Cheyenne en Colorado) y un centro en Canadá. Cada 
centro de control contaba con 2 computadoras SAGE (una se utilizaba como respaldo en 
caso de mal funcionamiento). Cada computadora SAGE pesaba 250 toneladas y estaba 
integrada por 60,000 tubos de vacío, 175,000 diodos y 13,000 transistores ocupando un 
área de 20,000 pies cuadrados y requería de 3 mega watts para su funcionamiento. Los 
23 centros estaban conectados por cableado telefónico de larga distancia. De esta forma 
se logró que la información recopilada por los 23 centros estuviera disponible en todo el 
sistema. Mucha de la gente que trabajó en este sistema fue tan influenciada por su 
funcionamiento que después trabajarían en el desarrollo de ARPANET, la red de 
computadoras que evolucionaría en la INTERNET actual. 
Figura 3.1 Sala de operaciones del sistema de defensa SAGE1. 
 
1 Fuente: Computer Museum 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 24
Fue en el año de 1984 cuando la compañía DEC utilizó por primera vez el término 
“cluster” para representar un conjunto coordinado de computadoras independientes 
enfocadas a una tarea específica y lograrían la atención del mercado con el lanzamiento 
de sus VAXclusters, sistemas conformados por la conexión de varias minicomputadoras 
VAX funcionando en conjunto tal como se puede apreciar en la figura 3.2. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.2 Estructura del VAXcluster2 
 
El desarrollo más significativo y recordado para la tecnología de clusters se llevaría a 
cabo en 1993 cuando el Centro de vuelos espaciales Godarth de la NASA trabajó en el 
proyecto “Ciencias de la Tierra y el Espacio” a cargo de Jim Fisher. El centro de cómputo 
del proyecto contaba con computadoras paralelas Cray, MasPar y Convex, suficiente 
capacidad computacional para realizar simulaciones en un tiempo aceptable dada la 
época. El principal problema era que los resultados obtenidos eran demasiado grandes 
para poder analizarlos desde una estación de trabajo científica. Debido a ésto las 
supercomputadoras no sólo se utilizaban para generar los resultados sino también para 
organizarlos y analizarlos, propiciando un desperdicio en posibles tiempos de simulación. 
 
2 Fuente: VAXclusters “A Closely-Coupled Distributed System” 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 25
Fue entonces cuando Jim Fisher comprendió que se necesitaba una especie de 
supercomputadora personal y decidió que su diseño y creación sería otra meta de su 
proyecto. En esa época el Dr. Thomas Sterling trabajaba en el proyecto a cargo de Jim 
Fisher y fue a él a quién se le ocurrió la idea de apilar una cierta cantidad de 
computadoras de bajo costo para así obtener mayores capacidades de cómputo. Después 
de plantear su propuesta (aún sin saber como lo lograría) ésta fue aceptada y recibió los 
fondos necesarios para empezar a trabajar; el proyecto necesitaba un nombre. 
 
El Dr. Sterling quería un nombre que diera cierto significado al proyecto, algo que se 
asemejara a la historia de David y Goliath, haciendo analogía a su pequeña 
supercomputadora compitiendo contra las supercomputadodras comerciales de la época. 
Fue entonces cuando recordó un poema de la literatura inglesa de la Edad Media en la 
que un valiente guerrero llamado Beowulf salva a su pueblo al derrotar al terrible 
monstruo Grendel. El nombre Beowulf no convencía al Dr. Sterling por lo que lo desechó 
como posibilidad. Otras opciones surgieron entre ellas “pilas de computadoras 
personales”. Un día el Dr. Sterling recibió una llamada en la cual se requería el nombre del 
proyecto con urgencia, al no haber mejores opciones al final se eligió el nombre Beowulf. 
En las propias palabras del Dr. Sterling, él menciona haber dado el nombre Beowulf al 
proyecto pero no al popular tipo de clusters de alto rendimiento que se derivarían a partir 
del mismo. Mucha gente le adjudica este nombramiento pero la realidad es otra, pues se 
desconoce quién fue el primero en llamarlos Clusters Beowulf. 
 
El proyecto se puso en marcha y se adquirió todo lo necesario; fue entonces cuando 
surgió el primer problema: las velocidades de comunicación entre los nodos eran 
demasiado lentas (en ese tiempo los switches eran costosos y se trabajaba con hubs). 
Fue Don Becker (amigo y colega del Dr. Sterling) quien contribuyó a resolver el problema 
de las velocidades por medio de la unión de canales (channel bonding), además de que 
apoyó la utilización del sistema operativo GNU Linux y contribuyó a su desarrollo como 
sistema operativo programando diversos controladores y aportando código al desarrollo 
del sistema. 
 
 
Al final el proyecto fue un éxito; con sólo $40,000 dólares se instaló y configuró el cluster 
llamado Wiglaf conformado por 16 computadoras 80486 a 100MHz cada una con 32 MB 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 26
en RAM y un Gigabyte en disco duro. Ejecutando el sistema operativo GNU LINUX, todas 
conectadas por medio de una red Ethernet 10-Base-T con unión de canales, se 
alcanzaron velocidades de hasta 70 Mflops. La era del supercómputo de bajo costo había 
comenzado y desde entonces cientos de universidades han recurrido a los clusters como 
una útil herramienta de investigación. 
 
3.2- Aplicaciones de los Clusters 
Existen una gran cantidad de problemas que sería imposible afrontar sin la utilización de 
las supercomputadoras; entre ellos tenemos3: 
 Modelado Climático: Millones de datos obtenidos vía satélite son simulados en 
supercomputadoras con el objetivo de poder hacer predicciones sobre los posibles 
escenarios climáticos de los próximos años. 
 Fusión Controlada: Con el objetivo de resolver el problema de la energía mundial 
se realizan simulaciones de fusiones termonucleares en supercomputadoras. Esto 
permite a los investigadores aprender los complejos comportamientos de la fusión 
en un ambiente totalmente seguro. 
 Defensa Nacional: Claves ultra secretas y vitales para la seguridad nacional de 
un país son cifradas y descifradas solamente por medio del uso de 
supercomputadoras. 
 Nanotecnología: A medida que la electrónica digital se acerca cada vez más a las 
escalas atómicas, los diseñadores necesitan modelar estos nuevos circuitos con el 
uso de supercomputadoras. 
 Medicina: El entendimiento del complejo plegamiento de las proteínas y otros 
tipos de estudios a nivel molecular para la fabricación de medicamentos son 
posibles gracias a la utilización de supercomputadoras. 
 Astronomía: El modelado de una galaxia con 100 billones de estrellas sólo es 
posible con el uso de supercomputadoras. 
 Ingeniería avanzada: La simulación del comportamiento de nuevos materiales a 
una microescala solamente es posible con el uso de supercomputadoras. 
 
3.3- Tipos de Clusters 
Hace algunos años el término de cluster era asociado solamente a computadoras 
 
3 Fuente: Scientific American “How to Build a HYPERcomputer” 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos MonteCarlo 
 
 27
encargadas de resolver problemas complejos de las ciencias siempre enfocados al 
cálculo intensivo pero en la actualidad la tecnología de clusters es utilizada para 
satisfacer diversas necesidades. 
 
3.3.1- Clusters de Balanceo de Carga 
Son clusters que distribuyen su carga de trabajo a través de múltiples nodos. Todos los 
nodos son capaces de responder a peticiones externas debido a que ejecutan los mismos 
programas y en caso de que se presente la falla de un nodo las peticiones son 
distribuidas entre los nodos activos restantes. Este tipo de clusters tiene la ventaja de que 
los nodos pueden estar instalados en distintos puntos geográficos además de que su 
instalación es relativamente fácil. La tecnología Web se ha visto altamente beneficiada 
con la utilización de clusters de balanceo de carga para satisfacer a todas las peticiones 
en sus servidores. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.3 Cluster de balanceo de carga 
 
 
3.3.2- Clusters de Alta Disponibilidad 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 28
Son clusters utilizados en aplicaciones de misión crítica; están compuestos por varios 
nodos donde un grupo de nodos principal se encarga de brindar algún servicio mientras 
que un segundo grupo de nodos monitorea el correcto funcionamiento del grupo de nodos 
principal. Así cuando el grupo principal falle, el segundo grupo entrará como un 
reemplazo inmediato evitando así la suspensión del servicio. Su utilización en conjunto 
con los clusters de balanceo de carga es bastante aplicada. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.4 Cluster de alta disponibilidad 
 
 
 
 
 
 
3.3.3- Clusters de Alto Rendimiento 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 29
Son clusters utilizados para resolver problemas que requieren de grandes capacidades de 
cálculo. Están compuestos por varios nodos que ejecutan código de manera paralela con 
el objetivo de obtener resultados en un menor tiempo. Es el tipo de cluster más popular y 
utilizado desde la aparición de los clusters tipo BEOWULF. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.5 Cluster de alto rendimiento 
 
 
 
 
 
 
3.4 Estructura de los Clusters de Alto Rendimiento 
Cuando se habla de la estructura de un cluster de alto rendimiento esto se refiere 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 30
principalmente a la toma de dos decisiones importantes: 
 
1. ¿Que función tendrá cada uno de los nodos que integran el cluster? 
 
2. ¿Cómo estarán conectados los nodos dentro de la red de datos? 
 
Para la construcción de un cluster de alto rendimiento existen tres tipos de estructuras: 
 
3.4.1 Estructura de cluster simétrico 
En esta estructura cada nodo se comporta de manera individual (los nodos también son 
utilizados para actividades ajenas a las del cluster). Su instalación es bastante sencilla ya 
que solamente se requiere conectar varias computadoras a una red de datos y ejecutar 
algún software específico de clusters tal como se muestra en la siguiente figura: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.6 Estructura de cluster simétrico. 
 
3.4.2 Estructura de cluster asimétrico 
En esta estructura existe un nodo principal o maestro que es el encargado de 
proporcionar la comunicación de los usuarios con los demás nodos esclavos (nodos 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 31
dedicados solamente al cluster). La instalación de los nodos esclavos es bastante sencilla 
a comparación de la del nodo principal ya que este debe contar con fuertes medidas de 
seguridad dados los servicios que proporciona. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.7 Estructura de cluster asimétrico. 
 
 
 
 
 
 
 
3.4.3 Estructura de cluster expandido 
Esta estructura es parecida a la de cluster asimétrico pero con la marcada diferencia de 
que el nodo principal ya no es el encargado de proporcionar todos los servicios del 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 32
cluster, es decir que puede haber nodos servidores tal como se muestra en la siguiente 
figura: 
 
 
Figura 3.8 Estructura de cluster expandido. 
 
 
 
 
 
3.5 Arquitectura de los Clusters de Alto Rendimiento 
La arquitectura de un cluster de alto rendimiento está integrada por cinco capas: la capa 
de hardware compuesta por todos los componentes físicos que integran al cluster, la capa 
de protocolo de comunicación encargada de todas las comunicaciones entre nodos y con 
redes externas, la capa de sistema operativo encargada de administrar y controlar los 
recursos del sistema, la capa de middleware encargada de la ejecución de aplicaciones 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 33
en paralelo en los nodos del cluster, y la capa de aplicación integrada por los programas 
que se paralelizan con el objetivo de obtener resultados en un menor tiempo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.9 Arquitectura de un cluster de alto rendimiento.4 
 
La elección de los elementos que integran cada una de las capas definirá el desempeño 
final que tendrá un cluster al ejecutar aplicaciones. Antes de poder diseñar un cluster de 
alto rendimiento es necesario desarrollar y entender cada una de las capas tal como se 
presenta a continuación: 
 
 
3.5.1 Hardware 
El hardware de un cluster de cómputo es el conjunto de componentes físicos que integran 
a esta tecnología. Una buena elección de hardware es crucial para el desempeño final 
que tendrá el cluster. A continuación se presenta una breve descripción del principal 
hardware que integra los nodos de un cluster de alto rendimiento. 
 
 
4 Fuente: Considering Middleware Options in High-Performance Computing Clusters. 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 34
3.5.1.1 Microprocesador 
El microprocesador es el componente encargado de interpretar datos y ejecutar las 
instrucciones de los programas, también coordina a los demás componentes de una 
computadora. El microprocesador es comúnmente llamado el cerebro de la computadora 
pero dada la incapacidad de este para “pensar” una descripción más acertada sería decir 
que el microprocesador es una calculadora extremadamente veloz (miles de millones de 
operaciones por segundo) con la capacidad de realizar operaciones aritméticas simples y 
almacenar sus resultados. Las características que se deben tomar en cuenta para su 
elección se presentan a continuación: 
 
1) La arquitectura del set de instrucciones (ISA por sus siglas en inglés): se 
refiere a la estructura lógica de las instrucciones que un microprocesador puede 
entender y ejecutar. El término agrupa todo lo referente a programación con 
respecto al microprocesador incluyendo los registros, modos de direccionamiento, 
tipos de datos, manejo de interrupciones y excepciones, arquitectura de la 
memoria y por supuesto las instrucciones. Dentro de las características más 
importantes de la ISA tenemos las siguientes: 
 
 Los tipos de operaciones que es capaz de realizar. 
 El tipo y tamaño de los operandos que puede manejar. 
 El lugar en el que se almacenan los operandos. 
 El número de operandos que se pueden manejar dentro de 
una misma instrucción. 
 
 Algunos ejemplos de ISA implementadas en hardware son: Alpha, Power, SPARC, 
 IA-64 y la tan conocida x86 que incluye a IA-32 (i386, Pentium, Athlon). 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 35
 
Figura 3.10 Tecnologías de chips utilizadasen supercomputadoras 
desde 1993 hasta el año 20075. 
 
2) La microarquitectura: se refiere a las técnicas de diseño particulares de cada 
compañía para implementar una arquitectura de set de instrucciones. Esto quiere 
decir que una misma arquitectura de set de instrucciones puede ejecutarse en dos 
microarquitecturas totalmente diferentes. 
 
3) La velocidad del ciclo de reloj: se refiere a la frecuencia a la que el 
microprocesador puede ejecutar instrucciones por segundo, por ejemplo: un 
microprocesador a 3 GHz puede ejecutar 3 mil millones de operaciones por 
segundo, aunque esta frecuencia puede variar dependiendo de la aplicación que el 
procesador ejecute. 
 
 
 
4) El rendimiento teórico: se refiere a la cantidad de operaciones de punto flotante 
 
5 Fuente: TOP500 November 2007 Poster 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 36
que el microprocesador puede realizar por segundo (FLOPS por sus siglas en 
inglés). Esta medida está determinada por el trabajo conjunto de: el set de 
instrucciones, la velocidad del ciclo de reloj y los componentes que integran al 
mismo microprocesador. El rendimiento teórico se obtiene mediante la ejecución 
de algún software de pruebas (benchmark). Cabe señalar que este rendimiento es 
meramente teórico ya que prácticamente nunca se alcanza en la ejecución de 
una aplicación real. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.11 Rendimiento teórico de las supercomputadoras desde 1993 hasta el año 20076. 
 
5) La memoria caché del microprocesador: se refiere a una memoria volátil de 
poca capacidad de almacenamiento pero extremadamente veloz que se encuentra 
dentro del mismo microprocesador. Su función es la de almacenar ciertos datos 
que son utilizados con una mayor frecuencia por el microprocesador. Esto evita 
que el microprocesador tenga que esperar los datos de la memoria RAM (la cual 
trabaja a una frecuencia mucho menor) cada vez que necesite realizar una 
operación. Existen dos tipos principales de memoria caché en el microprocesador: 
la reducida memoria caché nivel 1 (interna al microprocesador) la cual funciona a 
 
6 Fuente: TOP500 November 2007 Poster 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 37
la misma frecuencia que el microprocesador y la memoria caché de nivel 2 
(externa al microprocesador de tipo SRAM) la cual tiene mayor capacidad de 
almacenamiento pero una menor velocidad. 
 
3.5.1.2 Memoria de acceso aleatorio 
Conocida simplemente como memoria RAM (Random Access Memory) es la memoria que 
almacena instrucciones y datos de manera temporal (es memoria volátil) para realizar 
tareas dentro de una computadora. El objetivo de su utilización es la reducción del tiempo 
de ejecución de los programas ya que el microprocesador tarda un menor tiempo en 
extraer datos de la memoria RAM que del disco duro. La memoria RAM se divide en dos 
tipos principales: 
 
 Memoria de Acceso Aleatorio Estática (SRAM): es una memoria fabricada a 
partir de componentes que no requieren de refresco logrando así que la memoria 
pueda trabajar casi a la misma velocidad del microprocesador. Es utilizada 
principalmente como memoria caché L2 debido a que supera por mucho en 
velocidad a la memoria DRAM. Se caracteriza por ser una memoria de muy poca 
capacidad de almacenamiento (valores típicos varían entre 256 KB y 1 MB) debido 
a: su costo, consumo de energía, tamaño de componentes y calor generado, 
cifras que superan por mucho a los de la DRAM. 
 
 Memoria de Acceso Aleatorio Dinámica (DRAM): es una memoria fabricada a 
partir de transistores acoplados con condensadores siendo éstos los que 
dependiendo de su estado (cargado o descargado) representan los unos y ceros a 
almacenar. Debido a la presencia de la corriente de fugas, con el paso del tiempo 
los condensadores cargados (representando “unos”) se descargarían poco a poco 
hasta llegar a un nivel en el que el sistema los considerara como descargados 
(representando “ceros”) afectando gravemente la información almacenada 
originalmente. Para resolver este problema se agregó un circuito encargado de 
recargar periódicamente a todos los condensadores, a este proceso se le llama 
refresco. Es una memoria mucho más lenta a comparación de la SRAM pero sus 
bajos costos en fabricación la han convertido en la memoria más comercial y 
utilizada. 
 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 38
Dentro de las características que hay que tomar en cuenta para la elección de la memoria 
RAM en la construcción de un cluster se tienen las siguientes: 
 
1) La velocidad a la que trabaja la memoria debe estar soportada por la placa base. 
 
2) En base a la aplicación que tendrá el cluster se deberá elegir la cantidad de 
memoria RAM en el nodo. Existe una regla en las aplicaciones científicas y de 
ingeniería que es utilizada como guía inicial cuando no se tiene experiencia en el 
diseño de clusters, esta dice: por cada operación de punto flotante por segundo es 
necesario un byte de memoria RAM. 
 
3) El tipo de módulo de la memoria RAM elegida debe estar soportada por la placa 
base. 
 
3.5.1.3 Placa Base 
La placa base (motherboard) es un circuito impreso en una placa que integra toda la 
electrónica de una computadora, es decir, provee toda una infraestructura lógica y física 
en un solo empaquetado robusto y altamente configurable. La elección de la placa base 
en la construcción de un cluster es muy importante ya que ésta define: 
 
 La familia del procesador, su ciclo de reloj y el número de procesadores en un 
nodo. 
 La interfaz del disco duro y la máxima capacidad de almacenamiento en el nodo. 
 El tipo de memoria y la máxima capacidad reconocida por del nodo. 
 El número de subsistemas que podrán ser conectados en el nodo. 
 La cantidad y tipos de buses de entrada y salida (conectan los periféricos del nodo 
con la memoria principal). 
 
 
3.5.1.4 Dispositivos de almacenamiento permanente 
El disco duro es el principal dispositivo de almacenamiento permanente dentro del nodo, 
está compuesto por una serie de platos que giran a gran velocidad (7200 rpms hasta 
15,000 rpms) dentro de una carcasa. Cada plato cuenta con un cabezal que se desplaza 
Neevia docConverter 5.1
Diseño de un Cluster Beowulf para realizar Cálculos Monte Carlo 
 
 39
a lo largo de toda su superficie con el objetivo de leer o escribir impulsos magnéticos. La 
elección del disco duro para un nodo de cluster depende de 3 aspectos principales: 
 El tipo de conexión con el que cuenta la placa base del nodo (SATA, IDE, SCSI). 
 La capacidad de almacenamiento requerida en el nodo (desde unos cuantos GB 
hasta cientos). 
 Estudiar la posibilidad de no comprar discos duros (a excepción del que necesita el 
nodo principal) y realizar un diseño de cluster donde todo el sistema sea exportado 
del nodo principal. 
 
3.5.1.5 Tarjeta de video 
Es el dispositivo encargado de procesar la información gráfica del nodo para poder ser 
visualizada en una pantalla (monitor, tv). La elección de la tarjeta de video para un nodo 
depende mucho de la aplicación que se le dará al cluster, en caso de tratarse de una 
aplicación enfocada a simulaciones tridimensionales entonces la compra de la tarjeta se 
deberá realizar teniendo en cuenta algunos aspectos: 
 El tipo de interfaz de la placa base: PCI, AGP, PCIe, etc. 
 Los tipos de conectores de salida de la tarjeta: SVGA, DVI, S-VIDEO, HDMI, etc. 
 Las características de la unidad de procesado de gráficos (GPU). 
 La memoria de video con la que cuenta la tarjeta de video. 
 La alimentación eléctrica que la tarjeta de video requiere, esto es muy importante 
ya que va ligado a la elección de la fuente de alimentación del

Continuar navegando

Otros materiales