Dado que los dispositivos Cray HPC son muy asequibles, ¿por qué no hay servicios HPC disponibles a través de la nube?

¡Me encanta esta pregunta! Probablemente porque pasé un año de mi vida tratando de encontrar una respuesta para ello como parte de mi tesis de maestría.

Sí, el hardware para supercomputadoras para ejecutar aplicaciones HPC se ha mejorado significativamente en los últimos años. Y también los centros de datos en la nube pueden y se están beneficiando de un hardware tan poderoso. Sin embargo, Cloud no es la plataforma más eficiente para ejecutar aplicaciones HPC, principalmente porque:

Gastos generales de virtualización: la virtualización desempeña un papel clave en la nube ayudando a la nube a tener una elasticidad rápida, agrupación de recursos, flexibilidad y eficiencia para las aplicaciones empresariales. Sin embargo, la virtualización y, en particular, el hipervisor agrega una sobrecarga no deseada al agregar una capa de software y evitar que las aplicaciones tengan acceso directo a los recursos de hardware. Esta sobrecarga de virtualización no es la misma para todos los tipos de hardware. Por ejemplo, debido al soporte de hardware, la sobrecarga de virtualización para procesadores es significativamente menor que la sobrecarga de virtualización de red. Para algunos tipos de hardware, como las GPU, a menudo es más eficiente pasar por las GPU que tener GPU virtuales. En otras palabras, cuando usa una GPU en la nube, es probable que se le dé un hardware de GPU con acceso directo. El resultado no es barato.

Multicliente: esto es lo que hace que Clouds sea rentable para los proveedores de Cloud. Significa que se puede compartir un mismo hardware entre varios clientes (inquilinos). El grado de tenencia múltiple se refiere al número de inquilinos que comparten un mismo recurso en la nube. Al aumentar el grado de multitenencia, los proveedores de la nube pueden sobreaprovisionar los recursos a los usuarios. El exceso de aprovisionamiento permite a los proveedores de la nube maximizar los beneficios, aunque con el riesgo de reducir la QoS. Pero esa es otra historia. Lo importante para nosotros es que a medida que aumenta el grado de tenencia múltiple, las aplicaciones deben competir por los recursos. Esto no es un gran problema en las aplicaciones comerciales. Pero las aplicaciones de HPC suelen ser intensivas en CPU y memoria. No quieren pelear por recursos con otro inquilino. Además, el grado de tenencia múltiple fluctúa con el tiempo. Esto causa otro problema porque no podrá predecir cuánto tiempo llevará ejecutar una aplicación HPC específica en la nube. Hice un pequeño experimento para ilustrar esta incertidumbre en el rendimiento de la aplicación HPC en la nube. Ejecuté un punto de referencia de multiplicación matricial muy simple en paralelo en Amazon AWS usando MPI en diferentes números de núcleos virtuales y en diferentes momentos del día durante varios días:

¿ver? Es imposible saber cuánto tiempo llevará la multiplicación de su matriz en la Nube. Ni siquiera es seguro decir que aumentar el número de núcleos definitivamente disminuirá el tiempo de ejecución. Aunque puedes decir que probablemente sí, pero depende … hmm … ¿qué hora es?

3. Ancho de banda de red y latencia: las interconexiones de red y los recursos de E / S en la nube se comparten entre varios inquilinos. Por lo tanto, el ancho de banda en la mayoría de los casos es mucho menor de lo esperado. Nuevamente ilustré que usando otro pequeño experimento ejecutando puntos de referencia MPI punto a punto en una interconexión 10Gig Amazon EC2. A continuación se muestra el resultado e indica que el entorno de múltiples inquilinos de la nube reduce el ancho de banda. Además, la latencia de la red en la nube no es estable. Por lo tanto, veremos una degradación del rendimiento para las aplicaciones de HPC en la nube, en particular las que requieren muchos datos.

En pocas palabras, debido a los desafíos antes mencionados, ejecutar las aplicaciones HPC en la nube es mucho más difícil que ejecutarlas en un centro de datos de supercomputación dedicado. Hay investigaciones en curso para abordar cada uno de estos desafíos, por ejemplo, haciendo que las aplicaciones HPC sean conscientes de la nube o reduciendo la sobrecarga de virtualización, o mi tesis que usaba Redes definidas por software para disminuir la latencia de la red. Pero todos estos esfuerzos mejoran el rendimiento de solo un subconjunto de aplicaciones HPC con ciertas características en la nube.

  1. Existen varios proveedores de HPCaaS (HPC como servicio), incluido Amazon EC2 (instancias de clúster y GPU)
  2. Cray dispositivos de los que habla, dirigidos a un nicho de supercomputación personal y no muy rentables para la nube. De hecho, es todo lo contrario a la nube: tener su propia supercomputadora personal con un número limitado de nodos y pagarla por adelantado en lugar de compartir miles de instancias bajo demanda con otras personas en la nube y pagar por el uso.

More Interesting

¿Puedo alquilar una instancia de AWS por unos días?

Cuando las PC ofrecen 500 GB o una TB como almacenamiento, ¿por qué los productos Apple tienen una capacidad de almacenamiento tan baja incluso cuando el sistema operativo y las aplicaciones relevantes cruzan 8 GB o más?

¿Cómo los grandes centros de datos, como los utilizados para el almacenamiento en la nube y los motores de búsqueda, distribuyen datos relacionados entre servidores y evitan la pérdida de datos?

¿Existe una arquitectura de referencia sobre cómo implementar Drupal de manera óptima en AWS, haciendo un uso máximo de los servicios de AWS?

¿Cuáles son las características del bloqueo de proveedores de PaaS?

¿Cómo manejar la conectividad SSLv3 en desuso en Amazon AWS S3?

¿Cómo ha cambiado Cloud Computing la forma en que se implementa la infraestructura de TI?

En el campo de TI actual, ¿cuál es la mejor tecnología para aprender: IA, computación en la nube, AngularJS o big data?

¿Cuál es el mejor, pruebas de software o computación en la nube?

¿Qué tipo de proyectos académicos podemos hacer sobre virtualización?

¿Crees que Oracle podrá competir con AWS como afirman?

¿Cuál es la diferencia entre un centro de datos virtual, un centro de datos en la nube y una nube privada? ¿Cuáles son los pros y los contras de cada uno?

¿Cuál es la forma posible de crear un clon de WhatsApp con Xamarin Native y Azure Cloud Backend?

¿Cuáles son las herramientas que se usan actualmente para la 'supervisión del rendimiento' en OpenStack?

¿Debo elegir un CRM basado en la nube o un CRM en las instalaciones?