You are on page 1of 82

Agradecimientos
Jos´ Castillo Castillo. e Gracias a Dios. A mis padres, Bertha Castillo Mill´n y Vidal Castillo Serrano, que siempre me han dado su a apoyo incondicional y a quienes debo este triunfo profesional, por todo su trabajo y dedicaci´n o para darme una formaci´n acad´mica y sobre todo humanista y espiritual. De ellos es este o e triunfo y para ellos es todo mi agradeciemiento. Para mis hermanos, Sa´l y Susana, para que tambi´n continuen superandose. A toda mi u e familia, muy en especial a mi tia Felipa por todo su apoyo. A la UNAM, la M´xima Casa de Estudios, y al Instituto de Ingenier´ que con el apoyo de a ıa una beca me permitieron desarrollar este trabajo de tesis y adquirir mucha experiencia profesional. Al Doctor Gustavo Ayala Mili´n por el apoyo en espacios y equipo para el desarrollo de a la investigaci´n. o A todos mis amigos, amigas y todas aquellas personas que han sido importantes para mi durante todo este tiempo. A todos mis maestros que aportaron a mi formaci´n. Para quienes o me ense˜aron m´s que el saber cient´ n a ıfico, a quienes me ense˜aron a ser lo que no se aprende en n sal´n de clase y a compartir el conocimiento con los dem´s. o a A mi amigo y compa˜ero de tesis Benjam´ que me ense˜o a salir adelante para la culmin ın, n naci´n del trabajo y a nuestro director de tesis, Ingeniero Juan Jos´ Carre´n Granados por su o e o confianza y apoyo en nuestra investigaci´n. o

A todos . . . GRACIAS

Mayo de 2006

Ricardo Benjam´ Olvera Acosta. ın Este trabajo est´ dedicado a toda mi familia, por su cari˜o y porque siempre me han apoyaa n do. Gracias principalmente a mis padres Columba Acosta y Benjam´ Olvera: quiero que sepan ın que para m´ son los mejores, gracias por la ayuda que de ustedes y de sus parejas he recibido; ı ´ste trabajo es solo una peque˜a muestra de lo mucho que les agradezco por la educaci´n que e n o me han brindado, esperando que mis hermanos aprendan algo de ´l, que les sirva como ejemplo e para seguir adelante con sus proyectos de vida. Aprovecho para decirles que cuando de verdad quieran algo, luchen por ello; que cuando las cosas son dif´ ıciles se disfrutan mucho m´s, y que a sepan que a nuestros padres no les podemos regalar algo mejor que ver a un hijo feliz por tener lo que se merece gracias a su esfuerzo: Hugu´ Nancy, Uriel e Itzel, los quiero mucho. ın, Gracias a dios que, aunque ya no es el mismo que me ense˜aron en el catecismo, me cuida n siempre, me escucha las veces que lo necesito y, sobre todo, me da la fuerza para seguir adelante. Gracias a todos y cada uno de los profesores de la FES Arag´n, antes ENEP, por entregar o parte de su vida para nuestro desarrollo. Gracias a la UNAM por recibirnos como a sus hijos y vernos crecer como personas y como profesionistas; gracias al Ingeniero Juan Jos´ Corre´n e o Granados por brindarnos su amistad y confianza para desarrollar este trabajo de tesis y, sobre todo, por ser la gran persona que es. Y como dicen que detr´s de un no tan gran hombre hay una gran mujer, gracias a Sara, ¡mi a hermosa!, por estos dos a˜os y todo lo que me has ense˜ado en ellos: tuve mucha suerte por n n haberte encontrado. Gracias tambi´n a tu familia: a Mar´ Luisa P´rez, al Sr. Sergio del Real e ıa e y a Carlita por su amistad y confianza. Gracias a todos y cada uno de mis amigos del Instituto de Ingenier´ becarios, trabajadores ıa: y secretarias, tanto de Computo como de Sismolog´ y Mec´nica Aplicada, y a algunos que en ıa a el paso de los a˜os he tenido la oportunidad de conocer; al Dr. Francisco Ch´vez, al Dr. Jorge n a Aguirre, al M. en C. Miguel Rodr´ ıguez y al M. en I. Javier Lermo: gracias a todos por depositar su confianza en mi, por el buen ejemplo y porque, tal vez sin que lo sepan, me han inspirado para ser cada d´ mejor: a todos gracias por su amistad. ıa Gracias a las comunidades en resistencia por la dignidad que han mostrado; gracias a la comunidad del software libre que, aunque est´ muy lejos los unos de los otros, sus ideolog´ a ıas son muy parecidas: gracias por sus ense˜anzas y por darme la esperanza de un mundo mejor. n ¡Y que viva la m´sica campesina del mundo! u Y c´mo olvidar a mi compa˜ero y amigo Jos´ Castillo Castillo por el tiempo dedicado a o n e este trabajo y por todo lo que me ha ense˜ado en este proyecto de tesis: ojal´ sea el primero n a de muchos triunfos. Gracias a todos y cada uno de los que lean y han le´ este trabajo porque, por ese simple ıdo hecho, ya forman parte de ´l. e

´ Indice
Objetivos Prefacio Introducci´n o Organizaci´n o 1. Antecedentes 1.1. Instituto de Ingenier´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 1.2. Antecedentes del proyecto OpenMosix . . . . . . . . . . . . . . . . . . . . . . . 2. Conceptos b´sicos de c´mputo cient´ a o ıfico y clusters 2.1. C´mputo cient´ o ıfico . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Conceptos b´sicos . . . . . . . . . . . . . . . . . . . . . . . . a 2.2.2. Lenguajes de programaci´n paralela . . . . . . . . . . . . . . o 2.3. Tipos y modelos de clusters . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Arquitecturas de computadoras . . . . . . . . . . . . . . . . 2.3.2. Tipos de clusters . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3. Modelos de clusters . . . . . . . . . . . . . . . . . . . . . . . 2.4. OpenMosix como un cluster de alto desempe˜o y balanceo de carga n 2.4.1. Caracter´ ısticas de OpenMosix . . . . . . . . . . . . . . . . . 2.4.2. Subsistemas de OpenMosix . . . . . . . . . . . . . . . . . . 2.4.3. El algoritmo de migraci´n . . . . . . . . . . . . . . . . . . . o 2.4.4. El mecanismo de migrado . . . . . . . . . . . . . . . . . . . 2.4.5. ¿C´ando podr´ migrar un proceso? . . . . . . . . . . . . . . u a 2.4.6. Comunicaci´n entre las dos ´reas . . . . . . . . . . . . . . . o a 3. An´lisis para el dise˜ o del cluster OpenMosix a n 3.1. Requerimientos de Hardware . . . . . . . . . . . . 3.1.1. Caracter´ ısticas de los nodos . . . . . . . . 3.1.2. Caracter´ ısticas de la red de computadoras 3.2. Requerimientos de Software . . . . . . . . . . . . 3.2.1. Caracter´ ısticas de la distribuci´n Linux . . o 3.2.2. Caracter´ ısticas de los compiladores . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv v vii viii 1 1 4 5 5 6 6 9 10 10 16 16 17 18 18 20 20 21 21 24 24 25 27 27 27 28

. . . . .1. . . . . . . . . . . . . 7. . . .1. 5. . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . Dise˜ o del cluster OpenMosix n 4. . . . . . o ii . o 5. . . . . . . . 4. Seguridad l´gica del cluster . . . . . . . . . . . . OpenMosixView . . . . o 5. . . . . . . . . . . . . . . .3.1. . . . . ıas 5. . . . . . . . . . .1. . . . . . .1. . . . . . . . . . . . . Instalaci´n de las User Land Tools . . Instalaci´n del kernel . Instalaci´n de OpenMosixView . . 7. . 29 o 4. . . . . . . . . . . Descripci´n de la conexi´n de los nodos o o 4. . . . 4. . . . . . . o 6. . .2. . . . . o 5. . . . . . . . . . . . 6. . . . . . Compilador Intel . . . .1. . . . . . . . . . . . . . ejemplo curva de una funci´n . . . . . o 5. . . . . . . . . . . . . Monitorizando el cluster . . . . . . . . 4. .1. . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . Programas paralelos con LAM/MPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıas 5. . Switch . . . . . . .2. . . . . . . . . . . . Software . 6. . . . . . . . .5. . . . . . . . . . . . Configuraci´n de OpenMosix . . Herramientas de administraci´n . . . . .1. .0 . . . . . . . . . . . . . o 5. . . . . .1. Instalaci´n de los nodos . . . . . . . . .4. . . .2. . . . .1. . . . . . . . . . .2. . 5. . . . . . . 6. . . . .3. . . . . . . .2. . . . . . . . . . . . . Controlando los nodos con mosctl . . . . Librer´ LAM/MPI . . . . . . . . . . . . 54 . . . . . . . . . . . . . . . . . . . . . . . . . o 6. . . . 6. . . . . . . . . . . . . . . .4. . Instalaci´n de los compiladores . . . .2. . Hardware . . . . . . . . . . . . . . . . . 6. . . . . . . .1.2. . . . . . . . . . . . Recomendando nodos de ejecuci´n . .1. Pruebas generales de rendimiento del cluster . . . . . . . . .2. . . . . . . . . .2. . . . . .2.2. . . . . .2. . . . . . . . . . . . . . . . . . del . . . . . . . . o 4. . . . . . . . . . . . . . . . . . .3. . . . Configuraci´n de los nodos . . . . . . . . . . . . Migraciones . . . . . .1.1. . . . . . . . . . . . . . . . . . . . .1. . . . Prueba m´ ınima de funcionamiento . . . . 54 bajo la . . . . Administraci´n del cluster o 6. . . . . ıa 4. . . . . . .3. . . Implementaci´n del cluster OpenMosix o 5. Instalaci´n de Suse 9. . . . .3. .3. . . . . . . o 5. . . . . . .5. . . . . . . .4. . . . . . .2. . . . . . . . .1. . . . . . . . . .2. . . . . . .1. . Tarjetas de red . . . . . . . . . . . . . . . . . . . . . . .4. . . .2.1. . . . . . . . . .3. . . . . . . . . . . o 5. . . . Compilaci´n del kernel OpenMosix . . . . . . . . . . 30 30 30 32 33 33 33 34 34 35 35 36 36 36 37 37 39 39 40 40 41 41 42 43 44 45 46 46 46 47 48 48 49 50 50 53 5. . . . . . Actualizaciones (patchs) del sistema .6. . . .2. . . . . . . Organizaci´n de los nodos . . Librer´ Intel . . . . . . . . . . . . . . Herramientas de ´rea de usuario de OpenMosix a 6. . . . . . . . o 5. . . . . o 5.1. . . . . . . . . . 7. . . o 5. . . . . . . . . . . . . . . . . . . .1. . . . . . .2. . . . . 4. . . . . . . . . . . . . . . . .1. . . . . . . . . .1. . . . . . . . . . . .3.2. . .3.3. . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . Cable . . . . . . . . . Configurando los nodos en OpenMosix . . 54 . . . . . .3. . POV-Ray / Povmosix . . . . . Desempe˜ o y pruebas de rendimiento n 7. .2. . . . . . . . . . . . . . . . . . 58 . . . . . . . . . Configuraci´n de la red .1. . Herramientas de monitoreo . . 6. . . . . . . . . . Programando OpenMosix . . . . . . . . . . Topolog´ . . . c´lculo del ´rea a a . . . . . .2. . . . . . . . . . . . . . . . 5. . . . . . . .2. . . . .2. . . .

. . . Coordinaci´n de Mec´nica Aplicada .2. . . . . 63 o a Conclusiones Ap´ndice e A. . . Ejecuci´n de programas del Instituto de Ingenier´ . . . . . . . . . . .2. . . .1. . . . .2. . . . . . . . .7. . Ejemplo de c´digo paralelo MPI para el cluster OpenMosix o Bibliograf´ ıa 66 68 68 70 iii . . . Coordinaci´n de Ingenier´ Sismol´gica . .2. . . 60 o ıa 7. . . . . . . . . . . 60 o ıa o 7. . . . .

comparables con las supercomputadoras.Objetivos Proponer una nueva soluci´n a la problem´tica de ejecuci´n de programas de c´mputo o a o o cient´ ıfico que requieren de alta capacidad de procesamiento en el Instituto de Ingenier´ ıa. Encaminar a los investigadores del Instituto de Ingenier´ al uso de nuevas tecnolog´ ıa ıas para el procesamiento de grandes vol´menes de datos como tambi´n se hace en otros u e centros de investigaci´n. o iv . Evaluar el uso de clusters como alternativa viable a la problem´tica de ejecuci´n de a o programas de c´mputo cient´ o ıfico que requieren de sistemas de alta capacidad para procesamiento de datos dentro del Instituto de Ingenier´ ıa. que puedan proporcionar resultados similares a menor costo y escalables. Abrir nuevas alternativas a la adquisici´n de sistemas de c´mputo de alto rendimiento o o como son los clusters.

Prefacio
En temas relacionados con la ingenier´ hoy en d´ es com´n procesar grandes cantidaıa, ıa u des de informaci´n, y es necesario emplear principalmente sistemas de c´mputo r´pidos y con o o a buenos recursos tales como procesador y memoria. En el mercado existen sistemas que pueden ofrecer estos requerimientos; tal es el caso de las computadoras multiprocesador o las llamadas supercomputadoras, pero este tipo de tecnolog´ es muy costosa, tanto en el precio como en el ıa mantenimiento de los equipos. Ante esta situaci´n, se buscan soluciones que puedan proporcionar resultados similares, a o menor costo y escalables. Una de estas soluciones son los clusters. ¿Por qu´ darse a la tarea de dise˜ar y construir clusters, cuando hay supercomputadoras e n comerciales, perfectamente buenas y disponibles en el mercado?. La respuesta r´pida es el dia nero. Cuando se construye un cluster con hardware disponible en los centros de c´mputo, los coso tos son menores comparados con el de una supercomputadora comercial, obteniendo resultados satisfactorios tomando en cuenta el costo/beneficio. Los primeros sistemas cluster fueron explorados por Don Becker y sus colegas en la NASA. Debido a que las restricciones presupuestarias les imposibilitaban el acceso a una supercomputadora comercial, ellos necesitaban analizar un conjunto complejo y muy grande de datos, que las misiones de la NASA tienden a generar. Encontraron la forma de conseguir el rendimiento de c´mputo que necesitaban. Nombraron a su creaci´n “Beowulf“ en honor al h´roe m´ o o e ıtico ingl´s Beowulf1 . e Los clusters asombrosamente han llegado a tener un gran alcance. Actualmente existe un
1

´ http://www.beowulf.org/overview/faq.html [Ultima consulta: febrero 2006]

v

listado actualizado semestralmente por la universidad de Manhiem en Alemania que describe las mejores 500 supercomputadoras en el mundo2 , entre ´stas figuran algunos clusters. Hasta e 1997, casi todos los sistemas enumerados eran los sistemas comerciales de supercomputadoras de fabricantes bien conocidos tales como Cray, Silicon Graphics e IBM. A partir de 1998, algo extraordinario comenz´ a aparecer en la lista, los clusters basados en Linux. o El superc´mputo tambi´n ha venido a desempe˜ar un papel importante en diferentes ´reas o e n a como la ingenier´ qu´ ıa, ımica, f´ ısica, biolog´ cine, campo militar, entre otras y la tecnolog´ de ıa, ıa clusters ha llegado a ser cada vez m´s importante. Es por ello que dentro de las ´reas de invesa a tigaci´n como la ingenier´ no se pueden obviar estas tecnolog´ que traen grandes beneficios o ıa ıas para quienes saben aprovecharlas correctamente.

2

´ Top 500, http://www.top500.org [Ultima consulta: febrero 2006]

vi

Introducci´n o
El desarrollo de este trabajo de tesis consiste en la implementaci´n de un cluster en el Inso tituto de Ingenier´ de la UNAM. ıa Se trabaj´ en dos coordinaciones: Mec´nica Aplicada e Ingenier´ Sismol´gica. En ambos o a ıa o centros se trabaja con grandes cantidades de informaci´n que requieren del tratamiento mao tem´tico mediante m´todos num´ricos que a su vez tienen que llevarse a cabo con auxilio de a e e sistemas de c´mputo. Conforme se avanza en las investigaciones de estos centros, es necesario o de mejores y m´s potentes recursos de c´mputo. a o En la coordinaci´n de Mec´nica Aplicada, existe un grupo especial de mec´nica num´rica o a a e que dirige el Dr. Gustavo Ayala Mili´n. Este grupo trabaja en proyectos donde se hace empleo a de m´todos num´ricos avanzados aplicados a la Ingenier´ Civil que requieren de sistemas de e e ıa c´mputo de alto desempe˜o. El grupo ha trabajado con sistemas de c´mputo tradicionales, que o n o en la mayor´ de los casos les ha sido suficiente para resolver los problemas computacionales ıa con que se han enfrentado, y es por ello que con este trabajo se pretende iniciar al grupo en el uso de las tecnolog´ de clusters. ıas La coordinaci´n de Ingenier´ Sismol´gica que dirige el Dr. Jorge Aguirre Gonz´lez, opera o ıa o a y mantiene las redes acelerogr´ficas de campo libre y en estructuras del Instituto, y se encarga a de analizar los datos colectados de las estaciones sismogr´ficas, lo cual requiere de sistemas de a c´mputo de alto desempe˜o para el an´lisis de estos datos de una forma r´pida y eficiente, por o n a a lo que un cluster es de gran utilidad para mantener operando ininterrumpidamente la que hoy en d´ representa la red de monitoreo de temblores fuertes m´s importante del pa´ ıa a ıs.

vii

Organizaci´n o
La tesis esta compuesta de siete cap´ ıtulos y a continuaci´n se describe brevemente cada uno o de los cap´ ıtulos contenidos en este trabajo: Cap´ ıtulo 1. Antecedentes. En este cap´ ıtulo se hace una breve descripci´n del Instituto de Ingenier´ y su misi´n, pues o ıa o es donde se realiz´ la implementaci´n del cluster. Tambi´n se muestran los antecedentes del o o e proyecto OpenMosix y los cambios que ha tenido en sus diferentes etapas. Cap´ ıtulo 2. Conceptos b´sicos de c´mputo cient´ a o ıfico y clusters. En este cap´ ıtulo se describen conceptos fundamentales detr´s del c´mputo con clusters y a o se da una respuesta a la pregunta: ¿Por qu´ emplear Clusters?. Tambi´n se cubren algunos e e conceptos b´sicos implicados en c´mputo paralelo, optimizaci´n de programas, tecnolog´ de a o o ıas red elementales y de OpenMosix como un cluster de alto desempe˜o y balanceo de carga, mosn trando sus caracter´ ısticas y capacidades. Esto permite trabajar con un vocabulario com´n en u el resto del trabajo de tesis. Cap´ ıtulo 3. An´lisis para el dise˜o del cluster OpenMosix. a n En este cap´ ıtulo se hace un estudio de los recursos en cuanto a requerimientos ideales b´sicos a para la construcci´n de un cluster, como el que se plantea en este proyecto: caracter´ o ısticas de los nodos, de la red de computadoras, requerimientos de hardware, requerimientos de software, caracter´ ısticas de la distribuci´n Linux, de los compiladores y de las herramientas de adminiso traci´n. o

viii

n Se muestran resultados de pruebas generales de rendimiento del cluster con ejecuci´n de o programas de prop´sito general.Cap´ ıtulo 4. ıa ıa o a ix . Desempe˜o y pruebas de rendimiento. Administraci´n del cluster. Capitulo 7. Dise˜o del cluster OpenMosix. Cap´ ıtulo 5. la instalaci´n de compiladores y o o o la seguridad l´gica del cluster. ahora se plantea el dise˜o y o n organizaci´n del cluster de acuerdo al equipo de c´mputo disponible para la construcci´n del o o o mismo. o Se analizan y describen algunas de las herramientas para la administraci´n del cluster y o para el monitoreo de procesos distribuidos en los nodos de cluster. o Se describe la instalaci´n de los nodos y su configuraci´n. n En el cap´ ıtulo tres se hace la descripci´n ideal para el cluster. Implementaci´n del cluster OpenMosix. y en particular con programas de investigadores del Instituto o de Ingenier´ de las coordinaciones de Ingenier´ Sismol´gica y Mec´nica Aplicada. o Capitulo 6.

la pol´ o ıtica del Instituto ha sido realizar investigaci´n orientada o a problemas generales de la ingenier´ as´ como colaborar con entidades p´blicas y privadas ıa.unam. En los programas actuales de trabajo se enfatiza el inter´s en las necesidades de la ingenier´ e ıa nacional. maestr´ y doctorado.mx [Ultima consulta: febrero 2006] 1 . ı u para mejorar la pr´ctica de la ingenier´ en el ´mbito nacional. estudiantes de ingenier´ que ıa realizan trabajos de tesis de licenciatura. Instituto de Ingenier´ ıa El Instituto de Ingenier´ de la UNAM ıa El Instituto de Ingenier´ es parte del Subsistema de Investigaci´n Cient´ ıa o ıfica de la Universidad Nacional Aut´noma de M´xico y org´nicamente se encuentra dentro de la Coordinaci´n o e a o de la Investigaci´n Cient´ o ıfica. En la Universidad Nacional Aut´noma de M´xico. dad de aproximadamente 900 personas. t´cnicos acad´micos.1.Cap´ ıtulo 1 Antecedentes 1. al aplicar los resultados de las a ıa a investigaciones a problemas espec´ ıficos. entre ellos investigadores. Desde su fundaci´n en 19563 . el Instituto de Ingenier´ es el centro o e ıa de investigaci´n en diversas ´reas de la ingenier´ m´s productivo del pa´ Es una comunio a ıa a ıs. Las actividades que se llevan a cabo en el Instituto son: investigaci´n t´cnica y aplicada. o e 3 ´ http://www. personal ıa e e secretarial y de servicios.iingen.

Automatizaci´n o Bioprocesos Ambientales Estructuras y Materiales Geotecnia Hidr´ulica a 2 . Apoyar el desarrollo tecnol´gico y an´lisis de los requerimientos sociales a cuya soluci´n o a o puede aportar la ingenier´ ıa. Estudiar problemas de inter´s nacional. Apoyar la formaci´n de profesores y las tareas docentes de la Facultad de Ingenier´ o ıa. m´todos y criterios en ingenier´ o e ıa. se proporcionan servicios de ingenier´ a los diversos sectores ıa. culturales y cient´ e ıficas del pa´ y en el extranjero.apoyo al desarrollo tecnol´gico y an´lisis de los requerimientos sociales a cuya soluci´n puede o a o aportar la ingenier´ Asimismo. La formaci´n de investigadores en ingenier´ o ıa. Proporcionar servicios de ingenier´ a los diversos sectores de la sociedad con el prop´sito ıa o de contribuir al avance de los objetivos propios de la Universidad. n t´cnicas. el Instituto colabora con otras instituciones afines. Llevar a cabo las actividades necesarias para realizar las funciones precedentes. En el desempe˜o de estas funciones. ıa de la sociedad con el prop´sito de contribuir al avance de los objetivos propios de la Universidad.1. ıa. e Difundir los resultados de sus investigaciones. tanto fundamental como aplicada. ıs ´ Areas de investigaci´n o A continuaci´n se mencionan las ´reas de investigaci´n que comprende el Instituto de ingeo a o nier´ como lo muestra el organigrama de la figura 1. o Las principales funciones del Instituto son: Realizar investigaci´n para mejorar los conocimientos.

Figura 1. Organigrama IINGEN Ingenier´ Ambiental ıa Ingenier´ de Procesos Industriales y Ambientales ıa Ingenier´ de Sistemas ıa Ingenier´ Mec´nica T´rmica y de Fluidos ıa a e Ingenier´ Sismol´gica ıa o Instrumentaci´n o Mec´nica Aplicada a Sismolog´ e Instrumentaci´n S´ ıa o ısmica Sistemas de C´mputo o V´ Terrestres ıas 3 .1.

1.sourceforge. http://openmosix.4 4 ´ OpenMosix. varias personas que trabajaban en el proyecto o decidieron separarse de ´l y continuar con el desarrollo bajo un esquema de software libre. El resultado es el proyecto OpenMosix. Antecedentes del proyecto OpenMosix OpenMosix es un proyecto de software libre para la implementaci´n de un cluster de alto o desempe˜o y balanceo de carga. posteriormente los desarrolladores de Mosix deciden cambiar su licencia por una que imped´ la modificaci´n y adaptaci´n del c´digo fuente a las necesidades de ıa o o o quien usara este software.2.net [Ultima consulta: febrero 2006] 4 . Primero fue el proyecto Mosix. que permit´ la libre distribuci´n y modificaci´n del c´digo ıa o o o fuente de este proyecto. Debido a tal situaci´n. el e cual hace participar a una gran comunidad involucrada en el tema de clusters con Linux. el cual en un inicio se liber´ men o diante una licencia de software libre.

o ıas ıa o 5 ´ http://www.htm [Ultima consulta: febrero 2006] 5 . la cual se considera otra rama para aprender y obtener o e informaci´n nueva. Cuando se resuelve un problema complejo.mx/Articulos/dos/noviembre/supercom. conceptos b´sicos implicados en c´mputo cient´ a o ıfico.1. instalaci´n y configuraci´n del cluster.enterate. Esto permite al lector trabajar con un vocabulario com´n ıas a u cuando se comience con el tema del dise˜o. optimizaci´n de programas y alo gunos de tecnolog´ de red b´sicos.Cap´ ıtulo 2 Conceptos b´sicos de c´mputo a o cient´ ıfico y clusters En este cap´ ıtulo se tratan algunos de los conceptos fundamentales detr´s del c´mputo con a o clusters. cuya finalidad es e ıa o resolver problemas complejos de ciencia e ingenier´ 5 . n o o 2. tambi´n se e le denomina experimentaci´n num´rica. que se suma a las otras metodolog´ tradicionales: teor´ y experimentaci´n. mediante el uso de la computadora.unam. C´mputo cient´ o ıfico C´mputo cient´ o ıfico: Se entiende por c´mputo cient´ o ıfico el desarrollo y traducci´n en o t´rminos de tecnolog´ de c´mputo para procesar modelos computacionales. ıa El c´mputo cient´ o ıfico usa como parte principal la modelaci´n matem´tica y/o computacioo a nal.

Otro concepto importante es clustering. Cluster Un cluster es un arreglo de computadoras conectadas por una red para trabajar en cierto gran problema que pueda ser resuelto en peque˜os pedazos [HDavid00].2. a 6 . La meta del balanceo de carga es minimizar el tiempo de espera de los procesadores en los puntos de sincronizaci´n. n Las caracter´ ısticas principales de un cluster [MCatalan04] son: i) Un cluster consta de 2 o m´s nodos. Conceptos b´sicos a Alto rendimiento: Gran demanda de procesamiento de datos en procesadores. Implica proveer niveles de disponibilidad y escalabilidad de un sistema al menor costo. a ı o iii) Los clusters necesitan software de control especializado. donde adem´s se espera que los procesadores trabajen al mismo a tiempo. y que se comporten como un recurso inform´tico u a unificado. Contiene registros vectoriales para operar sobre ellos en un solo ciclo de reloj. memoria y otros recursos de hardware. o a Balanceo de carga: Lo ideal en el procesamiento paralelo es que cada procesador realice la misma cantidad de trabajo. que se refiere a la t´cnica que permite combinar e m´ltiples sistemas para trabajar en conjunto. 2. a ii) Los nodos del cluster est´n conectados entre s´ por al menos un canal de comunicaci´n. o Computadora vectorial: Posee un conjunto de unidades funcionales utilizados para procesar vectores eficientemente.1. donde la comunicaci´n entre ellos es r´pida. Computadora paralela: M´quina con dos o m´s procesadores que pueden trabajar sia a mult´nea y/o coordinadamente. o Compilador: Un compilador es un programa que traduce otro programa escrito en un lenguaje de programaci´n llamado c´digo fuente.2.2. en un programa equivalente al lenguaje de o o computadora llamado ejecutable ´ binario.

y las SIMD donde los procesadores ejecutan las mismas instrucciones pero con diferentes datos. Se utilizan en unidades de e millones de flops (MegaFlops). o a Flops: Un flop es utilizado para medir operaciones de punto flotante por segundo. es la parte fundamental de un sistema e u operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. la u n sobrecarga debido al paralelismo (comunicaciones. pues los resultados ser´n diferentes u a cuando se aumente o disminuya el tama˜o del problema y el n´mero de procesadores. Escalabilidad: Generalmente se mide la eficiencia de un problema. como se explicara en la siguiente secci´n. donde e es la eficiencia. T (n) es el tiempo en que tarda en procesar un programa en particular en n procesadores. Esto es. utilizando un tama˜o n y un n´mero de procesadores fijo. Memoria distribuida: Cada uno de los procesadores de un multiprocesador tiene asociado a ´l una unidad de memoria. etc. Memoria compartida: En una m´quina paralela existe una sola memoria que puede ser a accedida por todos los procesadores. y o lo que indica es qu´ tan eficiente se est´ utilizando el hardware y se expresa de la siguiente forma: e a e(n) = T (1)/T (n)n.Estas son de dos tipos: las MIMD donde cada procesador puede ejecutar diferentes instrucciones sobre diferentes datos. Miles de Millones de flops (GigaFlops). pero esto es insuficiente. aumenta y similarmente podemos tener casos en donde el tama˜o del problema es muy peque˜o para tener una n n evaluaci´n real del problema sobre cierta m´quina. o Eficiencia: Es la relaci´n entre el costo computacional y el funcionamiento del cluster. T (1) es el tiempo en que tarda en procesar un programa en particular en un procesador. tambi´n conocido como n´cleo. Kernel: El kernel. n u existe un problema de escalabilidad. desbalanceo de carga).n es el numero de procesadores. e 7 . Es una medida de la velocidad del procesamiento num´rico del procesador. Cuando se aumenta el n´mero de procesadores para el mismo tama˜o del problema.

u a Rendimiento: Es la efectividad del desempe˜o de una computadora sobre una aplicaci´n n o o prueba de rendimiento (benchmark) en particular. La mejor soluci´n es la que se acerque m´s al valor de o a T (n) 8 . Donde s es el speedup. o En un problema que es completamente paralelo. dividido entre el tiempo que toma ejecutarse el mismo programa en N procesadores. sin embargo en muchos problemas donde el balanceo de carga no es perfecto y la comunicaci´n entre procesos sobrepasa el tiempo de c´mputo. Cada proceso tiene asociaa o do un espacio de direcciones. costo y eficiencia. s = T (1)/T (n). Por hardware depende de la tecnolog´ de c´mputo y la de software se refiere a la habilidad ıa o del usuario para encontrar ´reas bien definidas del problema que se desea resolver. T (1) es el tiempo de ejecuci´n en un procesador y T (n) el tiempo o de ejecuci´n en n procesadores. el valor del o o speedup es menor que el valor de T (n). Existen dos formas conocidas de hacer paralelismo: una es en hardware y otra en software.Nodo: Se refiere a una computadora sola que contiene recursos espec´ ıficos. etc. de tal forma a que ´ste pueda ser dividido en partes que ser´n distribuidas entre los nodos del cluster. uno o m´s CPU. es decir una lista de posiciones de memoria desde alg´n m´ u ınimo hasta alg´n m´ximo que el proceso puede leer y escribir [ATanenbaum03]. En las mediciones de rendimiento est´n a involucrados velocidad. Speedup(velocidad): Se define como el tiempo que tarda en ejecutarse el mismo programa en un solo procesador. tales como memoria. a Paralelismo: Consiste en el procesamiento de una serie de instrucciones de programa que son ejecutables por m´ltiples procesadores que trabajan de manera independiente [MCatalan04] u . el valor del speedup debe ir incrementando linealmente con el valor de n. e a Proceso: Un proceso es b´sicamente un programa en ejecuci´n. interfaces de red.

la ıo a sincronizaci´n de procesos o el traslape de procesos de c´mputo con procesos de comunicaci´n. El a usuario escribe su aplicaci´n como una colecci´n de tareas cooperativas. as´ como la comunicaci´n y sincronizaci´n entre tareas. capaz de trabajar en redes homog´neas y heterog´neas. Las tareas acceden los o o recursos de PVM a trav´s de una biblioteca de rutinas. El modelo computacional de PVM es simple y adem´s muy general. En este est´ndar se han incluido los aspectos m´s relevantes de otras a a bibliotecas de programaci´n paralela. Est´ dise˜ado para conjuntar o e a n recursos de c´mputo y proveer a los usuarios de una plataforma paralela para correr sus aplicao ciones. obteniendo su mejor rendimiento en “horas muertas”. totalmente libre. por ser uno de los est´ndares m´s aceptados. Lenguajes de programaci´n paralela o Existen varios lenguajes de programaci´n paralela.2. Es una biblioteca de env´ ıo de mensajes. pero tiene la desventaja ´ o de que el programador debe ser m´s cuidadoso para evitar la corrupci´n de mensajes. o o o Esto ultimo reduce el tiempo de ejecuci´n de un programa paralelo. y que e e hace uso de los recursos existentes en alg´n centro de trabajo para poder construir una m´quina u a paralela de bajo costo.2. o Entre las ventajas de MPI se encuentra la disponibilidad de varios modos de comunicaci´n. independientemente del n´mero de computadoras distintas que utilicen y donde ´stas se u e encuentren localizadas. Estas rutinas permiten la inicializaci´n y e o terminaci´n de tareas a trav´s de la red. sobresaliendo de estos MPI(Message Paso sing Interface) y PVM(Parallel Virtual Machine). a a MPI MPI consiste de una biblioteca est´ndar para programaci´n paralela en el modelo de ina o tercambio de mensajes.2. conversi´n de datos y calendarizao ci´n de tareas a trav´s de una red de arquitecturas incompatibles. o los cuales permiten al programador el uso de buffers para el env´ r´pido de mensajes cortos. o e ı o o Los constructores de comunicaci´n incluyen aquellos para env´ y recepci´n de estructuras o ıo o 9 . Dos de a o las principales distribuciones libres de MPI son: LAM/MPI y MPICH. o y posteriormente junto con la Universidad de Tennessee en los EUA. PVM PVM se comenz´ a desarrollar en el verano de 1989 por el Oak Ridge National Laboratory. Maneja transparentemente el ruteo de todos los mensajes.

1. el procesador necesita acceder a memoria N u veces consecutivas (para recibir un n´mero). u e es decir los algoritmos para las computadoras SISD no contienen ning´n paralelismo. ´stas u e est´n construidas de un solo procesador (figura 2. e o SISD SISD es el modelo tradicional de computadora secuencial donde una unidad de procesamiento recibe una sola secuencia de instrucciones que opera en una secuencia de datos. a 10 . Tambi´n son ejecutadas en secuencia N-1 sumas.. y aunque no cubre ıa a todas las posibles arquitecturas. La o taxonom´ de Flynn es la manera cl´sica de organizar las computadoras. Tipos y modelos de clusters En esta secci´n se analizan los tipos y modelos de cluster basados en la taxonom´ de Flynn. Arquitecturas de computadoras En 1966 Michael Flynn propuso un mecanismo de clasificaci´n de las computadoras. . tales como emisi´n. ejemplo: para procesar la suma de N n´meros a1.an. Puede haber secuencias de instrucciones o sencillas o m´ltiples y secuencias de datos sencillas o m´ltiples.. Tambi´n hay que mencionar que el modelo MISD es te´rico.1): SISD : Single Instruction Single Data SIMD : Single Instruction Multiple Data MIMD : Multiple Instruction Multiple Data MISD : Multiple Instruction Single Data Los modelos SIMD y MIMD son los unicos modelos aplicables a las computadoras para´ lelas.2). o e El m´todo de Flynn se basa en el n´mero de instrucciones y de la secuencia de datos que e u la computadora utiliza para procesar informaci´n. o ıa 2. barreras de sincronizaci´n y ı o o sumas globales.3. a2. proporciona una importante visi´n para varias de ´stas.de datos as´ como primitivas de alto nivel.3. 2. Dicha clasificaci´n da lugar a u u o cuatro tipos de computadoras (figura 2.

El tipo de memoria que estos sistemas utilizan es distribuida. Modelo SISD (Single Instruction Single Data). a 11 . es decir. ejemplo: aqu´ hay N secuencias de ı datos. cada o o uno con diferente dato. . en el modelo SIMD se tienen m´ltiples procesadores que sincronizau damente ejecutan la misma secuencia de instrucciones. A11 + B11 = C11 A21 + B21 = C21 . una por procesador.1. Taxonom´ de Flynn. Los procesadores operan sincronizadamente y un reloj global se utiliza para asegurar esta operaci´n. A12 + B12 = C12 A22 + B22 = C22 La misma instrucci´n se ejecuta en los 4 procesadores (sumando dos n´meros) y los 4 ejeo u cutan las instrucciones simult´neamente. Esto toma un paso en comparaci´n con cuatro pasos a o en m´quina secuencial. ıa Figura 2. en cada paso todos los procesadores ejecutan la misma instrucci´n. SIMD A diferencia de SISD.2. por lo que diferentes datos pueden ser utilizados en cada procesador.3). siendo A y B de orden 2 y teniendo 4 procesadores.Figura 2. ejemplo: sumando dos matrices A + B = C. pero en diferentes datos (figura 2.

M´quinas con arreglos de procesadores vectoriales como CRAY1 y CRAY2 son ejemplos de a arquitecturas SIMD. Modelo SIMD (Single Instruction Multiple Data). MIMD El modelo MIMD es del tipo de computadoras paralelas al igual que las SIMD. Modelo MIMD (Multiple Instruction Multiple Data). a o Figura 2. La diferencia con estos sistemas es que MIMD es as´ ıncrono: no tiene un reloj central (figura 2.4.3.Figura 2. Cada pro12 .4). Se tienen N procesadores. Cada procesador en un sistema MIMD puede ejecutar su propia secuencia de instrucciones y tener sus propios datos: esta caracter´ ıstica es la m´s general y poderosa de esta clasificaci´n. N secuencias de instrucciones y N secuencias de datos.

o en t´rminos simples. • Las computadoras MIMD con memoria compartida son sistemas conocidos como de multiprocesamiento sim´trico (SMP). ya que todos los procesadores se encuentran igualmente comunicados con memoria principal.cesador opera bajo el control de una secuencia de instrucciones. En esta a configuraci´n debe asegurarse que los procesadores no tengan acceso simult´neamente a o a regiones de memoria de una manera en la que pueda ocurrir alg´n error. adem´s el acceso a memoria es por medio de un solo canal. pueden o e estar haciendo diferentes cosas en diferentes datos al mismo tiempo. Sistemas de Memoria Compartida.5). Ventajas: • Facilidad de la programaci´n. Con esto se tiene tiempo de acceso a memoria uniformes. donde m´ltiples procesadores comparten un e u 13 .5. u Figura 2. Esto significa que los procesadores operan asincr´nicamente. Es mucho m´s f´cil programar en estos sistemas que o a a en sistemas de memoria distribuida. es decir cada procesador es capaz de ejecutar su propio programa con diferentes datos. ejecutada por su propia unidad de control. hay un espacio de direccionamiento compartido (figura 2. es decir. Los sistemas MIMD tambi´n tienen una subclasificaci´n: e o Sistemas de memoria compartida: En este tipo de sistemas cada procesador tiene acceso a toda la memoria.

es decir. u • En computadoras vectoriales como la Cray. debido a que se puede generar un cuello de botella en el n´mero de CPU. entre otras. si un procesador requiere los datos o contenidos en la memoria de otro procesador. Sistemas de Memoria Distribuida. MULTIMAX. a • Poca escalabilidad de procesadores. 14 . • La raz´n principal por el alto precio de Cray es la memoria. ENCORE. SEQUENT y BALANCE. o Figura 2. o Algunos ejemplos de estos sistemas son: SGI/Cray Power Challenge.6). No hay diferencia entre las CPU. A esta comunicaci´n se le conoce como paso de mensajes. deber´ enviar un mensaje solicit´ndolos a a (figura 2.6. SGI/Cray C90. Otro t´rmino con que se conoce es m´quinas e a firmemente juntas o de multiprocesadores. todas las CPU tienen un camino libre a la memoria. Los procesadores pueden compartir informaci´n solamente enviando mensajes. Sistemas de memoria distribuida: Estos sistemas tienen su propia memoria local. Desventajas: • El acceso simult´neo a memoria es un problema. SGI/Onyx.mismo sistema operativo y memoria.

secuencias de instrucciones pasan a trav´s de m´ltiples procesadores. Aqu´ hay N secuencias de instrucciones y una secuencia de datos. a MISD El modelo MISD no tiene una aplicaci´n real.7. Diferentes opee u raciones son realizadas en diversos procesadores. usando su propio sistema y memoria. donde m´ltiples procesadores trabajan en diferentes u partes de un programa. Las computadoras con sistemas de memoria distribuida son f´ciles a de escalar. Modelo MISD (Multiple Instruction Single Data). • La programaci´n puede ser complicada. En este o o o modelo. El paralelismo es alcanı zado dejando que los procesadores realicen cosas al mismo tiempo en el mismo dato. u Figura 2. debido a la demanda de los recursos se puede agregar m´s memoria y a procesadores. Desventajas: • El acceso remoto a memoria es lento. o Las computadoras MIMD de memoria distribuida son conocidas como sistemas de procesamiento en paralelo (MPP). pero se hace la descripci´n te´rica. N procesadores.7). m´quinas libremente juntas o cluster. es decir. cada uno con su propia unidad de control. 15 .Ventajas: • La escalabilidad. Tambi´n se les llama mule ticomputadoras. comparten una memoria com´n (figura 2.

El primer cluster de este tipo fue desarrollado por Thomas Sterling. Tipos de clusters Los clusters se pueden clasificar tomando en cuenta diferentes aspectos como la aplicaci´n. o disponibilidad. servicio. configuraci´n y el n´mero de nodos. Balanceo de carga (Load-Balancing): Cuando los recursos del nodo son insuficientes para el procesamiento de los datos. MPICH y LAM (Local Area Multicomputer) son dos implementaciones de MPI de c´digo abierto.3.2. o u Para cuestiones pr´cticas. as´ como la sustituci´n de una m´quina por otra cuando uno de sus servicios ha ı o a ca´ ıdo. Modelos de clusters NUMA (Non-Uniform Memory Access): Tiene acceso compartido a la memoria donde se puede ejecutar el c´digo del programa. n Alto Desempe˜ o (High Performance Computing): Estas m´quinas han estado conn a figuradas especialmente para centros de datos que requieren una potencia de computaci´n o extrema.3. o PVM (Parallel Virtual Machine): Al igual que MPI. ´sta conexi´n es utilizada para monitorear cu´l(es) de los servicios est´n e o a a en uso. el cluster distribuye entre los dem´s nodos las tareas a para un mejor desempe˜o. en este trabajo se tom´ en cuenta la siguiente clasificaci´n con a o o respecto al servicio que proveen los cluster: Tolerante a fallas (Fail-Over): Utiliza una conexi´n de alto desempe˜o entre las o n computadoras. 2. o MPI (Message Passing Interface): Es el est´ndar abierto de librer´ de paso de a ıas mensajes. hardware.3. sistema operativo. pues carece de a varias caracter´ ısticas y no cumple con los nuevos est´ndares para desarrollo de programas a paralelos.2. aunque ya est´ cayendo en desuso. o o 16 . tambi´n es usado en clusters e Beowulf y se basa en paso de mensajes. de 6 Hardware disponible en los centros de c´mputo que no necesariamente necesita adquirirse espec´ o ıficamente para el prop´sito de la construcci´n de un cluster. Beowulf : Es un cluster de componentes commodity6 dedicados a la soluci´n de un proo blema paralelo.

los nodos se conectan por medio o de una red privada. y s´lo el nodo maestro es visible desde el exterior. y a esto nos referimos cuando decimos que a el balanceo de carga es transparente al usuario. en esta nueva versi´n ya se contemplan arquitecturas de 64 u o bits.3 se ha hablado de los tipos y modelos de clusters.4. el algoritmo interno de a o balanceo de carga migra los procesos entre los nodos del cluster de forma transparente para el usuario.la divisi´n de Ciencias de la Tierra de la NASA en JPL California. Esta soluci´n popular o o ha sido ampliamente aceptada en varios ambientes de producci´n. compilar y manejar las aplicaciones a ejecutar. Los algoritmos de OpenMosix son din´micos. migrando procesos de un nodo a otro.x. e OpenMosix es un parche (patch) al kernel de Linux que proporciona compatibilidad con el est´ndar de Linux versi´n 2.6. ni siquiera que el usuario sepa algo sobre el cluster. El nodo maestro o est´ reservado para acceder. Responde a las variaciones en el uso de los recursos a entre los nodos.x para plataformas IA327 [MCatalan04]. principalmente laboo ratorios de investigaci´n y sitios acad´micos. con y de forma transparente para el proceso para balanceo de carga y para evitar falta de memoria en un nodo. Son los microprocesadores m´s usados en los ordenadores personales (PC).4. La principal ventaja es una mejor compartici´n de los recursos entre nodos. as´ como o ı un mejor aprovechamiento de los mismos. a´n en fase beta. lo que contrasta y es una fuerte ventaja frente a a los algoritmos est´ticos de PVM/MPI. El cluster OpenMosix asigna por s´ mismo la utilizaci´n ´ptima de los recursos que son ı o o necesarios en cada momento y de forma autom´tica. En febrero de 2006 ya existe una nueva versi´n de a o OpenMosix para kernels 2. o o IA32 es la arquitectura de microprocesadores de 32 bits de Intel (Intel Architecture 32). 7 17 . pues ´ste no necesita preocuparse por hacer e uso de algunas tareas o herramientas extra para poder trabajar en este sistema. Aqu´ describiremos las o ı caracter´ ısticas de OpenMosix para entender su funcionamiento y la utilidad de ´ste. o e En una configuraci´n tradicional de un cluster Beowulf. no necesita una adaptaci´n de la aplicaci´n. a 2. OpenMosix como un cluster de alto desempe˜ o y n balanceo de carga En la secci´n 2.

4. La caracter´ ıstica de migraci´n de procesos transparente hace que el cluster funcione de foro ma “similar” a un sistema SMP(Symmetric Multi Processing). donde las tareas originadas en un nodo del cluster pueden distribuirse en los diferentes “procesadores” de este sistema. Adem´s los procesos con m´ltiples threads (hilos) no ganan demasiada eficiencia. tiene limitaciones de funcionamiento. No son necesarias modificaciones en el c´digo. Problemas con memoria compartida. si esta est´ dividida en procesos. Tampoco a u se obtiene mucha mejora cuando se ejecuta un solo proceso. como por ejemplo un navegador web.OpenMosix puede balancear una unica aplicaci´n. No migra todos los procesos siempre. o Contras de OpenMosix: Es dependiente del kernel. El proyecto OpenMosix est´ respaldado y siendo desarrollado por personas muy competena tes y respetadas en el mundo del Open Source. Cuando un u ıa: nodo est´ muy cargado por sus procesos y otro no. se migran procesos del primer nodo al a segundo. Subsistemas de OpenMosix Actualmente podemos dividir los parches de OpenMosix en cuatro grandes subsistemas.2. tratando de crear un est´ndar en el entorno de clustering para todo tipo de aplicaciones HPC (High a Performance Computing). 18 . Caracter´ ısticas de OpenMosix Pros de OpenMosix: No se requieren paquetes extra.4.1. 2. trabajando juntas en todo el mundo. 2. Esto ´ o a ocurre en gran n´mero de aplicaciones hoy en d´ lo que balancea son procesos.

o Direct File System Access(DFSA): OpenMosix proporciona MFS con la opci´n DFSA. El concepto de migraci´n significa que un proceso se divide en dos partes: la parte del o usuario y la del sistema. 19 . La parte. Las tareas que separan dicho l´ ımite se migran forzosamente a un nodo destino de entre los nodos del cluster que tengan suficiente memoria como para ejecutar el proceso sin necesidad de hacer swap a disco. que permite acceso a todos los sistemas o de archivos tanto locales como remotos. o en el seno del cluster (nodo maestro). por ejemplo. y por ello se le considera por separado. la comunicaci´n entre estos dos procesos.Mosix File System (MFS): En cuanto a l´ ıneas de c´digo el primer subsistema es MFS que permite un acceso a sisteo mas de archivos remotos. Migraci´n de procesos: o Con OpenMosix se puede lanzar un proceso en una computadora y ver si se ejecuta en ´sta. ahorrando as´ la gran p´rdida de ı e rendimiento que esto supone. como si estuviese localmente montado. e Cada proceso tiene su unico nodo ra´ (UHN. o ´rea de usuario. en otra. ser´ movida al nodo remoto mientras a a el ´rea de sistema espera en el ra´ Mientras tanto OpenMosix se encarga de establecer a ız. Memory Ushering: Este subsistema se encarga de migrar las tareas que superan la memoria disponible en el nodo en el que se ejecutan. El sistema de archivos del nodo ra´ y de los dem´s podr´n ser montados en el directorio ız a a /mf s y se podr´n acceder por ejemplo: para acceder al /home del nodo 2 dentro del a directorio /mf s/2/home desde cualquier nodo del cluster. El subsistema de memoria ushering es un subsistema independiente del subsistema de equilibrado de carga. Unique Home Node) que corresponde con ´ ız el que lo ha generado.

3. hecho que da lugar a que el proceso no o ız use un PID del nodo de ejecuci´n si no que el proceso migrado se ejecutara en este como una o thread (hebra o hilo) del kernel. Es as´ como desde que una tarea se ejecuta hasta que ´sta termina. La migraci´n tambi´n puede ser autom´tica: el algoritmo que lo implementa tiene una complejidad o e a del orden de O(n). siendo n el n´mero de nodos del cluster [MCatalan04]. podr´ migrar de ı e a un nodo a otro. sin ning´n efecto ni notificaci´n. a masiado cargado y las tareas que se est´n ejecutando puedan migrar a cualquier otro nodo del a cluster.2. por ejemplo enviarle se˜ales a o n cualquier proceso migrado. La interacci´n con un proceso. u o 8 20 . Por otra parte la migraci´n y el retorno al nodo ra´ de un proceso se puede realizar tanto o ız desde el nodo ra´ como desde el nodo d´nde se ejecuta el proceso. en el que puede migrarse o cualquier proceso a cualquier nodo del cluster de forma completamente transparente. 2.4.4. de ejecuci´n puede ser el nodo ra´ u otro diferente. u La ventaja del modelo es que la distribuci´n de tareas en el cluster est´ determinada por o a OpenMosix de forma din´mica. cada proceso con su correspondiente Identificador de Proceso (PID) parece ejecutarse en su nodo ra´ El nodo ız. sin que el proceso sufra mayores cambios. Esta tarea la puede llevar ız o el administrador de cualquiera de los dos sistemas. Esto significa que o al proceso migrado no se le avisa que ya no se ejecuta en su nodo de origen. As´ cuando un nodo est´ dea ı. y si tuviera que fork-and-forget hace referencia a que el sistema cuando reconoce un subproceso.4. se encarga de ejecutarlo en otro nodo en paralelo. originalmente el proceso y donde ´ste empieza a ejecutarse. e Desde el punto de vista del espacio de procesos de la maquina del cluster. se puede realizar exclusivamente del nodo ra´ ız. El mecanismo de migrado La migraci´n de procesos en OpenMosix es completamente transparente. El nodo ra´ ız: Cada proceso ejecutado en el cluster tiene asignado un unico nodo ra´ en el cual se lanza ´ ız. El algoritmo de migraci´n o El proceso de migraci´n basado en el modelo f ork −and−f orget8 . conforme se van creando tareas.

2. el proceso migrado puede necesitar hacer alguna llamada al sistema. hecho que supone leer o grabar remotamente en ıa este nodo.4. y en caso de que alg´n u proceso deje de cumplirlas. El mecanismo de migraci´n de procesos puede operar sobre cualquier tarea de un nodo sobre el que o se cumplen algunas condiciones predeterminadas.6. lo devuelve al nodo ra´ para que se ejecute en ´l mientras no pueda ız e migrar de nuevo.4. a e El proceso no puede mapear memoria de un dispositivo a la RAM. Y una condici´n muy importante: el proceso no puede usar segmentos de memoria como partida. Comunicaci´n entre las dos ´reas o a Un aspecto interesante es c´mo se realiza la comunicaci´n entre el ´rea de usuario y el ´rea o o a a En alg´n momento.5. ¿C´ ando podr´ migrar un proceso? u a Desgraciadamente. de kernel. donde o se requieren ejecutar instrucciones antiguas para procesadores de arquitectura 8086. lo har´ en el nodo origen. ni acceder directamente a los registros de un dispositivo. estas son: El proceso no puede ejecutarse en modo de emulaci´n VM86 (Modo Virtual 8086).leer o escribir algo. u Esta llamada se captura y se eval´a: u 21 . Cumpliendo todas estas condiciones el proceso puede migrar y ejecutarse migrado. Como se puede sospechar OpenMosix no sabe nada de esto y en un principio migra todos los procesos que puedan hacerlo si por el momento cumple todas las condiciones. 2. El proceso no puede ejecutar instrucciones en ensamblador propias de la m´quina donde a se lanza y que no tiene la m´quina destino (en un cluster heterog´neo). no todos los procesos pueden migrar en cualquier circunstancia.

El subsistema de OpenMosix del nodo ra´ contacta con el subsistema o n ız de OpenMosix del nodo d´nde el proceso migrado se ejecuta. o e ız. Esta comunicaci´n tambi´n puede ser generada por el nodo ra´ Es el caso.Si puede ser ejecutada al nodo al que la tarea ha migrado. por ejemplo. por ejemplo. que se atiende en el nodo donde la tarea se ejecuta sin ninguna carga adicional a la red. o una escritura a disco. es decir. Tenemos un escenario muy simple donde el proceso se suspende esperando un n e 22 . y ´l avisa que ha ocurrido un o e evento as´ ıncrono. o Si necesita ser lanzada en el nodo ra´ del proceso migrado ız Si la llamada puede ser lanzada al nodo donde la tarea migrada se ejecuta. de una lectura ız. los accesos al kernel se hacen de forma local. el aviso detallado de la llamada y todo aquello que el proceso necesita saber (anteriormente enumerado) cuando recibi´ la se˜al. El subsistema de OpenMosix del nodo d´nde el proceso migrado se ejecuta o parar´ el proceso migrado y el nodo ra´ podr´ empezar a atender el c´digo del ´rea del kernel a ız a o a que corresponder´ a la se˜al as´ a n ıncrona. las llamadas m´s comunes son las que se han de ejecutar forzosamente al a nodo ra´ puesto que se comunican con el hardware. y el proceso migrado finalmente recupeo n rar´ el control. a Por todo esto el proceso migrado es como si estuviera al nodo ra´ y hubiera recibido la ız se˜al de ´ste. una vez realizada toda la operaci´n necesaria del ´rea del kernel. Finalmente. el subsistema o a de OpenMosix del nodo ra´ del proceso env´ al nodo donde est´ ejecut´ndose realmente el ız ıa a a proceso migrado. En este caso el subsistema de OpenMosix del nodo donde se ejecuta la tarea contacta con el subsistema de OpenMosix del nodo ra´ Para enviarle la petici´n. o as´ como todos los par´metros y los datos del nodo ra´ que necesitara procesar. e Aquello que necesite saber para actualizar sus segmentos de datos. Es el caso. Por desgracia. ız. El estado en el que estar´ si el proceso se ejecuta en el nodo ra´ a ız. del envi´ de una se˜al. ı a ız El nodo ra´ procesar´ la llamada y enviara de vuelta al nodo d´nde se esta ejecutando ız a o realmente el proceso migrado cualquiera de estos datos: El valor del ´xito o fracaso de la llamada.

Recordemos que la suspensi´n esperando un recurso se produce unicamente en ´rea de o ´ a kernel. es decir. o las llamadas al kernel y la recepci´n de sus valores de vuelta. en el caso de llamadas al kernel que tengan que ser enviadas forzosamente al nodo ra´ tendremos una sobrecarga adicional a la red debida a la transmisi´n constante de ız. Cuando se pide una p´gina de disco o se espera un paquete de red se resuelve como en a el primer caso comentado. Este mecanismo de comunicaci´n entre ´reas es el que nos aseguran que: o a La migraci´n sea completamente transparente tanto para el proceso que migra como para o los procesos que cohabiten con el nodo ra´ ız. como una llamada al kernel.recurso. ıa o No obstante. o Destacamos especialmente esta sobrecarga en el acceso a sockets y el acceso a disco duro. que son las dos operaciones mas importantes que se habr´n de ejecutar en el nodo ra´ y supoa ız nen una sobrecarga al proceso de comunicaci´n entre la ´rea de usuario migrada y la ´rea de o a a kernel del proceso migrado. Que el proceso no necesite ser reescrito para poder migrar. 23 . ni sea necesario conocer la topolog´ del cluster para escribir una aplicaci´n paralela.

tal vez con a mejores recursos de memoria y procesador. o ıa Con base en estas observaciones. Cuando se planea la o adquisici´n. o 3.1. el hardware que puede adquirirse en el mercado. no indispensable pero si o recomendado. por lo que es indispensable que el procesador externo tenga el a conjunto de instrucciones necesarias para poder procesar el c´digo compilado en el nodo anfio tri´n. Requerimientos de Hardware La elecci´n del hardware a utilizar en un cluster puede definirse primeramente en base a o conocer la magnitud del problema o problemas que se quieren resolver. se concluye que la construcci´n de un cluster OpenMosix o como en otros tipos de clusters es muy recomendable que se haga con hardware homog´neo. los recursos econ´micos y humanos con los que se cuentan. tanto para o administrar el cluster c´mo para programar y ejecutar las aplicaciones. la distribuci´n de procesos en los nodos del cluster es o o o la principal caracter´ ıstica de funcionalidad de OpenMosix. Hablando en t´rminos del programa. De una forma ideal. o o 24 . ´ste estar´ ejee e a cut´ndose en nodos externos. e aunque muchas de las veces debido a los recursos con los que se pueden disponer en nuestro centros de investigaci´n no es posible cumplir con este requerimiento. se propone la compra del “mejor” equipo de c´mputo.4. pues adem´s de proveer un ambiente de ejecuci´n adecuado para los procesos. de otra forma el programa no podr´ ejecutarse.Cap´ ıtulo 3 An´lisis para el dise˜ o del cluster a n OpenMosix Como se habl´ en la secci´n 2. a o facilita la administraci´n del software instalado en los nodos del cluster. los procesos buscar´n ejecutarse en un ambiente igual o muy similar del nodo donde provienen.

La descripci´n de estos nodos es una propuesta ideal para ensamblar el cluster. Cabe aclarar que no se propone la a construcci´n de un cluster especifico. Caracter´ ısticas de los nodos Se identifican como nodos aquellas unidades individuales de procesamiento en el cluster. En el cap´ ıtulo 7. Como ejemplo. en t´rminos del hardware disponible en el mercado estamos e hablando de los procesadores Intel y AMD con tecnolog´ para procesamiento de palabras de ıa 32 bits.1. 3. OpenMosix ha sido desarrollado y probado para funcionar en estos dos tipos de procesadores y como se ha mencionado ya. problema o o ae o proyecto en particular. Los factores en la elecci´n de uno u otro tipo de procesador son principalmente su costo y o tambi´n por supuesto el software que se podr´ aprovechar al m´ximo. Esto no quiere decir que sea imposible de implementar un cluster de bajo costo con hardware de bajo costo. en las pruebas de rendimiento se mostrar´ la utilidad de OpenMosix y el tipo de a programas que pueden aprovechar ´sta tecnolog´ y cuales no. el cluster que se ha propuesto es para la ejecuci´n o de programas de prop´sito general que ya existen o se usan dentro del Instituto de Ingenier´ o ıa. aunque por supuesto e o es hardware que cumple con los requerimientos b´sicos. se puede e a a mencionar que por cuestiones de mercado. pues no se ensamblar´ ´ste para un prop´sito. si no por el contrario. simplemente se requiere en la mayor´ de los casos un estudio de las ıa herramientas disponibles para optimizar las aplicaciones de los usuarios. por tanto se propondr´ el dise˜o de un cluster que pueda en el mayor a n de los casos responder a las necesidades generales. Para la implementaci´n de un cluster OpenMosix. en ´sta tamo e bi´n se describe el tipo de red o canal de comunicaci´n que se recomienda. es decir.1. ıas a pero en cuanto al desarrollo de aplicaciones de software comerciales y no comerciales. los procesadores AMD han sido m´s econ´micos sin a o querer decir con esto que tengan un menor rendimiento o tecnolog´ m´s obsoleta o atrasada. como por ejemplos los compiladores. o de aquellos que pueden ser adaptados con cierta facilidad a este tipo de ambientes. estas han sido desarrolladas y optimizadas para los procesadores Intel. es recomendable no ensamblar clusters con ambos tipos de procesadores. e ıa En las coordinaciones donde se desarroll´ este trabajo se ejecutan programas con diferentes o tipos de requerimientos. 25 . el hardware soportado es para las arquiteco turas IA32 y compatibles.

mouse. Velocidad del procesador (Processor Speed) 3. Velocidad de la memoria (System Memory Speed) 667 MHz.). ´stas quedan a criterio de las necesidades reales que se les puedan dar a estos e dispositivos en el cluster.Con base en estas observaciones se hace una propuesta de equipo de c´mputo ideal. SCSI de 15.000 rpm. etc.) y tarjetas adicionales (tarjeta SCSI para los dise cos duros. Se ha listado el hardware b´sico de forma ilustrativa. Velocidad del Bus (System Bus Speed) 800 MHz. peno sando en que la adquisici´n de este equipo es exclusivamente para el uso de un cluster dedicado. o Procesador: Intel(R) Pentium (R) 4. Tarjeta de red Intel Gigabit Ethernet. 26 . Tarjeta Madre (Motherboard) Intel Corporation. Disco Duro (Hard Disk): 120 GB. pues no se mencionan detalles como a dispositivos perif´ricos (teclado. Cache Nivel 2 (L2) de 2 MB.6 GHz. Memoria (RAM): 2 GB DDR-2 667 MHz. etc.

En el caso OpenMosix.2. como el sistema operativo Linux. Principalmente por que es de c´digo abierto. desde la aparici´n de las redes de computadoras han surgido diversos tipos o de tecnolog´ Las m´s destacadas por su bajo costo relativo y la facilidad de uso e implemenıas. e En ´sta propuesta. pues de este dependen todo tipo de comunicao ciones que haya entre los nodos. Aunque una red de este tipo no siempre satisface las necesidades o de comunicaci´n veloz de un cluster. el proyecto que origin´ todos los derivados actuales de clusters.3. se considera implementar Gigabit Ethernet. considerando que las redes tipo Ethernet se hacen cada vez m´s accesibles e a por la reducci´n de costos.2. el tener la ultima tecnolog´ en cuanto a procesadores no ayuda en nada al cluster. Caracter´ ısticas de la distribuci´n Linux o Una alternativa importante para atender soluciones a ciertas demandas de c´mputo cient´ o ıfico se deriva de componentes de software libre. Derivado de esto. el kernel y el tipo de comunicaciones con las que ıas a trabaja OpenMosix. pues e ´ ıa la comunicaci´n entre ellos echa por la borda el trabajo de cooperaci´n que pudieran tener de o o una forma eficiente. a u 3. o entre otras caracter´ ısticas. Requerimientos de Software El fin que lleva a la construcci´n de un cluster es por supuesto la ejecuci´n de alg´n proo o u grama. por el costo y la reutilizaci´n de las redes ya instaladas se o o hace casi siempre uso de ´stas. En el mercado. varios grupos han desarrollado lo que se les conoce 27 . entonces es de suma importancia conocer que tipo de software que se debe y se puede instalar para que las tareas que se ejecuten lo hagan con el mejor desempe˜o posible. el canal de comunicaci´n es uno de los subsistemas m´s o a importantes en la construcci´n de un cluster. no est´n programadas para aprovecharlas a´n. su o o c´digo fuente esta disponible para poder adaptarlo a distintos ambientes de hardware y software.1.2. a taci´n son las redes Ethernet. pues aunque a existen tecnolog´ de red mucho m´s veloces. n 3. Cuando no se tiene el conocimiento sobre la importancia de ´ste. o es el tipo de red de computadoras m´s veloz con el que se conoce puede trabajar.1. Caracter´ ısticas de la red de computadoras Como se ha venido mencionando.

de acuerdo con la documentaci´n y foros de discusi´n de usuao o rios de ´sta tecnolog´ las distribuciones m´s utilizadas son Red Hat. La elecci´n de la distribuci´n para implementar un cluster OpenMosix depende de factores o o b´sicos como lo es el software con el que cuenta la distribuci´n. o Aquellas de las que s´ se dispone del c´digo fuente. Para el proyecto OpenMosix. su facilidad de o uso y aprendizaje entre otros. la n mayor´ de las veces basta con el compilador de software libre como GNU/GCC y librer´ de ıa ıas 28 . Esto quiere decir que un compilador puede generar un c´digo objeto o tambi´n llamado ejecutable que puede ser ejecutado m´s eficientemente y con o e a mayor velocidad en la misma arquitectura del procesador donde se trabaja.como distribuciones de Linux. Debian. Dependiendo del programa que se compile y del tipo de resultados que se desea obtener en cuanto a velocidad de ejecuci´n. las herramientas de administraci´n del sistema. Como es conocido. no todos los compiladores hacen optimizaciones de la misma calida.2. existe una gran variedad de distribuciones.5. pues aunque pareciera ser trivial. saber: Caracter´ ısticas de los compiladores Dentro de las aplicaciones finales que ser´n ejecutadas en el cluster. e o o En proyectos de c´mputo cient´ o ıfico peque˜os. para programas en lenguaje C o Fortran. el compilador a o es una pieza muy importante. facilidad de uso y estabilidad. Tamo o bi´n en esta decisi´n influye conjuntamente el costo monetario de la adquisici´n del compilador. es la decisi´n en el uso de uno u otro compilador. s´lo es necesario revisar o que cumplan con los requisitos que se han mencionado en la secci´n 2. tenemos dos casos a a Aquellas que por ser aplicaciones comerciales o de terceros no se dispone del c´digo fuente. e ıa.2. y muchas de estas pueden ser tomadas como base para poder implementar un cluster OpenMosix. Suse y Gentoo. ı o Para que las primeras puedan aprovechar el cluster OpenMosix. o Para los programas que se generar´ un ejecutable a partir del c´digo fuente. o 3. el soporte a actualizaciones a o para todo este tipo de software. a Todas ellas utilizadas por su gran reputaci´n en el mercado.4.

por o e el tipo de proyecto. ´ste posee un conjunto de herramientas llamadas User Land Tools. En otros casos.2. Estos compiladores como se ha mencionado tienen la capacidad de hacer optimizaciones muy fuertes. que tambi´n son software libre. ´stas son las e e herramientas b´sicas que nos ayudan en la administraci´n b´sica de los procesos que se distria o a buyen en los nodos as´ como de su supervisi´n. En el caso de un cluster OpenMosix. es conveniente gastar en la adquisici´n de compiladores comerciales como o los que vende Intel y Portran Group entre otros. o Estas herramientas tendr´n la tarea de reportar: a El estado actual de los procesos. adem´s de proveer en la mayor´ de a ıa los casos herramientas para depurar el c´digo. El estado actual de tr´fico de red. hace uso de herramientas que faciliten tareas como las listadas anteriormente.programaci´n como PVM y LAM/MPI. El estado actual de la carga de cada nodo del cluster. se hace necesario la utilizaci´n de otras o herramientas para la administraci´n y el monitoreo de los procesos distribuidos en el cluster. o Cada tipo de cluster y dependiendo de las aplicaciones y software que se utilice. o 3. e 29 . Resultados parciales del proceso o procesos en ejecuci´n. Herramientas de administraci´n o Adem´s de las herramientas de administraci´n de procesos y sistemas de archivos locales a o con las que cuentan todas las distribuciones de Linux. En los siguientes cap´ ı o ıtulos se habla con m´s a detalle sobre el uso de ´stas. a El estado actual de los sistemas de archivos distribuidos si se cuenta con ellos.3.

8 GHz. Velocidad del procesador (Processor Speed) 2. o Para este dise˜o se tomaron en cuenta los mejores equipos y de igual arquitectura con los n que se cuenta para obtener un mejor rendimiento de las aplicaciones. Memoria (RAM): 512 MB DDR 400 MHz.1. Cache Nivel 2 (L2) de 512 KB.Cap´ ıtulo 4 Dise˜ o del cluster OpenMosix n En este cap´ ıtulo se describen los componentes de hardware y de software que componen el cluster OpenMosix antes de comenzar con el procedimiento de instalaci´n.1. 4. tomando en cuenta que los dem´s fueran de la misma arquitectura.1. Organizaci´n de los nodos o Hardware Nodo maestro: Este nodo se eligi´ por tener el mejor procesador de las computadoras o disponibles. 4. a Las principales caracter´ ısticas son: Procesador: Intel(R) Pentium (R) 4. 30 .

IDE de 7.Disco Duro (Hard Disk): Segate ST31200022A 120 GB. 31 . Disco Duro (Hard Disk): Segate ST38001A 80 GB.200 rpm. Las principales caracter´ ısticas de estos nodos son: Procesador: Intel(R) Pentium (R) 4.200 rpm. Tarjeta de red Intel (R) Pro/100 Network Conecction. Memoria (RAM): 512 MB DDR 400 MHz. Velocidad del Bus (System Bus Speed) 800 MHz. Velocidad del procesador (Processor Speed) 2. Velocidad de la memoria (System Memory Speed) 400 MHz. la unica die ´ ferencia radica en la velocidad del procesador que es menor a la del nodo maestro. Velocidad del Bus (System Bus Speed) 800 MHz. Cache Nivel 2 (L2) de 512 KB. Fast Ethernet. IDE de 7.4 GHz. Tarjeta Madre (Motherboard) Intel Corporation D865GLC. Nodos esclavos: Los tres nodos esclavos son casi id´nticos al nodo principal. Velocidad de la memoria (System Memory Speed) 400 MHz. Tarjeta Madre (Motherboard): Intel Corporation D865GBF.

ıan Estas herramientas para administrar. 32 . supervisar y migrar los procesos en el cluster OpenMosix se describen en detalle en el cap´ ıtulo seis. Sistema de archivos: Reiserfs: Sistema de archivo utilizado para las particiones Linux.4. incluye la caracter´ ıstica de journaling que previene el riesgo corrupciones del sistema de archivos y es de los m´s utilizados por presentar mejor desempe˜o en el manejo de a n archivos.4.24: Distribuci´n de Linux que soporta versiones de kero nels 2. adem´s de ser la distribuci´n que se utiliza para servidores a o y estaciones de trabajo de los usuarios en el Instituto de Ingenier´ ıa.0 con kernel OpenMosix 2.1. OpenMosixView: Aplicaci´n gr´fica de monitoreo de OpenMosix.Tarjeta de red: Intel (R) Pro/100 Network Conecction Fast Ethernet 4. que al igual que el sistema de archivos ext3. Herramientas de administraci´n o User Lan Tools: Las herramientas de ´rea de usuario son lo m´ a ınimo que necesita cualquier administrador o usuario de OpenMosix para el manejo de los procesos. Software Sistema Operativo: Suse 9. con ella puede realizarse o a parte de las tareas comunes que se har´ con los comandos de las User Lan Tools.x compatible con openMosix.2. Mosix File System (MFS): Necesario en OpenMosix para proveer de acceso al sistema de archivos remotos y que ayuda a mantener la consistencia de cache.

1. seg´n la tarjeta de red. Topolog´ ıa La topolog´ de red utilizada es la estrella.2.1. pero un fallo en el controlador central desactiva la red completa.2. es necesario. n 4. 4. Descripci´n de la conexi´n de los nodos o o En esta secci´n se da una descripci´n de la topolog´ de la red y de los componentes de la o o ıa conexi´n entre nodos del cluster. Todas las comunicaciones pasan a trav´s del switch. se caracteriza por tener todos sus nodos conecıa tados a un controlador central.2.6 Gbps (forwarding bandwidth) y 10. el fallo de un nodo en particular es f´cil de detectar y a no da˜a el resto de la red. e a ıa e tecnolog´ con que cuenta el Instituto de Ingenier´ a la cual se le da mayor prioridad cuando ıa ıa. que es el que provee de red ethernet a la Torre de Ingenier´ donde se encuentra f´ ıa. como lo muestra la figura 4. en este caso. Switch El switch es marca 3Com SuperStack 3. Los equipos conectados a este switch se conectan a una velocidad auto negociable de 10BaseT/100Base-TX. El switch es de 48 nodos y tambi´n soporta tr´fico de telefon´ o tambi´n llamado VoIP. siendo ´ste el encare e gado de controlarlas. Por este motivo. u Cuenta con un puerto Gigabit 1000 Base SX para salir a otro equipo: 3Com 7700. Cabe mencioo nar que esta configuraci´n es parte de la red actual del Instituto de Ingenier´ o ıa. Una caracter´ ıstica importante es que soporta telefon´ sobre IP y tiene rendimiento de anıa cho de banda de 13.4. un switch de 48 nodos de los cuales 4 nodos pertenecen al cluster. serie 4400. 33 . ısicamente el cluster.1 millones de paquetes por segundo.2. como son el switch y el cable de red utilizados.

e integradas a las tarjetas madre. 34 .3. Tarjetas de red Las tarjetas de red con que cuenta cada nodo. Cable El cable con el que est´n conectados los nodos del cluster al switch que los une.Figura 4. es esa tructurado de la marca Kron categor´ 6. Diagrama del cluster 4.2.1. para velocidades de transmisi´n de datos Ethernet ıa o 10/100/1000. 4.4. son las especificadas anteriormente.2. todas estas marca Intel.

En cada nodo se tiene instalado Windows XP Profesional.0 de forma o breve. particionado de la siguiente forma para el nodo maestro y de manera similar para los nodos esclavos: 80 GB con Windows XP Profesional SP2 con un sistema de archivos NTFS.3 Profesional y se instal´ Suse Linux 9. e o Descripci´n de particiones del disco duro: o Los nodos con los que se trabaj´ son compartidos. 35 .3 Profesional con un sistema de archivos reiserfs. ahora se plantea la forma en que se lleva a cabo la implementaci´n.Cap´ ıtulo 5 Implementaci´n del cluster OpenMosix o Conociendo la terminolog´ b´sica sobre clusters y habiendo formulado un dise˜o espec´ ıa a n ıfico con OpenMosix. en este cap´ a ıtulo se explica la instalaci´n de Suse Linux 9. todo en un mismo disco duro. 30 GB con Linux Suse 9.1. 6 GB con Linux Suse 9. es decir se utilizan tanto en ambientes o Windows como en Linux y no son de uso exclusivo del cluster. o 5. puesto que se hace mayor ´nfasis en la instalaci´n de OpenMosix.0 Profesional o para configurar el cluster OpenMosix. 1 GB con swap (Memoria de intercambio virtual) para Linux. Instalaci´n de los nodos o De una forma pr´ctica. Suse Linux 9.0 Profesional con un sistema de archivos reiserfs.

la configuraci´n elegida fue de uso exclusivo del cluster. 9 ´ http://www.Se muestra con mayor detalle esta configuraci´n con ayuda del comando fdisk : o # fdisk -l Device Boot /dev/hda1 * /dev/hda2 /dev/hda3 /dev/hda4 Start 1 10200 10330 13854 End 10199 10329 13853 14592 Blocks 81923436 1044225 28306530 5936017+ Id 7 82 83 83 System HPFS/NTFS Linux swap Linux Linux Las primeras tres particiones son de uso particular de los usuarios de las computadoras utilizadas. 5. mascara de red. Esta actualizaci´n se hace tambi´n o e por medio de la red del espejo mencionando.1. o o o 5. y se instalan los m´dulos de los controladores necesarios seg´n el hardware con el que o u se cuenta. o 5.1.2. necesario para mantener seguro el sistema.mx. trabajo en grupo o Internet. Configuraci´n de la red o Se hizo una configuraci´n est´tica de direcciones IP.0.1.iingen. la cuarta partici´n es la que se usa para la instalaci´n y configuraci´n de OpenMosix. se utiliza como fuente de instalaci´n el espejo (mirror) http://linux.com/es-es/documentation/suse/index. en este caso. o donde se cuenta con los archivos fuente de instalaci´n. pues los o usuarios de estos equipos no la usan para acceso a recursos de red. gateway y DNS para o a una red privada.novell. Actualizaciones (patchs) del sistema La actualizaci´n de los paquetes instalados se hace utilizando la herramienta YOU (Yast On o Line Update).html [Ultima consulta: febrero 2006] 36 .0 o 9 Se hace la instalaci´n est´ndar a trav´s de red con el CD n´mero uno de instalaci´n y la o a e u o herramienta de instalaci´n y administraci´n Yast o o la cual nos guiar´ haciendo las particiones a necesarias. Instalaci´n de Suse 9. como impresiones. tambi´n se puede hacer ´sta con los 5 o e e CDs de instalaci´n de Suse 9.3.1.unam.

lo coloca en /usr/src/linux-2. es decir. con el que ya se est´ trabajando.i386.i386. las User Lan Tools y se configuo ran los nodos para que arranquen en nivel 3 (multiusuario sin modo gr´fico) para mejorar el a rendimiento de ´stos en el cluster.0 precompilado. # cd /usr/src/linux-2. pues no necesitan un ambiente gr´fico para las aplicaciones e a de ventanas. Compilaci´n del kernel OpenMosix o ´ Esta es la parte central del trabajo. Comenzamos con la instalaci´n del kernel openmosix-kernel-source-2.4. los cuales a´n no u est´n compilados: a # rpm -ivh OpenMosix-kernel-source-2. las User Lan Tools y las herramientas adicionales de administraci´n y monitoreo (OpenMosixView).24-OpenMosix2 Es en este momento cuando se procede con la compilaci´n del kernel OpenMosix. Configuraci´n de los nodos o En los nodos esclavos s´lo se instala el kernel OpenMosix. Aqu´ se describe la forma de instalar el kernel o n´cleo ı u con el que funciona OpenMosix. a 5.2.5. o a pues en este archivo se listan todos los m´dulos para que nuestro nodo funcione adecuao damente.4.4.1.rpm o que soporta el sistema de archivos MFS.4.24-OpenMosix2.rpm El c´digo fuente al instalar este rpm.24-OpenMosix2.24-OpenMosix2. Se instalan los archivos fuente de OpenMosix con los parches incluidos. por o lo que hay que cambiarse a esa ruta. 37 . En el nodo maestro se instala el kernel OpenMosix. limo piando los archivos de c´digo objeto obsoletos que pudieran encontrarse: o # make mrproper Se configuran las opciones de compilaci´n del kernel bas´ndose en el archivo de configuo a raci´n de un kernel de Suse 9.2. se configura para que arranque o en nivel 5 (modo gr´fico) y poder aprovechar las herramientas de monitoreo.

1). se quitan los m´dulos del hardware con el que no se cuenta y se asegura que se encuentren seleco cionados los m´dulos del hardware de los equipos utilizados (figura 5. Configuraci´n del kernel OpenMosix o Se habilita el trabajo del kernel con OpenMosix y el Sistema de archivos OpenMosix File-System (5. Configuraci´n de OpenMosix o Se resuelven las dependencias de todos los m´dulos seleccionados para compilarse en el o kernel.# make xconfig Se personaliza de acuerdo al hardware con el que se cuenta. y si es necesario.2. o Figura 5. 38 .2).1. Figura 5.

Instalaci´n del kernel o Una vez compilado el kernel se comienza con su instalaci´n.4.rpm Se crea el initrd para el kernel OpenMosix compilado. Mandrake y Suse que tiene entre otras ventajas.24OpenMosix2-1. tomando en cuenta que el directorio /mfs ya fue creado anteriormente: # vi /etc/fstab mfs_mnt /mfs mfs dfsa=1 0 0 5. a 39 .24-OpenMosix2 Se agrega la siguiente l´ ınea al archivo /etc/fstab para dar de alta el sistema de archivos MFS. o Se crea el rpm. es necesario tener instaladas las librer´ ncurses.3.2.i586.4. # make rpm 5. o Se instala el rpm creado con el siguiente comando: # rpm -ivh /usr/src/packages/RPMS/i586/kernel-2.24-OpenMosix2 root=/dev/hda4\ vga=0x31a splash=silent desktop hdc=ide-scsi hdclun=0 showopts initrd (hd0. tener un mayor control de los archivos en el sistema a la hora de instalarlos o desinstalarlos. contenidas en los ıas CDs de instalaci´n de Suse 9. que es equivalente a compilar las Herramientas de Administraci´n (User o Lan Tools).2. como requisito. Instalaci´n de las User Land Tools o Una vez instalado el kernel se procede a instalar las herramientas de administraci´n User o Land Tools. adem´s de resolver dependencias de paquetes.3)/boot/vmlinuz-2.2. necesario para el correcto arranque del sistema.0) para arrancar con el nuevo kernel OpenMosix.3)/boot/initrd-2.lst.24 kernel (hd0.4.0.4. o title Cluster OpenMosix 2.# make dep Se crea(compila) el rpm10 del nuevo kernel con OpenMosix. y para esto nos cambiamos al directorio /usr/src: 10 Sistema de empaquetamiento de Software que facilita la distribuci´n de Software en algunas Distribuciones o Linux como RedHat. # mkinitrd Se configura Grub (Sistema gestor de arranque de Suse 9. con una configuraci´n como la siguiente en el archivo /boot/grub/menu.

168.4 1 1 1 1 40 .i586. Configuraci´n de OpenMosix o Despu´s de terminar con la instalaci´n del kernel y de las herramientas.168.1.168. procedemos a e o configurar el cluster.3. # rpmbuild --rebuild OpenMosix-tools-0.2 3 192. Instalaci´n de OpenMosixView o Instaladas las herramientas de usuario. para esto.4. dependencias entre paquetes. 5.map 1 192. se necesita editar este archivo y agregar a la lista cada uno de los nodos.map en el cual se listan los nodos pertenecientes al cluster.src.168.3. equivalente a compilar las librer´ y de esta manera se resuelven ıas.4. o # cd /root/srcCluster/toolsOM # rpm -ivh openmosixview-1.3 4 192. necesaria para la correcta compilaci´n de estos c´digos fuente.5-redhat90. # rpm -ivh /usr/src/packages/RPMS/i586/OpenMosix-tools-0.rpm Esta versi´n precompilada se obtuvo del sitio de internet http://www.rpm 5.# cd /usr/src/ Se crea una liga simb´lica. o o o # ln -s linux-2.1.5. o # cd /root/srcCluster/toolsOM Se construye el rpm. quedando de la siguiente forma: # vi /etc/openmosix.1 2 192.1.24-OpenMosix2 linux-OpenMosix Nos cambiamos al directorio donde se tienen el c´digo fuente de las User Land Tools. se procede a instalar las herramientas de monitoreo OpenMosixView: Instalaci´n por medio del paquete rpm.6-2.com/ o donde es mantenido este proyecto.6-2.1.2.2.rpm Se instala el rpm creado.openmosixview.i386. Se configura el archivo /etc/openmosix.

#!/bin/bash #------------------------------------------------------# DESCRIPCION: Script que lanza 10 tareas simultaneas.168.Como se observa. o u a s´lo es para probar la migraci´n de los procesos en el cluster. la configuraci´n anterior podr´ haberse escrito de la siguiente manera: o ıa # vi /etc/openmosix.j++).3.2. se utiliza el comando mosmon: a # mosmon 5. # El objetivo es probar que el cluster esta migrando las # tareas a los dem´s nodos a #------------------------------------------------------for x in 1 2 3 4 5 6 7 8 9 10 do awk ’BEGIN {for(i=0. Cabe mencionar que adem´s del compilador comercial Intel existen otros como a LAHEY y Portran Group. s´lo resta hacer una prueba de funcionao o miento. al observar algunas ventajas de este sobre GNU/GCC. LAHEY y el de Portran Group. o o Para ejecutar el siguiente script. pudiendo con esto hacer abreviaciones de configuraci´n. El programa no tiene ning´n fin pr´ctico.1 4 5. Con el siguiente script en bash shell podemos hacer esta prueba. Instalaci´n de los compiladores o Ahora se describe la instalaci´n del compilador Intel.sh o y se ejecuta.j<10000.}’ & done Para poder observar si los procesos est´n migrando. Se instala el compilador de Intel debido a que es el que adquirieron investigadores del instituto. o es decir.1.map 1 192.6. # Cada tarea itera en un ciclo doble de 10000 unidades.i++)for(j=0. 41 . la primera columna enumera las direcciones IP de los nodos que pertenecen al cluster (columna dos) y la ultima columna indica el n´mero consecutivo de nodos ´ u que pueden pertenecer al cluster. recordando que ya tenemos el compio lador de c´digo libre GNU/GCC. Prueba m´ ınima de funcionamiento Una vez terminada la configuraci´n del cluster. y que sin ´l no habr´ o e ıamos podido compilar los paquetes antes mencionados.i<10000. El funcionamiento de esta se basa en la ejecuci´n de 10 tareas simultaneas. se escribe este c´digo en un archivo llamado pruebaOM.

tar.021. Custom Install (Advanced Users Only).install 1a.0. Installation Guide 1d. Linux Application Debugger for 32-bit applications./install.0. Release Notes 1c.0.0.0 Values in [.0 2. Ver 9.] are the default values.txt Ahora se comienza con la instalaci´n. Exit... Prior to installing the software you will be asked to agree to the terms and conditions of the following license agreement. Ver 9.3.Installs All Components).021.gz: linux:˜/Intel # gunzip l_fc_p_9. "Intel(R) Fortran Compiler 9. o linux:˜/Intel/l_fc_p_9. Please type a selection : 1 ======================================================== Please select an option to continue: 1. Readme 1b.1. o o linux:˜/Intel/l_fc_p_9. Product Web Site URL 1e.lic) x.5. Please type your selection : 2 ========================================================= Please provide the license file name with full path (*. Ver 9. Typical Install (Recommended . ------------------------------------------------------------Press Enter to continue : ============================================================= Do you agree to be bound by the terms and conditions of this license agreement? ’accept’ to continue. Intel(R) Support Web Site URL x.021 # more INSTALL. Please type a selection: 2 Which of the following would you like to install? 1.0 x. Intel(R) Fortran Compiler for 32-bit applications. Exit.021.0 for Linux*" . Exit.tar linux:˜/Intel # cd l_fc_p_9. x. ’reject’ to return to the main menu : accept ============================================================== Processing Intel(R) Fortran Compiler for 32-bit applications. Proceed with Serial Number to install and register.021 #. x. Please make a selection : 1 =========================================================== Intel(R) Fortran Compiler for 32-bit applications.lic ========================================================= Which of the following would you like to do? 1. Provide name of an existing license file. 2. [Recommended] 2. Version 9.0.0 -----------------------------------------------------------Please carefully read the following license agreement.tar.gz linux:˜/Intel # tar -xvf l_fc_p_9. You can just hit the Enter key where you want to use the 42 . Compilador Intel Una vez obtenido este compilador se descomprime el paquete l fc p 9.Exit License file path : /root/Intel/noncommercial_for_l_NJ24-L2HSGXXP. Exit.0.sh ====================================================== "Welcome to Installation" Please make your selection by entering an option: 1.021 Para obtener detalles sobre el producto y la instalaci´n leemos el manual de instalaci´n.

1.003 linux:˜/Intel/lib_Intel/l_mkl_p_7.default values.3. Installation successful.2.] are the default values.gz linux:˜/Intel/lib_Intel # tar -xvf *.tar link1.0 What rpm install options would you like? [-U --replacefiles --force]: ============================================================ Intel(R) Fortran Compiler for 32-bit applications. [/opt/intel/fc/9.021. -----------------------------------------------------------Press Enter to continue: ============================================================ Which of the following would you like to install? 1.003 # ls install mklEULA. Where do you want to install to? Specify directory starting with ’/’.1. Intel(R) Fortran Compiler for 32-bit applications. e o 43 .0 ============================================================ Where do you want to install to? Specify directory starting with ’/’.0 x.021 lib_Intel link_l_fc_p_9. Linux Application Debugger for 32-bit applications..0. linux:˜ \# cd Intel linux:˜/Intel # ls l_fc_p_9.0 Installing. You can just hit the Enter key where you want to use the default values. Linux Application Debugger for 32-bit applications.. [/opt/intel/idb/9.021.0 Installing..txt l_fc_p_9.2. Ver 9. tools for improving application performance.lic linux:˜/Intel/lib_Intel # gunzip *.0.0 2.0]: /usr/local/Intel/9. Press Enter to continue: ============================================================ Which of the following would you like to install? 1.0 2. Ver 9. Exit Please make a selection:x ============================================================ "Installation is complete " Thank you for using Intel(R) Software Development Products.tar linux:˜/Intel/lib_Intel # cd l_mkl_p_7. [/opt/intel/idb/9. Ver 9.. [/opt/intel/fc/9. Ver 9. Intel(R) Fortran Compiler for 32-bit applications. Version 9. 5... Ver 9.0.0]: /usr/local/Intel/9. Librer´ Intel ıas Se instalan tambi´n las librer´ matem´ticas del compilador Intel que ser´n necesarias para e ıas a a la ejecuci´n de uno de los programas de un investigador del Instituto de Ingenier´ o ıa.0 x.0]: /usr/local/Intel ============================================================ Where do you want to install to? Specify directory starting with ’/’.txt Despu´s de la lectura del manual de instalaci´n ejecutamos el instalador. Installation successful. Exit Please make a selection:2 ============================================================ Values in [.2.0]: /usr/local/Intel What rpm install options would you like? [-U --replacefiles --force]: ============================================================ -----------------------------------------------------------Linux Application Debugger for 32-bit applications.txt noncommercial_for_l_NJ24-L2HSGXXP. Where do you want to install to? Specify directory starting with ’/’.

.1. # tar -jvxf lam-7.3.1 <<Enter>> to continue.003 # . you will be asked to agree to the terms and conditions of thefollowing license agreement.2. # cd /root/srcCluster/LAM Desempaquetar con el comando tar... Intel(R) Math Kernel Library Version 7.2.. ---------------------------------------------------Please press Enter to continue.1 run /usr/local/Intel/mkl721/uninstall. 19-Julio-2005.1.1.2. a o La versi´n con la cual se trabajo es LAM 7.linux:˜/Intel/lib_Intel/l_mkl_p_7. ==================================================== Note: To uninstall the Intel(R) Math Kernel Library Version 7. [ /opt/intel ]: /usr/local/Intel Installing Intel(R) Math Kernel Library Version 7. or x to exit: x ===================================================== 5.1. ’reject’ to return to the main menu: accept ==================================================== extracting./install Would you like to install the following? Intel(R) Math Kernel Library Version 7.1/ Configurar el paquete para que funcione con el protocolo TCP y compilar. en ıas o el cap´ ıtulo siete se har´n unas pruebas con estos tipos de c´digos.2. # . Press Enter to continue.2.1 was successfully installed../configure --with-rpi=tcp # make 44 . =================================================== se lee toda la licencia =================================================== Enter ’accept’ to continue... ===================================================== <<Enter>> to continue.1 --------------------------------------------------Please read the following license agreement carefully.2.sh file.1.Prior to installing the software. o Primero cambiarse al directorio donde se encuentra el paquete.bz2 # cd lam-7.1. ==================================================== Where do you want to install to? Specify directory starting with ’/’. or x to exit: ================================================== Where do you want to extract temporary files to? Specify directory starting with ’/’ [/tmp/mkl]: =================================================== Intel(R) Math Kernel Library Version 7.tar.3.1. Librer´ LAM/MPI ıas Recordemos que las librer´ LAM/MPI son necesarias para compilar c´digos paralelos.

1/24 192.168. # SuSEfirewall2 stop # SuSEfirewall2 start Para esta configuraci´n del cluster se hace notar que se implement´ un modelo de seguridad o o b´sica.168. pero si cuidar m´s de la seguridad del nodo maestro o o a nodo basti´n.1.1. el cual normalmente es el que da la cara a las redes p´blicas. Se edita el archivo SuSEfirewall2.168. pues se trabaj´ dentro de una red interna con direcciones IP privadas en la cual se a o supone no habr´ problemas de intrusiones. # cd /etc/sysconfig/ # vi SuSEfirewall2 En el apartado 10. con esto se logra una comunicaci´n o total entre los nodos con una relaci´n de confianza y negando las conexiones entrantes a o cualquier otro equipo no autorizado. a o y una vez instalado lo necesario para que funcione OpenMosix se procede con la configuraci´n o del firewall de los nodos.1.2/24\ 192.4.168.3/24 192. o u 45 . $FW_TRUSTED_NETS="" Por: $FW_TRUSTED_NETS="192. Por ultimo es necesario reiniciar el firewall en cada uno de los nodos para que se actualicen ´ los cambios hechos. se cambia la l´ ınea. Idealmente un cluster dedicado deber´ de tener ıa ıa esta configuraci´n en su red interna.4/24" Las direcciones IP listadas son los nodos del cluster.). esto se hace configurando el archivo /etc/sysconfig/SuSEfirewall2.1. Seguridad l´gica del cluster o Un aspecto importante dentro de cualquier sistema inform´tico es la seguridad l´gica de este.Una vez que termin´ de procesar y compilar podemos instalar. o # make install 5.

1. Monitorizando el cluster La herramienta usada para monitorizar un cluster OpenMosix es mosmon. y que lo hacen indispensable para cualquier administrador de sistemas OpenMosix: con ella puede verse todos los nodos definidos en el cluster. De una a forma tradicional esta informaci´n puede obtenerse mediante el comando top en cada uno de o los nodos. 6. e podemos ver el n´mero de nodos activos e inactivos. Esta herramienta nos permite ver un gr´fico de barras con la carga asociada a cada nodo del cluster. es necesario tener o el control de ´ste para su mejor aprovechamiento posible. supervisar y migrar los procesos en el cluster OpenMosix. Aunque este n´mero de nodos sea mayor u u del que se puede ver en una pantalla. y la soluci´n a o o de mosmon es especialmente buena. En este cap´ e ıtulo se describen algunas de las herramientas para administrar. pero para clusters de m´s de ocho nodos la soluci´n del top es no viable. Herramientas de ´rea de usuario de OpenMosix a Las herramientas de ´rea de usuario son lo m´ a ınimo que necesita cualquier administrador o usuario de OpenMosix para poder trabajar y aprovechar de manera eficiente el cluster.1. podemos con el cursor derecho y el cursor izquierdo 46 .1. que no todos sus usuarios conocen. Mosmon es una utilidad especialmente interesante por varios puntos adicionales. 6. est´n o no activos. tanto f´ ısicamente como l´gicamente.Cap´ ıtulo 6 Administraci´n del cluster o Una vez que se ha instalado el cluster.

Su par´metro princio a pal es el archivo donde estar´ especificado el mapa de nodos. la primera es con el modificador -f nombrearchivo.1. A pesar de que habitualmente no la llamaremos directamente. en cuyo caso o a leer´ el archivo de configuraci´n de la entrada est´ndar. Herramienta mosmon 6. puede ser llamado con un unico par´metro -off. Todo esto hace a mosmon una herramienta realmente imprescindible para el administrador del cluster (figura 6.1). Esto es util para hacer pruebas de a o a ´ configuraci´n. Por ultimo. que tomar´ como archivo a de configuraci´n nombrearchivo. Setpe habitualmente es llamado a de tres formas. Configurando los nodos en OpenMosix La herramienta para configurar los nodos de un cluster OpenMosix es setpe. 47 . Setpe se encarga de determinar la configuraci´n de nodos del cluster. para sacar el nodo o ´ ´ a del cluster. con lo que podr´n verse grandes a cantidades de nodos en una pantalla cualquiera. Figura 6.2. as´ como por o ı numerosos scripts de OpenMosix y herramientas auxiliares.movernos un nodo a la derecha o un nodo a la izquierda. la segunda forma es pasando como par´metro -. es interesante su estudio. Esta herramienta es ejecutada por los scripts de inicializaci´n y parada de OpenMosix.1.

que son: 48 . 6. sin embargo. stay: bloquea la migraci´n autom´tica hacia fuera de cualquier proceso. mosctl nos permite auditar el comportamiento de un nodo ya configurado y verlo. se destacan: block: en el nodo local. y el segundo par´metro es donde queremos que migre. bloquea la entrada de los procesos generados en otro nodo. noblock: deshace los efectos de block. Estos dos modificadores modelan dos casos especiales. nomfs: inhabilita el soporte MFS en OpenMosix. lstay: bloquea la migraci´n autom´tica hacia fuera de los procesos generados localmente. quiet: el nodo local no informar´ a los otros nodos de su estado. De entre las opciones del comando mosctl. a Este segundo par´metro debe ser el identificador valido de un nodo en el cluster. a noquiet: deshace los efectos de quiet. El comando migrate toma dos par´metros: el primero es el PID (Identificador de a proceso) que queremos hacer migrar. mfs: activa el soporte MFS en OpenMosix.4. dos par´metros que podemos colocar en lugar del identificador v´lido a a de un nodo del cluster.1. o a nostay: deshace los efectos de stay. o a nolstay: deshace los efectos de lstay. a Existen.6. Migraciones Para forzar una migraci´n de un proceso en un cluster OpenMosix debemos usar el comano do migrate. Controlando los nodos con mosctl Del mismo modo que setpe nos permite ver la configuraci´n de un nodo OpenMosix y moo dificarla.3.1.

algunas veces recibiremos un mensaje de error avisando que el comando no funcion´. contamos con el comando mosrun. o A la hora de lanzar esta migraci´n.home: forza la migraci´n de un proceso al nodo donde fue generado. el a a usuario propietario del proceso. para ello. Particularmente o a esto se da cuando forzamos una migraci´n posible pero p´sima: el proceso ser´ mandado de o e a vuelta al nodo local incluso antes de que salga. en caso de que el proceso sea un proceso lanzado en la o m´quina donde ejecutamos el comando migrate. pero dando preferencia a la migraci´n del proceso del que hemos indicado el PID. o d´nde se prefiere que se ejecute.5. Recomendando nodos de ejecuci´n o Cuando lanzamos un proceso. miembro del grupo propietario del proceso o miembro del grupo efectivo del proceso. o balance: forza la migraci´n de un proceso al nodo donde la migraci´n suponga minimizar o o el desperdicio de recursos dentro del cluster OpenMosix. y no recibiremos dicho mensaje. 6. sino a trav´s de un conjunto de scripts que facilitan e su uso. el usuario efectivo del proceso. Este o o comando no se suele llamar directamente. Es una forma de indicar que se eval´e el algoritmo de migraci´n autom´tica de carga de u o a OpenMosix. En caso de que no migre. siempre que el ´ o nodo de origen no acepte salidas de su nodos con mosctl lstay y no bloqueemos la entrada en el nodo de destino con mosctl block. el proceso puede no migrar aunque le lancemos la orden migrate. Con este comando podemos transmitir a OpenMosix la informaci´n sobre qu´ hace el o e proceso.1. Por otro lado. Tambi´n podemos indicar un conjunto de nodos entre los cuales estar´ el e a 49 . a o La unica migraci´n que realmente podemos forzar es la de vuelta a casa. el administrador del sistema de un nodo cualquiera del cluster siempre puede lanzar este comando sobre cualquier proceso que se ejecute en dicho nodo. porque el algoritmo de optimizaci´n de carga o considerar´ inaceptable la migraci´n. podemos indicar c´mo se va a comportar frente a la migrao ci´n. debemos ser el administrador de la m´quina. En principio. pero unas pocas veces no migrar´. informaci´n que ser´ fundamental para que OpenMosix minimice el desperdicio de o a recursos del cluster. independientemente de que se haya generado en el nodo local o en un nodo remoto.

El comando mosrun siempre tiene la misma estructura de llamada.nodo donde migrar´ el proceso despu´s de lanzado. a e o En un sistema que no sea OpenMosix./programa Obliga a ejecutar el programa en el nodo local. o tipo: tipo de proceso que se lanzar´ ıa. # mosrun -j2-4 . a a Y la raz´n es muy simple: las herramientas de ´rea de usuario son lo m´ o a ınimo que necesita cualquier administrador o usuario de OpenMosix para poder trabajar. 3 y 4. A continuaci´n se muestran dos ejemplos de c´mo utilizar mosrun. # mosrun donde migraci´n o tipo comando argumentos Donde los par´metros son: a donde: nodo al que el proceso va a migrar inmediatamente despu´s de ser lanzado. comando: nombre del proceso que se va a lanzar. argumentos: argumentos del proceso que se va a lanzar. migraci´n: si se bloquea o no el proceso en el nodo de destino. si e esto es posible.2. mosrun lanza el proceso en la m´quina local de forma a correcta. que es una c´moda o y amigable aplicaci´n de monitoreo de un cluster OpenMosix.2. o o # mosrun -h . 6. si esta migraci´n es posible. Herramientas de monitoreo OpenMosixView No podemos hablar de OpenMosix pasando por alto OpenMosixView. En la mayor´ de las ıa 50 .1. 6. o OpenMosixView no est´ en las herramientas de ´rea de usuario de OpenMosix por defecto./programa Obliga a ejecutar el programa en los nodos 2.

a Figura 6. que tienen una dependencia m´ a ınima de bibliotecas y compiladores preinstalados. esto no quita que OpenMosixView sea una excelente herramienta y de gran utilidad. que puede no tener inter´s en instalar las librer´ QT y KDE en una m´quina e ıas a que s´lo va a servir procesos. rat´n o teclado con una instalao ci´n m´ o ınima de Linux.instalaciones de OpenMosix. por lo que en principio OpenMosixView s´lo ser´ un problema para el o a administrador. Sin embargo. Por ello. se recomienda a todo administrador que la descargue y la instale en los nodos que quiera utilizar como terminal gr´fico del cluster. los nodos son cajas sin monitor. aunque no la haya incluido. Herramienta openMosixMigmon 51 . que todo administrador de OpenMosix podr´ tenerla instalada en la m´quina desde ıa a la que inspecciona todo el cluster.2. o A diferencia de las herramientas de ´rea de usuario. OpenMosixView necesita otras bibliotecas instaladas para ejecutarse y compilarse.

o o o OpenMosixprocs: aplicaci´n para la administraci´n de procesos. o o OpenMosixcollector: captura la informaci´n del cluster proporcionada por los demonios. Herramienta openMosixView La figura 6. Para cada nodo del cluster (cada fila): una luz. Este eno torno facilita la interacci´n con el usuario puesto que le permite ejecutar los comandos de o consola m´s comunes con unos pocos clic de rat´n. tambi´n un par de e etiquetas que indican la cantidad de memoria y el n´mero de procesadores por nodo. El usuario podr´ interactuar con Openo a Mosix a trav´s de sus controles. o OpenMosixmigmon: visor que representa la migraci´n de procesos (figura 6.3 muestra la ventana de la aplicaci´n. a o Figura 6. o OpenMosixanalyzer: analizador de la informaci´n capturada por OpenMosixcollector. o Todos los componentes son accesibles desde la ventana de la aplicaci´n principal. o o OpenMosixView: principal aplicaci´n de monitorizaci´n y administraci´n. o OpenMosixhistory: historial de monitorizaci´n de procesos del cluster.La suite OpenMosixView contiene siete aplicaciones altamente utiles y eficaces tanto para ´ la administraci´n como para la monitorizaci´n del cluster.3.2). una barra de e velocidad. u 52 . un n´mero que indica la velocidad de procesamiento. o 3dmosmon: visor para monitorizaci´n de datos en 3D. dos barras de progreso poru centual que indican la eficiencia de balanceo de carga y de uso de memoria.

podemos emplear tres mecanismos: o Hacer uso de las herramientas de ´rea de usuario. pero los archivos y los directorios que en el encontramos.2. tales como la memoria virtual de cada proceso. Programando OpenMosix Para programar OpenMosix a bajo nivel. es decir. entre otras cosas. la red. El ´rea de usuario de OpenMosix incluye a una biblioteca en C que puede ser utilizada para hacer todo aquello que pueden hacer las herramientas de ´rea de usuario.2. o para usar en shell-scripts. y nos permite acceder con facilidad a archivos. pero es el m´s a o a c´modo para los programadores en este lenguaje. o Hacer uso de la biblioteca de OpenMosix. En Linux tenemos un sistema de archivos virtual en /proc. Este es el caso de la pr´ctica totalidad de los lenguajes de a programaci´n compilados. Hacer uso del sistema de archivos /proc. o o e Este m´todo de operaci´n es ideal en cualquier lenguaje que no tiene un m´todo c´modo e o e o para llamar a procesos externos. Este mecanismo s´lo funciona en C. Este sistema de archivos no existe f´ ısicamente en el disco. o 53 . leyendo y escribiendo su contenido.6. y no ocupa espacio. Este es el mecanismo recomendado a para scripts en Perl. las interrupciones o la memoria del sistema. OpenMosix no puede ser menos. tomando el control del cluster y de la migraci´n. y tambi´n e podemos obtener informaci´n sobre su comportamiento y darle ´rdenes a trav´s de /proc. modelan distintos aspectos del sistema.

iluminaci´n y la colocaci´n de la c´mara virtual que sao o a car´ la foto de la escena.1. 7.1. 7. POV-Ray / Povmosix POV-Ray (Persistence of Vision Ray Tracer). el cual es un m´todo para generar im´genes fotorealistas por computadora y se basa en e a el algoritmo de determinaci´n de superficies visibles de Arthur Appel denominado Ray Casting. o Para describir los objetos se hace uso de un modelador gr´fico o mediante un archivo de a texto en el que van descritos los objetos que forman la escena. posteriormente se explican los resultados que se o han tenido para cada una de ellas.sourceforge.net/ [Ultima consulta: febrero 2006] 54 .1. se describe la herramienta o programa que se utiliza para tener un panorama general de la aplicaci´n. es un avanzado software gratuito para trazado de rayos. texturas. Pruebas generales de rendimiento del cluster Para cada una de las pruebas. El resultado es un archivo donde se especifican los objetos. Ahora se muestran los resultados de pruebas realizadas con algunos programas de uso general y particular que se ejecutaron en el cluster.Cap´ ıtulo 7 Desempe˜ o y pruebas de rendimiento n Ya se ha terminado con la implementaci´n de OpenMosix. a Povmosix11 es un programa que puede proveer renderizado en paralelo para POV-Ray en 11 ´ http://povmosix. la instalaci´n de los compiladores o o con las librer´ necesarias y tambi´n se han hecho todas las configuraciones necesarias para el ıas e correcto funcionamiento.

se hicieron pruebas con el archivo benchmark.3 rotate 90*x rotate -90*z} Figura 7. con el c´digo que se muestra a continuaci´n.´ un ambiente OpenMosix.0 scale 0. en este archivo de texto.ttf" "OPENMOSIX-II" 0. la imagen resultante e es generada de las salidas parciales.1 55 . o o se describe a los objetos de la escena. Por ejemplo. la cual se muestra en la figura 7. o o se describe la colocaci´n y el tipo de letra de un texto en la escena: o #declare POV_Text = text {ttf "timrom.25.pov. Este divide la escena llamada tarea en un conjunto de “subtareas” y ´stas pueden migrar en el cluster. Como ya se mencion´. Imagen Obtenida con PovMosix El resultado es una imagen con resoluci´n de 1024x768 p´ o ıxeles.1. Cuando todas las subtareas terminan. En este trabajo. el cual es una demostraci´n elaborada de lo que se puede llegar a generar con POV-Ray y est´ incluido con los o a archivos de instalaci´n de este mismo software.

5 63.19 22.3.29 65. o En la figura 7.29 27.49 40.1.37 23.49 30.1. pero esto s´lo hasta u u o cierto l´ ımite.2.5 28.43 24. ı N´mero u de procesos 1 2 3 4 8 12 16 20 24 28 Tiempos de ejecuci´n (min.9 34.42 33. el rendimiento del cluster OpenMosix es mejor cuando el n´mero de tareas es mayor que el n´mero de nodos activos. Interfaz de ejecuci´n Povmosix.31 37. se muestra la figura 7.1 y con los resultados mostrados ah´ mismo. en ella podemos iniciar y o administrar la ejecuci´n de los procesos y subprocesos para la generaci´n de una escena POVo o Ray.48 25. o Para una mejor comprensi´n del cuadro 7. Estas se hicieron de acuerdo al cuadro 7.46 23.2 se muestra la interfaz de ejecuci´n de Povmosix.58 39. Esta particularidad es debida a que cada subtarea generada por Povmosix tiene 56 . en el caso espec´ ıfico de Povmosix. Como puede obsero varse en ella.41 29.15 Cuadro 7.32 29.44 68.59 22.) o 1 Nodo 2 Nodos 3 Nodos 4 Nodos 62.4 46. Con esta herramienta se hizo una serie de ejecuciones con diferente n´mero de nodos y u de procesos.09 42.Figura 7.14 43. Comparaci´n de tiempos Povmosix.

Otra observaci´n u o importante que se hace. podemos tomar ventajas para optimizar tiempos de generaci´n de escenas. con la configuraci´n del cluster y con o a o ayuda de Povmosix.diferente carga de trabajo y por tanto no tiene el mismo tiempo de ejecuci´n. Hay que tomar en cuenta que no todos los programas est´n dise˜ados de igual manera y por lo tanto no todos pueden a n tomar las mismas ventajas. Resultados y tiempos de ejecuci´n para Povmosix. o Figura 7. o Para la generaci´n de estas im´genes fotorealistas.3. o En esta primera aproximaci´n al uso del cluster OpenMosix se observa la utilidad que se o puede dar a una herramienta como ´sta y se muestra como pueden obtenerse mejores resultados e dependiendo del n´mero de tareas que se ejecuten en los nodos disponibles. 57 . es que esta mejora en rendimiento al aumentar el n´mero de tareas u es debida muy particularmente a la forma en que trabaja Povmosix.

5.25xˆ3 + 0.34 64. u u a N´mero u de procesos 1 2 3 4 8 12 16 20 24 28 32 Tiempos de ejecuci´n (seg.4 41.21 59.7. Programas paralelos con LAM/MPI.92 51.39 43.1.686245 proc 2 computes: 884.686210 proc 3 computes: 884.5 + 1.000000 Limite Superior: 9.686281 proc 0 computes: 884.2.58 50.84 34.16 96.0 y superior en 9.500000 proc 1 computes: 884.66 43.686316 The integral is 3538.07 45.16 96.13 57.2x + 0. el n´mero 4 es el n´mero de subprocesos que generar´ el programa.25 96.29 40.23 57.2. Limite Inferior: 0.2.04 48.64 56.out $mpirun -np 4 mpi_integral2.01 61.26 56.5xˆ4 en o 150000000 intervalos.13 96.) o 1 Nodo 2 Nodos 3 Nodos 4 Nodos 96.11 60.c -lm -o mpi_integral2.Indiana University $mpicc mpi_integral2.35 69.8x2 − 2.28 61.1/MPI 2 C++/ROMIO .15 96.57 47.15 61.93 96.25x3 + 0.8xˆ2 .95 96.61 32. e El programa consiste en calcular el ´rea bajo la curva definida por el polinomio f (x) = a 10.5x4 con limite inferior en 0.18 37. Comparaci´n de tiempos para el programa paralelo.out Integrando la funci´n Y = 10.09 96. ejemplo del c´lculo del a ´rea bajo la curva de una funci´n a o Se hicieron tambi´n pruebas de rendimiento con un programa paralelo con MPI.34 96.1.29 66. el c´digo e o de este puede leerse en el ap´ndice A. o En el cuadro 7.2x + 0.95 96.745052 En este caso.73 44.04 Cuadro 7. a Para compilar y ejecutar este programa se utilizan los siguientes comandos: $lamboot LAM 7.2 se muestran los resultados de los tiempos resultantes de las pruebas que se hicieron en el cluster.86 53. 58 .24 56. Cabe mencionar que este programa no tiene utilidad inmediata en este contexto m´s que para pruebas del cluster..5 + 1..

Figura 7. Lo cual implica que este programa no es un buen candidato para dividirse en muchas tareas. lo cual no sucede conforme aumenta el n´mero de procesos en los que se divide la u ejecuci´n. tres y cuatro nodos.4. Comparaci´n de tiempos del programa paralelo. se muestra la figura 7.4. Como se observa en ella. con los tiempos obteo nidos en las diferentes ejecuciones con uno. los mejores tiempos de ejecuci´n se dan cuando el n´mero de subprocesos es igual al n´mero o u u de nodos. o Para mejor comprensi´n de los resultados. ı Tambi´n es importante mencionar que si el n´mero de procesos es menor al n´mero de e u u nodos. se estar´ desaprovechando al resto de los nodos. ıa 59 . el tiempo aumenta. pero s´ para ejecutarse en muchos nodos. dos. en la mayor´ de los casos cuando el n´mero de subprocesos es mayor al n´mero de o ıa u u nodos.

n a El programa utilizado en esta etapa de pruebas de rendimiento. fue desarrollado por el M. o 7. o En la figura 7.2. se muestra la localizaci´n de los sismos considerados. se muestran las e 60 .2. En este trabajo se aplic´ el m´todo pseudo-espectral para la obtene o e ci´n del campo de onda incidente en la Ciudad de M´xico. Los c´ o ırculos negros y las estrellas muestran los epicentros y la Ciudad de M´xico.5 a.7. Esto para ayudar a tomar medidas de prevenci´n. en la Coordinaci´n de Ingenier´ Sismol´gica se procesa un modelo o ıa o de la corteza terrestre mexicana con influencia de sismos generados en diferentes epicentros y su influencia sobre la Ciudad de M´xico. en C. Ejecuci´n de programas del Instituto de Ingenier´ o ıa En esta secci´n se describe el funcionamiento de los programas utilizados en las coordinao ciones en las cuales se ha colaborado y se hizo la implementaci´n del cluster. el campo de ondas se expande en el o e espacio en t´rminos de polinomios de Fourier.1. Hugo Cruz Jim´nez. y las derivadas parciales espaciales se calculan en e el dominio del n´mero de onda. y en la figura 7. e o analizando las zonas que pudieran sufrir los da˜os m´s severos. Mapa de localizaci´n de sismos. e Figura 7.5 b. Coordinaci´n de Ingenier´ Sismol´gica o ıa o Debido a la necesidad de considerar los efectos destructivos que pudieran tener eventos s´ ısmicos como los de 1985. En este estudio se consider´ conveniente simular el movimiento u o en 2D para evaluar los efectos de la estructura de la corteza heterog´nea y el manto superior e de M´xico[HCruz04].5.

y para una mejor comprensi´n de ´ste.6. se muestra la figura 7. Instant´neas de modelado num´rico en dos dimensiones. Los tiempos observados con las ejecuciones de este programa y c´lculos promedio se pueden a ver en el cuadro 7.. o Figura 7. se muestran cuatro instant´neas obtenidas a partir del modelado num´rico a e en dos dimensiones. Como puede observarse en ´sta figura. e La zona modelada tiene 512 Km. para minimizar las reflexiones artificiales de los bordes del modelo y se utiliz´ una zona absorbente con 20 puntos de la malla. los tieme pos al ejecutar el proceso mejoran conforme se ejecuta en m´s procesadores y no al ejecutarse a 61 . Este programa se ejecuto para 10000 y 20000 iteraciones. Se utiliz´ un espao ciamiento uniforme de la malla de 0.localizaciones de las estaciones de movimiento fuerte (cuadros) y algunas avenidas importantes en la Ciudad de M´xico. con las cuales las salidas arrojadas permiten al investigador tener diferentes resoluciones para observar sus resultados. de profundidad. a e En la figura 7. con los o e tiempos obtenidos en las diferentes ejecuciones. de largo por 128 Km.3.125 Km.6.7.

3. los tiempos al ejecutar el proceso mejoran conforme se ejecuta en m´s procesadores y no al ejecutarse con a un mayor n´mero de procesos.7 223.56 236.7.45 237. Comparaci´n de promedios de tiempos de ejecuci´n o o Los tiempos observados con las ejecuciones de este programa y calculando promedios se pueden observar en el cuadro 7.25 217.51 236. 62 .4.85 230.8.4 215. Como se observa en la figura. Comparaci´n de tiempos promedio para 10000 iteraciones.) o 1 Nodo 2 Nodos 3 Nodos 4 Nodos 217. con o los tiempos obtenidos de las diferentes ejecuciones. y para una mejor comprensi´n.15 224. ´ Figura 7.N´mero u de procesos 1 2 3 4 Tiempo promedio Tiempos de ejecuci´n (min. Lo que implica que solo se ejecuta en un procesador a la vez u y la unica ventaja es la de poder ejecutar este programa con diferentes datos al mismo tiempo.7 212.14 218.80 235. se muestra la figura 7.2 235. o con un mayor n´mero de procesos.85 Cuadro 7.78 227. lo que implica que s´lo se ejecuta en un procesador a la vez y u o la ventaja es la de poder ejecutar este programa con diferentes datos al mismo tiempo.

el cual est´ ligado al grado de conocimiento n o a y habilidad de los dise˜adores y constructores de cada ´poca y que est´ influenciado de manera n e a importante por la cantidad y calidad del material para cada realizaci´n.2.36 464. aplicando m´todos de mec´nica num´rica.3 465. o 63 .57 467. Comparaci´n de promedios de tiempos de ejecuci´n o o 7. o Figura 7.34 465.9).51 481. Comparaci´n de tiempos promedio para 20000 iteraciones.42 Cuadro 7.) o 1 Nodo 2 Nodos 3 Nodos 4 Nodos 433.4.19 443.98 464.22 449.39 468.55 559. Es as´ que la mamposo ı ter´ toma su lugar en la historia de la ingenier´ ıa ıa[GRoeder04]. Es el a e a e caso del trabajo realizado por el Doctor en Ingenier´ Guillermo Mart´ Roeder Carbo descrito ıa ın a continuaci´n (ver figura 7. Entre ellos se pueden se˜alar el tecnol´gico. Coordinaci´n de Mec´nica Aplicada o a La evoluci´n de la arquitectura de las estructuras a trav´s de los tiempos ha estado suboro e dinada a distintos factores que influyeron para que se desarrollara en un determinado periodo y lugar.8.29 433.14 419.N´mero u de procesos 1 2 3 4 Tiempo promedio Tiempos de ejecuci´n (min.2.57 513. dirigido por el Doctor Gustavo Ayala Mili´n. En la Coordinaci´n de Mec´nica Aplicada del Instituto de Ingenier´ trabaja un grupo o a ıa.

Estructura y organizaci´n del Grupo de trabajo para el desarrollo de NLFEM[GRoeder04] o Mediante modelos matem´ticos y algoritmos. vestigar el comportamiento f´ ısico y/o mec´nico de una gran variedad de sistemas estructurales a gracias a la amplia variedad de tipos de elementos incorporados en el que pueden ser aplicados a estructuras de concreto simple y reforzado.9. donde con el avance de las nuevas investigaciones se han ido incorporando nuevos procedimientos para la soluci´n de sistemas de ecuaciones no-lineales. asimismo como a estructuras de mamposter´ ıa. e a Al igual que con el programa de la Coordinaci´n de Ingenier´ Sismol´gica se intent´ aproo ıa o o vechar el poder de c´mputo que ofrece el cluster OpenMosix.Figura 7. Tambi´n se puede realizar modelados de problemas de la mec´nica de suelos. La meta de este trabajo o fue el desarrollo de una herramienta computacional bajo un sistema robusto para el an´lisis a no-lineal de estructuras de mamposter´ ıa. programa que permite inı. adapt´ndose o n a a los requerimientos de las investigaciones. Desde su comienzo. este sistema no fue planeado 64 . En este caso el resultado final no o fue satisfactorio y con el objetivo de entender cuando un programa no puede hacer uso de este tipo de clusters. se han desarrollo e implementado herramiena tas num´ricas para modelaci´n de estructuras de mamposter´ por el m´todo de elementos e o ıa e finitos. As´ el resultado es NLFEM(Non-Linear Finite Element Models). se hace la siguiente explicaci´n: o NLFEM se comenz´ en el a˜o de 1999 y desde entonces ha sido extendido.

C++ y FORo TRAN 77.5 sobre los requerimientos m´ o ınimos para la migraci´n de procesos. situaci´n que provoca grandes gastos en la compra de estos o recursos. pues tardar´ m´s tiempo ıa a en trasladarse a otro nodo. generada por NLFEM para poder ejecutarse en un cluster. en el orden de segundos. ıa m´s grandes de c´mputo.Figura 7. que si se ejecutara en el nodo anfitri´n. o Otro an´lisis que se hizo con este sistema. son muy peque˜os y debido al algoritmo de balanceo de carga n que utiliza OpenMosix. situaci´n que se genera con la metodolog´ usada en o ıa la programaci´n de este sistema. aunque se sab´ que con el tiempo tendr´ requerimientos ıa.10. los cuales ser´ satisfechos con computadoras monoprocesador o a o ıan multiprocesador de vanguardia. no es posible que estos migren a otros nodos. observando que estos tiempos. la programaci´n del sistema se hizo con tres lenguajes: C. Por otro lado. Pantalla de resultados. El programa completo est´ constituido por otros subprogramas ejecutables escritos a en FORTRAN 77 que son llamados entre si mediante el control de procesos padres a procesos hijos.4. fue sobre la duraci´n en tiempo de ejecuci´n de a o o cada uno de los subprocesos generados por el programa principal. o 65 . ´stos no deben o e de hacer uso de la memoria compartida. lo cual pone en desventaja el aprovechamiento del cluster. pues como se menciona en la secci´n 2.

gener´ el inter´s por parte de los investigadores y algunos ya est´n a o e a trabajando para implementar sus sistemas con el paradigma de programaci´n paralela. ı e clusters de otras instituciones con los que ellos colaboran. ı e o El comenzar la ejecuci´n de los programas de las coordinaciones de Ingenier´ Sismol´gica o ıa o y de Mec´nica Aplicada. se concluye que no se necesitan muchos recursos econ´micos o o para iniciar el uso de este tipo de tecnolog´ y comenzar a disfrutar de los beneficios que estas ıas ofrecen. esta conclusi´n se obtuvo a partir de la evaluaci´n particular del programa de la o o Coordinaci´n de Mec´nica Aplicada. en el proceso de este trabajo de tesis se adquiri´ equipo para formar parte del primer cluster con el que cont´ esta instituci´n. no s´lo por ser lo que marca la tendencia. para o el mejor aprovechamiento de los clusters en el Instituto de Ingenier´ as´ como tambi´n los ıa. si no o o tambi´n por los grandes beneficios que ofrecen en su utilizaci´n. o ıa o Al dar a conocer este tipo de tecnolog´ a los investigadores del Instituto de Ingenier´ ıas ıa se ha observado el aumento en el inter´s. lo cual hace necesaria una fuerte interacci´n entre inveso a o tigadores y profesionales de la computaci´n. Adem´s con la construcci´n e o a o e implementaci´n de este cluster. lo cual permite concluir que es necesario estar pene diente de este tipo de avances tecnol´gicos.Conclusiones La ejecuci´n de programas y los resultados obtenidos al final de este trabajo. as´ tambi´n. Adem´s se observa como no necesariamente entre o a mayor n´mero de procesos sea dividida una tarea. se pueden aprovechar los recursos de c´mputo ya existentes. Al inicio este trabajo de tesis en el Instituto de Ingenier´ esta instituci´n no contaba con ıa. o un cluster dedicado unicamente al c´mputo cient´ ´ o ıfico. ya sea que por su dise˜o no fueron pensados para este prop´sito o por que el tipo de problema no se presta n o para ello. lo que o o o 66 . muestran que o no todos los programas son capaces de aprovechar la infraestructura en un cluster. ´sta deba ser m´s r´pida en su ejecuci´n u e a a o como lo muestran los resultados obtenidos durante la ejecuci´n de los programas con c´digo o o paralelo y el de la Coordinaci´n de Ingenier´ Sismol´gica.

lo cual o es indispensable en una instituci´n de la magnitud del Instituto de Ingenier´ con lo que se o ıa. Tambi´n durante el desarrollo de esta investigaci´n. y como parte del trabajo acad´mico y e o e de difusi´n que tiene como objetivo el Instituto de Ingenier´ se tuvo la oportunidad de preo ıa. con la instalaci´n de las respectivas librer´ lo que ofrece una ventaja sobre o o ıas. o Pudo afirmarse que en el cluster OpenMosix tambi´n es posible la ejecuci´n de programas e o de c´digo paralelo. Como trabajo a futuro se pretende dar seguimiento a la implementaci´n de nuevos prograo mas paralelos y migraci´n de los ya existentes. as´ mismo se prest´ asesor´ ı o ıa a proyectos vinculados con este instituto. e Durante esta investigaci´n se hizo visible la necesidad del trabajo multidisciplinario.hace concluir que este trabajo fue de gran importancia en la toma de ´sta y futuras decisiones. sentar los avances de este trabajo en diversos congresos nacionales. 67 . esto con el fin de aprovechar los sistemas de o clusters m´s avanzados y/o complejos que hacen buen uso de los conceptos de programaci´n a o paralela. concluye que fomentar esta forma de trabajo es indispensable para mantener el nivel de este centro de investigaci´n. Otro punto a considerar ser´ la evaluaci´n de las nuevas versiones de OpenMosix que a o ya aprovechan algunas arquitecturas de 64 bits. los clusters tipo Beowulf. tal es el caso de la construcci´n de un cluster para la o empresa PEMEX.

Ap´ndice A e Ejemplo de c´digo paralelo MPI para o el cluster OpenMosix C´digo paralelo para el c´lculo del ´rea bajo la curva de una funci´n f(x) 1 . double rect_width.shtml [Ultima consulta: febrero 2006] 68 . area.1415926535 #define LIM_INF 0. */ ierr = MPI_Init(&argc. /* Encuentra MI ID de proceso y cuantos procesos fueron iniciados.0 /*Limite Inferior de la Integral*/ #define LIM_SUP 9.5 /*Limite Superior de la Integral*/ double f_de_x(double x).ku.edu/˜grobe/docs/intro-MPI-C. &argv). root_process. La funci´n f(x) puede ser cambiada a * en f_de_x().5 + 1.ku.2.5xˆ4 con l´mite ı ı * inferior 0 y l´mite superior 9. /* 0 es el proceso ra´z. /*En el cuerpo de esta funci´n puedes cambiar el calculo para f(x)*/ o main(int argc.25xˆ3 + 0.cc. */ ierr = MPI_Comm_rank(MPI_COMM_WORLD.cc. MPI_Status status.h> #include <mpi.edu/ grobe/docs/intro-MPI-C. partial_sum.8xˆ2 . if(my_id == root_process) { 1 ´ http://www. x_middle. num_procs. o a a o /** ´ * Este programa calcula el area bajo la curva del polinomio ı * f(x)= Y = 10.shtml {Enero 2006} **/ #include <stdio.2x + 0. &num_procs). char **argv) { int my_id. ierr = MPI_Comm_size(MPI_COMM_WORLD.h> #include <math. sum. ierr. i. num_intervals. &my_id). o * C´digo modificado de la fuente: * http://www. ver m´s abajo. */ ı root_process = 0.h> #define PI 3.5 haciendo uso de la librer´a o o * MPI para c´digo paralelo. /* Replicar el proceso para crear procesos paralelos.

-2. Ejemplos: 1) return sin(x).5. MPI_COMM_WORLD). /* c´lculo de la base del rect´ngulo. partial_sum = partial_sum + area.5 + 1. i <num_intervals + 1.i). /* Finalmente las sumas parciales son recogidas en la variable "sum" */ ierr = MPI_Reduce(&partial_sum. ı } /* Se env´a un mensaje a todos los subprocesos del n´mero de ı u * intervalos.8.0. MPI_INT.. for(i=0.5xˆ4 \ en %d intervalos. return valor.25. MPI_DOUBLE. /* Si soy el proceso ra´z.8xˆ2 .2x + 0. i += num_procs) { x_middle = (i .2.5}. int i = 0. imprimo el resultado */ ı if(my_id == root_process) { printf("The integral is %f\n".0. sum).num_intervals).*/ num_intervals = 150000000.\n". printf("L´mite Inferior: %f\n". 3) return x*x./*Modificar el c´digo de las siguientes l´neas si se quiere o ı *preguntar al usuario cuantos procesos iniciar. */ ierr = MPI_Bcast(&num_intervals. */ ierr = MPI_Finalize().. &sum.. *printf("Please enter the number of intervals to interpolate: ").25xˆ3 + 0. printf("Integrando la funci´n \ o Y = 10.i++) valor += poli[i]*pow(punto. double poli[]={10. */ } 69 . for(i = my_id + 1. punto = x.0. ´ /* se calcula la suma de las areas de los rect´ngulos de las cuales el a * subproceso es responsable.LIM_SUP). */ a a rect_width = (LIM_SUP . partial_sum).0. y .5) * rect_width. 1. root_process. root_process. scanf("%i". area = f_de_x(x_middle) * rect_width. 1. my_id. &num_intervals). */ partial_sum = 0. } printf("proc %i computes: %f\n".2. } double f_de_x(double x) { double punto = 0. MPI_COMM_WORLD). 4) return x/2.. ı printf("L´mite Superior: %f\n\n". 2) return cos(x).LIM_INF). } /* finaliza el proceso. MPI_SUM.0. /*El usuario puede definir otras funciones.1.i<5. valor = 0.LIM_INF) / num_intervals.

[MCatalan04] Miquel Catal´n i Co¨ a ıtEl manual para el clustering con openMosix. 70 .. Tanenbaum. [EGeorge03] George Em Karniadakis and Robert M.k. Cambridge University Press. Versi´n 1.a. o 2003. Parallel Processing & Programming Languages. UNAM 2004. Simulaci´n num´rica del comportamiento ın o e mec´nico de la mamposter´a. Kirby II. o [RichardS03] Ruichard S. a ı [HCruz04] Hugo Cruz J. Simulaci´n num´rica del movimiento fuerte en la Ciudad de M´xico. Architectures. Sistemas Operativos Modernos. O’Reilly Media.2003.Bibliograf´ ıa [ATanenbaum03] Andrew S.0 . Cluster Computing. Building Linux Clusters. Pearson Educaci´n. o e e Tesis de Maestr´ UNAM 2004. ıa. 1998-2003. [HDavid00] David HM Spector. Inc. Operating Systems. Morrison.6 de Septiembre de 2004. 2000. Copyright c miKeL a.mc2 & Kris Buytaert. Tesis de Doctorado. Parallel Scientific Computing in C++ and MPI. [GRoeder04] Guillermo Mart´ Roeder Carbo.