Fabcluster: Un script Amazon EC2 para HPC

He estado experimentando con Amazon EC2, para el prototipo clusters HPC. Girando un grupo de micro casos es muy conveniente para las pruebas de software y configuraciones de sistemas. Con el fin de facilitar la formación y el debate, mi script Python ya está disponible en GitHub. Este fragmento de código utiliza los módulos de tela y Boto Python.

Se requiere una cuenta de Amazon Web Services para utilizar este script. Atención: que la ejecución de este script se iniciará servidores virtuales en la nube que se facturará por cada hora. El AWS Uso gratuito Tier debería ser suficiente para empezar, ya que las instancias predeterminadas son micro instancias.

vamos a instalar el script fabcluster, los paquetes de Python requeridos y archivos de motor de la red. El uso de la pipa y virtualenv es la forma más fácil de instalar paquetes de Python como usuario no root.

 $  git clone https://github.com/00gavin/fabcluster.git fabcluster /> 
$ curl-O https://raw.github.com/pypa/virtualenv / master / virtualenv.py
$ python virtualenv.py foo
$ . foo / bin / activar
$ pip instalar tela
$ pip install boto

Una vez que hemos firmado para una cuenta de Amazon Web Services, coloque sus credenciales en el ~ /. boto file:

 [Credenciales] 
aws_access_key_id = Su acceso ID de clave AQUÍ
aws_secret_access_key = TU Secreto clave de acceso AQUÍ

Si no queremos que se le pregunte a aceptar las claves ssh con cada nueva instancia, colocar estas líneas en el ~ / .ssh / config file:

 Host * amazonaws.com 
IdentityFile ~ / .ssh/ec2 -fab00-key.pem
IdentityFile ~ / .ssh/ec2-foo00-key.pem
IdentityFile ~ / .ssh/ec2-baz00-key.pem
usuario root
StrictHostKeyChecking no
UserKnownHostsFile / dev / null

Me gusta usar nombres de variables aleatorias como los nombres de clúster prototipo, como foo, baz, etc Vamos a llamar a nuestro cluster «foo». Si nunca hemos corrió este script antes de un clúster denominado foo, necesitamos inicializar algunas opciones de configuración de seguridad:

 $  gridinit fab: foo 

Ahora podemos iniciar el nodo principal de un clúster: $ gridmake fab: foo Si queremos añadir dos nodos de cómputo al clúster foo:

 $  gridgrow fab: foo, 2 

Para conectarse a nuestro nodo principal , enumeramos nuestras instancias en ejecución y encontramos el nombre de host público de foonode0.

 $  gridlist fab 
$ ssh ec2-NNN-NNN-NNN-NNN.compute-1.amazonaws.com
# qstat-gc
# exit

Y cuando se hace, queremos asegurarnos de terminar todas las instancias. Instancias en ejecución izquierda se cobrará por hora.

 $  gridterm fab: foo 

Un par de cosas a tener en cuenta acerca de este script:

  • utiliza por defecto los tipos de instancias de Amazon Linux que son Red Hat / Fedora por defecto
  • basada en el micro tipo de instancia, pero se puede cambiar el tipo de clúster HPC
  • se crea una cuenta de usuario normal que coincidan con su nombre de usuario locales
  • utiliza Programador de Open Grid
  • un ejemplo de inicialización de almacenamiento esté comentada
  • instalación paralela de computación los nodos se lleva a cabo con el subproceso

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *