Introducción A grandes rasgos, la supercomputación es un conjunto de herramientas software y hardware cuyo principal función es la creación y desarrollo de simulaciones de estados y procesos. Aunque a primera vista pueda parecer que la supercomputación no es una herramienta de uso habitual, hoy en día prácticamente la mayoría de los seres humanos dependen y usan esta “ciencia” sin ni siquiera saberlo. • Predicciones Meteorológicas • Predicciones Bursátiles • Simulaciones de Comportamiento Cinematico y Dinámico de componentes mecánicos. • Diseño y análisis de nuevo materiales • Estudio de fármacos y enfermedades epidémicas • Diseño de Estructuras moleculares • Creación y renderización de fotogramas de animación. • Investigación en general • etc Un ejemplo practico en el campo de simulaciones mecánicas, sería el estudio del comportamiento del motor de un automóvil. De esta forma se podrá evaluar y analizar el funcionamiento de dicho motor sin tener que fabricar ningún prototipo real. Actualmente, la supercomputación nos permite simular la mayoría de los sistemas físicos con un margen de error inapreciable, obteniendo modelos físicos y cálculos muy fiables en todos los campos: automoción, física, aeronáutica, química, etc. Esta es la razón por la cual, la supercomputación es hoy en día una herramienta cada vez más utilizada y en progresiva expansión. Historia del HPCC En 1994, Thomas Sterling y Don Becker trabajando en el CESDIS (Center of Excellence in Space Data and Information Sciences) bajo el patrocinio de ESS (Earth and space sciences), diseñaron un proyecto basado en Cluster de Computación al que se llamo “Beowulf”. El prototipo inicial consistió en 16 procesadores DX4 conectados por red Ethernet a 10Mbps. Los procesadores eran demasiado rápidos para una sola controladora Ethernet y por aquel entonces un Switch Ethernet era demasiado costoso. Para poder balancear el sistema, Becker modifico los drivers de Linux de dicha controladora y consiguió así habilitar una configuración en modo "channel bonded" que permitió regular el trafico web a traves de dos o más dispositivos Ethernet. La idea principal de este proyecto era integrar sistemas de bajo coste para que funcionasen de forma paralela y pudiesen satisfacer los requisitos de calculo de la comunidad ESS. El proyecto Beowulf fue un éxito inmediato, demostrado que el concepto de usar un conjunto de computadoras como alternativa a las grandes y costosas máquinas de la época era una gran alternativa para tareas que requerían un alto rendimiento de computación. (referencia: www.beowulf.org) Hoy en día, los Cluster de Calculo (HPCC) y en general, la supercomputación es utilizada en muchas tareas del entorno cotidiano. (Véase el apartado: Introducción) ¿Qué es un Cluster de Calculo? Un Cluster de Calculo, es un conjunto de computadoras que trabajando de forma paralela permiten alcanzar un mayor rendimiento en la velocidad del proceso de datos. Hoy en día, se conoce a este tipo de Cluster como: Cluster de Computación, Cluster de Calculo, Cluster de Alto Rendimiento ó HPCC (High Performance Computing Cluster). Podríamos decir, que un Cluster de Calculo pretende que muchas computadoras individuales interactúen entre sí, como si fuese un gran maquina sola. De esta forma, el Cluster de Calculo, divide una tarea grande en varias tareas pequeñas que se puedan realizar de forma paralela, y de esta forma realizarlas más rapido. Por medio de un Cluster de Calculo podemos conseguir capacidades de cálculo y proceso de datos superiores a un ordenador más caro que el coste del conjunto de las computadoras del cluster. Un ejemplo practico sería el siguiente: Imaginemos que tenemos un campo de trigo de 1200 m2. • Si tenemos una cosechadora muy grande y avanzada capaz de cosechar 20 m2 a la hora, para poder cosechar todo el campo necesitaríamos un total de 60 horas. • Si tenemos 6 cosechadoras pequeñas que cosechan 5 m2 cada hora. Si estas 6 cosechadoras trabajasen de forma paralela, solamente necesitarían 40 horas para terminar el trabajo. Junto con este pequeño análisis, habría que tener en cuenta dos puntos más: Coste: La cosechadora grande debido a su gran ritmo de cosechaje por hora tendrá un coste muy elevado, incluso mayor que la suma de las 6 cosechadoras pequeñas juntas. Disponibilidad: Si se rompe la cosechadora grande, no podremos cosechar nada hasta arreglarla, mientras que si se rompe una de las cosechadoras pequeñas, podremos seguir trabajando en el campo con las otras. Ahora bien, si trasladamos este ejemplo practico a la Informática, solo necesitamos cambiar cosechadoras por computadoras para comprender porque los Cluster de Computación son tan demandados en el entorno empresarial informático y porque cada vez más, son una solución indispensable para muchas empresas y grupos de investigación y educación. Actualmente, la mayoría de los Cluster de Calculo están formados por componentes de hardware comunes y herramientas de software libre. Esta combinación permite un importante ahorro a nivel económico, ya que al ser un hardware de uso común no debe suponer un coste muy importante, y las herramientas de software libre permiten su uso sin coste de licencia. Funcionamiento de un Cluster de Cálculo Un Cluster de Calculo posee un una arquitectura multi-computadora que ofrece un sistema de calculo paralelo consistente en uno o más nodos principales y uno o más nodos de calculo interconectados en un sistema de red. La funcionalidad de desdoblar los procesos se lleva a cabo mediante dos o más máquinas, las cuales son capaces de poder incrementar la velocidad de los procesos gracias a que pueden llevar a cabo los mismos procesos de forma simultanea. A muy grandes rasgos, el funcionamiento de un Cluster de Calculo, sería el siguiente: Un usuario se conecta al Cluster de Calculo (Nodo Maestro) y lanza un trabajo o tarea. El nodo maestro, sera el encargado de fraccionar dicha tarea en tareas más pequeñas, que se enviaran a través de la red a los nodos de computación. Cuando los nodos de computación finalicen sus respectivas tareas, enviaran los resultados al Nodo Maestro, que sera el encargado de volver a fusionarlas para presentar el resultado total al usuario. Componentes de un Cluster de Cálculo Componentes Hardware Servidores: Se utilizan servidores tanto en el Nodo Maestro como en los nodos de computación. El Nodo Maestro puede estar formado por uno o dos servidores, si requieren estar en Alta Disponibilidad y pueden tener una conexión a almacenamiento externo si requiere una gran cantidad de almacenamiento de datos. El almacenamiento externo puede ser cualquier tipo de almacenamiento estandar (cabinas de discos con conexión SCSI, Conexión directa por fibra, redes de almacenamiento SAN, Debido a que el Nodo Maestro puede ser el único punto de fallo de todo el Cluster de Calculo, es conveniente dotarle de una infraestructura de Alta Disponibilidad ó bien acondicionarlo con elementos hardware redundantes (RAID de discos, Fuente de Alimentación redundada...) Interconexión: Normalmente, se suele utilizar redes Ethernet Gigabit ya que presenta un coste muy competitivo. Aunque podemos utilizar otros tipo de redes de mayor velocidad, como redes de tipo Infiniband o Myrinet. En este apartado haría que contemplar tanto las tarjetas que se instalarían en cada uno de los servidores así como los switches y cableado necesarios. Además de este hardware básico, es conveniente tener instalados los servidores en bastidores tipo Rack o cualquier otro método que ofrezca una buena ventilación de todo el sistema, así como suministradores de alimentación ininterrumpida (SAI) y todo tipo de sistemas hardware que dote a nuestra infraestructura una mayor tolerancia a fallos (sistemas de backup,... ) Componentes Software Dependiendo de las exigencias con las que se construya el Cluster de Calculo, dispondrá de un software otro. En la inmensa mayoría de Cluster las herramientas utilizadas son herramientas de Software Libre, ya que además de nos presentar coste de licencia, proporcionan la libertad al usuario de poder adaptarlas según sus necesidades. A grandes rasgos, en la mayoría de los Cluster de Calculo podemos encontrar: Sistema Operativo: El Sistema Operativo más utilizado en los Cluster de Calculo es Linux (diferentes distribuciones). Esto es debido a la gran seguridad y flexibilidad que ofrece para manipular su código fuente. Como valor añadido esta el coste nulo de licencia, que en implementaciones de muchos servidores es un coste importante. También suelen utilizarse diferentes variantes de Unix. Herramientas de desarrollo paralelo: Se suelen utilizar herramientas para desarrollo en distintos lenguajes (C, Fortran, Haskell, ADA, Lisp, ...), junto con sus depuradores y herramientas de programación. Estas herramientas se integran con bibliotecas de desarrollo paralelo, normalmente MPI y PVM. Herramientas de Administración Monitorización: En este tipo de soluciones es muy importante una monitorización continuada de los nodos, ya que cuantas más computadoras tenemos, mejor deben ser estas herramientas, las cuales nos deben proporcionar el estado de cada una de las máquinas así como estadísticas e informes de funcionamiento de cada una de ellas. Para administrar estas máquinas suelen utilizarse soluciones de reinstalación automática de nodos, para agilizar la reinstalación de las computadoras en caso de fallo de una de ellas. Software de Gestión de Colas: Para trabajos que requieran utilizar muchos recursos de Cluster (tiempo de cálculo, memoria o espacio en disco) es recomendable utilizar un sistema de colas. Esto permite un mejor aprovechamiento de los recursos del sistema ya que podremos configurar cuantos recursos del sistema queremos invertir para determinadas tareas. Software Especifico: Una vez tenemos montada la infraestructura de nuestro Cluster de Calculo, cada cliente posee aplicaciones especificas (aplicaciones de análisis bursátil, análisis mecánicos, análisis meteorológicos...). Espero les sirva, saludos. comentes.
Aplicaciones Cluster
Datos archivados del Taringa! original
17puntos
8,623visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
7visitas
0comentarios
Dar puntos: