Computación de Alto Rendimiento
Enviado por LuisCastroGro • 26 de Abril de 2018 • Tutorial • 2.141 Palabras (9 Páginas) • 165 Visitas
Universidad Tecnológica de la Mixteca
Programación distribuida y concurrente
Redes
PelicanHPC
José Luis Castro Guerrero
1002-A
Viernes, 9 de marzo de 2018
PelicanHPC
Definiciones
Computación de Alto Rendimiento
La Computación de Alto Rendimiento (HPC, High Performance Computing) generalmente se refiere a la práctica de agregar potencia computacional de una manera que entregue un desempeño mucho más alto que el que se podría obtener de una computadora de escritorio o una estación de trabajo típica para resolver problemas grandes en ciencia, ingeniería o negocios.
Cluster de computadoras
Un cúmulo, granja o cluster de computadoras, lo podemos definir como un sistema de procesamiento paralelo o distribuido. Consta de un conjunto de computadoras independientes, interconectadas entre sí, de tal manera que funcionan como un solo recurso computacional. A cada uno de los elementos del cluster se le conoce como nodo. Estos son aparatos o torres que pueden tener uno o varios procesadores, memoria RAM, interfaces de red, dispositivos de entrada y salida, y sistema operativo. Los nodos pueden estar contenidos e interconectados en un solo gabinete, o, como en muchos casos, acoplados a través de una red de área local (LAN, Local Area Network). Otro componente básico en un cluster es la interfaz de la red, la cual es responsable de transmitir y recibir los paquetes de datos, que viajan a través de la red entre los nodos. Finalmente el lograr que todos estos elementos funcionen como un solo sistema, es la meta a la que se quiere llegar para dar origen a un cluster.
Comúnmente, en los clusters existe una máquina (con monitor, teclado, ratón, etcétera) que funciona como nodo-maestro y se encarga de administrar, controlar y monitorear todas las aplicaciones y recursos del sistema, en tanto que el resto de los nodos está dedicado al procesamiento de datos o a ejecutar operaciones aritméticas. Se les conoce como nodos-esclavos.
Cluster de computación de alto rendimiento
Un clúster de alto rendimiento es un conjunto de ordenadores que está diseñado para dar altas prestaciones en cuanto a capacidad de cálculo.
Los motivos para utilizar un clúster de alto rendimiento son:
- El tamaño del problema por resolver.
- El precio de la máquina necesaria para resolverlo.
Por medio de un clúster se pueden conseguir capacidades de cálculo superiores a las de un ordenador más caro que el costo conjunto de los ordenadores del clúster.
Para garantizar esta capacidad de cálculo, los problemas necesitan ser paralelizables, ya que el método con el que los clústeres agilizan el procesamiento es dividir el problema en problemas más pequeños y calcularlos en los nodos, por lo tanto, si el problema no cumple con esta característica, no puede utilizarse el clúster para su cálculo.
Para que un problema sea paralelizable se debe hacer uso de bibliotecas especiales como lo es PVM (Parallel Virtual Machine) o MPI (Message Passage Interface), donde la primera es usada especialmente en clústeres con nodos heterogéneos (procesador, sistemas operativos), y pertenecientes a diferentes dominios de red, y la segunda biblioteca usada para clústeres homogéneos
PelicanHPC
PelicanHPC es un medio rápido de configurar un clúster de Computación de Alto Rendimiento (HPC) para computación paralela utilizando MPI.
PelicanHPC es una distribución GNU/Linux que se ejecuta como un "Live CD" o una imagen USB de arranque (también se puede iniciar desde una partición de disco duro, o se puede utilizar como un sistema operativo virtualizado). La computadora en la que se inicia PelicanHPC se conoce como el "nodo frontend". Es la computadora con la que el usuario interactúa. Una vez que se ejecuta PelicanHPC, se puede ejecutar el script "pelican_setup" que configura el nodo de la interfaz como un servidor de inicio de red. Una vez hecho esto, otras computadoras pueden iniciar copias de PelicanHPC en la red. Estas otras computadoras se conocen como "nodo de computadora". PelicanHPC configura el clúster formado por el nodo frontend y los nodos de computadora para que se pueda realizar la informática paralela basada en MPI.
Un "Live CD" como PelicanHPC de forma predeterminada no utiliza los discos duros de ninguno de los nodos (excepto el espacio de intercambio de Linux, si existe), por lo que no destruirá ni alterará el sistema operativo instalado. Cuando se cierra el clúster PelicanHPC, todas las computadoras se encuentran en su estado original y se reiniciarán en los sistemas operativos que tengan instalados.
Características
- El nodo frontend puede ser una computadora real arrancada usando un CD o un dispositivo USB, o una máquina virtual que se inicia utilizando el archivo de imagen de CD.
- Los nodos de computadora son normalmente computadoras reales, para un rendimiento máximo, pero también pueden ser virtuales.
- Admite la computación paralela basada en MPI usando Fortran (77, 90), C, C ++, GNU Octave y Python.
- Ofrece la implementación Open MPI de MPI.
- El clúster puede fácilmente cambiar de tamaño para agregar o eliminar nodos.
- Fácilmente extensible para agregar paquetes.
- Contiene software de ejemplo: benchmark Linpack HPL. También tiene mpi4py .
Limitaciones y requerimientos
- Los nodos de computadora deben iniciarse en la red. Se debe de tener en cuenta que el nodo frontend de PelicanHPC funciona como un servidor dhcp, por lo que no debe usarse en una red abierta, o se provocará conflictos de dhcp. Además, los nodos de computadora no arrancarán correctamente.
- Un clúster PelicanHPC está diseñado para ser utilizado por una sola persona.
- Las versiones lanzadas son solo para CPU de 64 bits (Opteron, Turion, Core 2, etc.). Se puede hacer una versión de 32 bits, si es necesario.
- La página web de PelicanHPC enumera algunas otras distribuciones similares que pueden ser más apropiadas para ciertos usos.
Arquitectura
Como se mencionaba en el punto uno de la sección de Limitaciones y requerimientos, los nodos del cluster deben iniciar a través de una red. Para poder realizar esto hacen uso del protocolo PXE.
...