2012-03-27 22 views
8

Existe una aplicación científica de MPI escrita en C (para Linux) que me gustaría ejecutar en Windows Azure. ¿Es eso posible?Implementación de la aplicación MPI en Windows Azure

  1. Si es posible, ¿cómo implementar la aplicación?

  2. ¿Es necesario convertirlo a Microsoft MPI?

  3. ¿Hay algún tipo específico de servicio de Azure que deba comprar para esto?

  4. ¿Es necesario escribir un contenedor administrado para que funcione?

Cualquier sugerencia/opinión/referencia sería muy útil.

P.S Soy nuevo en Azure.

+1

MPI es una especificación, no una biblioteca. Por lo tanto, aunque no soy un experto en MPI, creo que no debería necesitar convertir la aplicación a Microsoft MPI, ya que las bibliotecas MPI de Microsoft y Linux siguen la misma especificación. –

+0

Utilicé win7 para ejecutar mis códigos mpi porque utilicé Linux (distribución ubuntu) la única diferencia que veo es la forma en que instalé la biblioteca mpi en estos sistemas operativos. – peaceman

Respuesta

5

Así que no tiene que hacer nada demasiado especial para ejecutar MPI en Azure. Note que los nodos de Azure (a diferencia de las instancias de cálculo de clúster de Amazon) no están realmente configurados para este pozo; no necesariamente tiene una red de alta velocidad, y los nodos no están necesariamente cerca de la red. Entonces, un código estrechamente acoplado probablemente no funcione del todo bien, mientras que mucha gente usa Amazon u otros servicios con éxito para ese tipo de trabajo.

En cualquier caso, el "Microsoft" MPI que viene con el servidor HPC es simplemente una marca registrada y posiblemente ligeramente modificada MPICH2; entonces es un MPI estándar de pantano y eso no debería causar problemas. Cualquier programa MPI que cumpla con el estándar MPI debería estar bien.

En cuanto a ejecutar un solo trabajo MPI, no es más difícil que ejecutar un trabajo MPI por primera vez en un puñado de (digamos) escritorios; debe asegurarse de que su archivo de host esté configurado correctamente y que MPI esté configurado para hablar con el bloque de IP apropiado. En Technet, tienen un ejemplo de running the linpack benchmark on Azure nodes (incluido un enlace a lo que se necesita para asegurarse de que su Azure workers are running HPC server). Se saltan un par de pasos porque linpack es un binario preconstruido que puedes descargar, pero compilar con MPI es bastante sencillo.

En cuanto a la implementación de una aplicación para que pueda ejecutarla de manera rutinaria (o hacer que otros la ejecuten), voy a diferir a los demás sobre la mejor manera de hacerlo.

3

Microsoft pronto lanzará soporte para Linux VM's to be hosted in Azure. Entonces, podría concebir una máquina virtual Linux, instalar y configurar su aplicación MPI y subirla a Azure.

Sin embargo, probablemente primero deba considerar qué es lo que quiere lograr. Si su objetivo es aprovechar algunas de las características de Azure (por ejemplo, escala de disponibilidad de varias instancias &, por ejemplo), entonces deberá aumentar su aplicación con algún código adicional. Gracias a la comunidad de código abierto y rápido aumento de soporte de Microsoft para código abierto, se podría construir una funcionalidad adicional, por ejemplo:

  • Node.js que se ejecuta en Linux o Windows
  • Perl, Python, Ruby y/o PHP todos corriendo en Linux o Windows
  • código
  • .NET se ejecuta en un rol de trabajo de Windows o en Mono en su Linux VM

Si estás más interesado en takin g ventaja de la configuración del servicio de Azure, agregando/quitando dinámicamente roles de trabajador, usando almacenamiento azul, etc., entonces tiene suerte: todo lo anterior se puede controlar a través de las interfaces HTML/JSON REST, lo que significa que cualquier cosa que pueda hablar HTTP puede (con las credenciales correctas) configure, administre, supervise sus servicios y almacene/recupere datos hacia/desde el almacenamiento.

HTH.

0

Sé que este hilo es viejo! Pero en caso de que alguien todavía esté terminando aquí:

Azure se ha ampliado mientras tanto por instancias especiales de alto rendimiento, que admiten conexiones de alto rendimiento entre las instancias.

Si mira en el A8 and A9 instances, tienen, además de la interfaz de red predeterminada de 10 Gbps, una interfaz de red adicional optimizada para aplicaciones MPI.

32-Gbps extremo posterior, RDMA capaz: Activa baja latencia, de alto rendimiento comunicación de aplicación entre instancias dentro de una sola nube servicio o disponibilidad set. Reservado solo para tráfico MPI.

También hay bastante documentation para la configuración.

Cuestiones relacionadas