StarCluster lleva HPC a Amazon Cloud - Calendae | Informática, Electrónica, CMS, Ciberseguridad

StarCluster lleva HPC a Amazon Cloud

Hola, un placer verte por aquí. En el teclado Simón Sánchez y esta vez vamos a hablar sobre StarCluster lleva HPC a Amazon Cloud

Configurar un clúster de HPC en la nube puede ser una tarea abrumadora para los nuevos usuarios que desean usar la nube para ejecutar sus aplicaciones de HPC. Conocer los entresijos del modelo de infraestructura como servicio (IaaS), así como configurar e instalar un sistema HPC típico, no es tarea fácil.

Para usar la nube de manera efectiva, los usuarios deben poder automatizar el proceso de solicitud y configuración de nuevos recursos y también quedarse sin recursos cuando ya no los necesitan sin perder datos. Estas preocupaciones pueden representar un desafío incluso para los usuarios avanzados y requieren cierto nivel de programación en la nube para hacerlo bien. En un esfuerzo por mejorar esta situación, el grupo de Herramientas de software para académicos e investigadores (STAR) del MIT creó un proyecto de código abierto llamado StarCluster que permite a cualquier persona crear y administrar sus propios clústeres de HPC alojados en Elastic Compute Cloud (EC2). Amazon sin necesidad de ser un experto en la nube.

Configuración de StarCluster

Uno de los principales objetivos de StarCluster es ser fácil de usar y ocultar la mayor cantidad posible de detalles de computación en la nube a los usuarios. Cuando un nuevo usuario intenta utilizar StarCluster por primera vez, se crea un archivo de configuración de muestra listo para su uso inmediato. El usuario simplemente necesita ingresar la información de su cuenta EC2 y, opcionalmente, personalizar la cantidad de máquinas que se utilizarán antes de estar listo para iniciar un clúster. Al iniciar un clúster con la configuración de muestra, se iniciará un clúster de dos máquinas utilizando los tipos de instancia más baratos disponibles en EC2. Esto permite a los usuarios experimentar StarCluster por primera vez sin costos iniciales dramáticos.

El conjunto de ajustes específico del clúster en el archivo de configuración se conoce como «plantilla de clúster». StarCluster admite la definición de múltiples modelos de clúster que se pueden utilizar al iniciar un clúster. Por ejemplo, a menudo es útil tener modelos separados para diferentes tamaños de grupos, como un modelo que define un grupo pequeño de dos máquinas y otro modelo que define un grupo grande de diez máquinas. Estas plantillas se pueden especificar en tiempo de ejecución para permitir el uso de una variedad de configuraciones al iniciar un clúster.

Iniciar un clúster de HPC en EC2

Una vez creado el archivo de configuración, iniciar un clúster es tan simple como ejecutar «starcluster start mynewcluster» desde la línea de comandos. Este comando primero verificará que todas las configuraciones en el archivo de configuración sean válidas y probablemente creará un sistema que funcione. Después de verificar la configuración en el archivo de configuración, el comando «iniciar» crea un nuevo clúster basado en esta configuración con un nombre de etiqueta de «mynewcluster» en EC2.

Una vez que el comando «inicio» ha terminado, el usuario puede iniciar sesión en la máquina «maestra» como root ejecutando «starcluster sshmaster mynewcluster». En este punto, el usuario tiene las claves (raíz) del clúster tal como lo harían con sus recursos locales.

StarCluster también tiene la capacidad de crear múltiples clústeres de HPC. Al ejecutar el mismo comando «iniciar» nuevamente con un nombre de etiqueta diferente, se iniciará otro clúster de HPC en la nube con la misma configuración que la ejecución anterior. Si se han definido plantillas de clúster adicionales en el archivo de configuración, estas se pueden usar opcionalmente para especificar un conjunto diferente de configuraciones para usar al iniciar el siguiente clúster.

Una vez que el usuario ha terminado de usar un clúster, simplemente necesita especificar el nombre de la etiqueta en el comando «detener» de StarCluster para apagarlo. Para el ejemplo de «mynewcluster» anterior, el comando sería «starcluster detener mynewcluster». El comando «detener» apagará todo el clúster y finalizará el período de facturación.

Configuración automatizada del clúster HPC

StarCluster configura automáticamente cada máquina con la configuración de red adecuada necesaria para comunicarse con el resto del clúster. Además, StarCluster configura completamente la comunicación SSH sin contraseña tanto para el usuario raíz como para el usuario habitual del clúster. SSH sin contraseña permite a un usuario iniciar sesión de forma remota entre máquinas de clúster sin utilizar una contraseña. Esto es útil cuando se administran máquinas en la nube y también es un requisito necesario para la comunicación OpenMPI.

La mayoría de los clústeres suelen tener algún tipo de sistema de cola para enviar y equilibrar la carga de muchas tareas o «trabajos» de cálculo intensivo, y StarCluster no es una excepción. StarCluster instala y configura inmediatamente la versión de código abierto del sistema de cola Sun Grid Engine (SGE) para ejecutar trabajos distribuidos y paralelos en el clúster. De forma predeterminada, también se configura una cola paralela que permite a SGE monitorear y rastrear actividades paralelas que usan más de una máquina en un solo trabajo.

Muchas actividades paralelas se escriben comúnmente utilizando la Interfaz de paso de mensajes (MPI). Para los usuarios de MPI, StarCluster incluye una instalación OpenMPI compatible con SGE que proporciona una estrecha integración entre el programador de trabajos de SGE y las aplicaciones MPI. Esta integración elimina la necesidad de que los usuarios especifiquen una lista de hosts para usar cuando se ejecuta un trabajo MPI. Más bien, OpenMPI recuperará automáticamente la información del host que necesita directamente de SGE y comenzará la ejecución. Esto permite que todas las máquinas involucradas en el cálculo de MPI sean debidamente contabilizadas por el sistema de cola.

Compartir archivos entre máquinas sin copiarlos manualmente es un requisito para la mayoría de los sistemas HPC. Por lo general, esto se hace usando una carpeta compartida a través del sistema de archivos de red (NFS). StarCluster configura automáticamente / home en cada máquina «trabajadora» del clúster para que la máquina «maestra» comparta NFS. Esto permite a los usuarios ver sus archivos en cualquier máquina del clúster y también proporciona un lugar accesible globalmente donde los trabajos pueden leer los datos de entrada y escribir los resultados finales.

Imagen de máquina de StarCluster Amazon (AMI)

EC2 utiliza imágenes de máquinas de Amazon para cargar un sistema operativo completo junto con varias aplicaciones, bibliotecas y datos en una máquina virtual recién solicitada. Las imágenes de la máquina están disponibles públicamente para casi todas las distribuciones de Linux, Solaris e incluso Microsoft Windows. Puede crear nuevas imágenes con configuraciones de software personalizadas iniciando una nueva máquina virtual desde una AMI existente, instalando un nuevo software y luego ejecutando un proceso de creación de AMI en la máquina para crear una nueva AMI.

StarCluster se envía con una AMI personalizada disponible públicamente, tanto de 32 bits como de 64 bits, que contiene todo el sistema operativo y la configuración de software necesarios para un clúster de HPC en Amazon. La AMI de StarCluster se basa en Ubuntu Linux 9.10 e incluye el sistema de cola Sun Grid Engine (edición de código abierto), el sistema de archivos de red y OpenMPI junto con bibliotecas de desarrollo y herramientas comunes para compilar nuevo software desde la fuente. StarCluster AMI también incluye una instalación compilada personalizada de las bibliotecas ATLAS (subrutinas de álgebra lineal ajustadas automáticamente) y LAPACK (paquete de álgebra lineal) optimizadas para tipos de instancias más grandes de alta CPU en EC2. Para los usuarios de Python numérico, la AMI contiene instalaciones tanto de NumPy como de SciPy que se han creado a medida contra las instalaciones optimizadas de LAPACK / ATLAS. Estas bibliotecas optimizadas proporcionan una mejora significativa del rendimiento al ejecutar rutinas de álgebra lineal en la nube.

Por supuesto, StarCluster no solo lo limita a estas instalaciones de software. Las AMI de StarCluster se pueden ampliar fácilmente con su software para crear una nueva AMI adaptada a una necesidad específica. Para simplificar el proceso de creación de la AMI, StarCluster proporciona un comando «createimage» que creará automáticamente una nueva AMI desde una máquina virtual Amazon EC2 que se ejecuta en la nube. Esto le permite iniciar una sola máquina virtual, instalar software y crear fácilmente una nueva AMI desde esta máquina. Usar una nueva AMI personalizada con StarCluster es tan simple como actualizar el archivo de configuración con el identificador de la nueva AMI.

Uso de volúmenes de EBS para almacenamiento persistente

Amazon también proporciona un servicio llamado Elastic Block Storage (EBS) que permite a los usuarios crear volúmenes de almacenamiento de bloques virtuales con una funcionalidad similar a una memoria USB. Estos volúmenes pueden tener un tamaño de entre 1 GB y 1 TB y se pueden conectar a una sola máquina virtual en la nube a la vez. La ventaja de usar estos volúmenes es que todos los datos escritos en EBS se archivan y retienen automáticamente en la nube incluso después de que se hayan terminado todas las máquinas virtuales. Esto significa que la próxima vez que inicie un clúster y conecte el volumen de EBS, todos sus datos estarán disponibles como lo fue la última vez que inició un clúster. Otro beneficio de usar volúmenes de EBS es que son fáciles de crear instantáneas y duplicar, lo que le permite realizar copias de seguridad de grandes cantidades de datos en la nube.

StarCluster tiene la capacidad de utilizar los volúmenes de EBS de Amazon para proporcionar almacenamiento de datos persistente para un clúster determinado. Para utilizar EBS con StarCluster, primero debe crear un volumen EBS. Para los nuevos usuarios, este proceso se simplifica utilizando el comando «createvolume» de StarCluster. Este comando automatiza el proceso de creación, partición y formateo de un nuevo volumen de EBS.

El uso de un nuevo volumen con StarCluster implica agregar configuraciones de volumen adicionales al archivo de configuración. Esta configuración especifica el volumen que se utilizará y la ubicación en el sistema de archivos del clúster al que adjuntar el volumen. Esta ubicación del sistema de archivos es compartida por NFS por la máquina «maestra» a todas las máquinas «trabajadoras». StarCluster no solo lo limita a usar un solo volumen de EBS. Puede configurar, conectar y compartir varios volúmenes de EBS en el clúster. Esto permite almacenar hasta varios terabytes de datos en el clúster. Introducción a StarCluster

StarCluster es un software de código abierto y se puede descargar de forma gratuita desde el sitio web de StarCluster en http://web.mit.edu/starcluster o desde el índice de paquetes de Python (PyPI) en http://pypi.python.org/pypi/StarCluster.

ACTUALIZACIÓN: Ahora tenemos un video screencast de StarCluster en acción que se puede ver aquí.

Acerca de

Justin Riley es un desarrollador de software para el grupo de Herramientas de software para académicos e investigadores (STAR) del Instituto de Tecnología de Massachusetts (MIT). El grupo STAR busca cerrar la brecha entre la investigación científica y el aula colaborando con profesores del MIT y otras instituciones educativas para diseñar software que explore los conceptos fundamentales de la investigación científica. El grupo STAR trabaja en la Oficina de Innovación y Tecnología Educativa (OEIT) bajo la dirección del Decano de Educación Universitaria (DUE) del MIT.

Justin ha estado desarrollando con la nube de Amazon durante los últimos tres años y ha utilizado con éxito la nube para respaldar los cursos «Introducción al modelado y simulación» e «Introducción a la programación paralela para máquinas multinúcleo que utilizan OpenMP y OpenMPI» en el MIT. Su trabajo con StarCluster surgió directamente de la necesidad de proporcionar una solución sostenible a los problemas asociados con la incorporación de recursos informáticos al aula. Justin creó StarCluster para automatizar el proceso de búsqueda, configuración y mantenimiento de recursos informáticos sin la necesidad de ser un administrador del sistema las 24 horas del día, los 7 días de la semana y sin tener que aparecer físicamente para solucionar problemas potenciales de hardware y software.

Recuerda compartir en tu Facebook para que tus amigos lo sepan

??? ? ? ???

Comparte