Similitudes:
- Comunicación: para que se pueda realizar un trabajo útil, los datos deben trasladarse a la aplicación y los resultados deben salir de ella. A veces, los datos tienen que moverse a través de etapas, si el flujo de trabajo se asemeja a una tubería. Independientemente de ser HPC o una aplicación web altamente escalada, los datos deben moverse rápidamente sin importar la dirección.
- Sincronización: estamos en la era de la programación paralela, por lo que es natural que las etapas se coordinen de alguna manera. Hay muchas formas de sincronización (bloqueos, sin bloqueo, consistencia débil, etc.), y el punto común es que eventualmente las cosas deben converger a un resultado sensato. La sincronización a veces es un desafío, y un cuello de botella frecuente si se pasa por alto.
- Multiprogramación / subprocesos: en un modelo de flujo de datos, el código mueve datos, generalmente con múltiples instancias (por ejemplo, map-reduce, que ni siquiera es nuevo en estos días). Estas instancias tienden a ser realizadas por agentes ejecutables en un sistema, como subprocesos nativos (o lo que sea que ofrezca el sistema operativo).
Diferencias clave
- HPC tiende a centrarse en el rendimiento ; Las aplicaciones web escaladas generalmente se centran en transacciones por unidad de tiempo . Esto cambia la aplicación subyacente para enfocar los recursos en lograr uno u otro objetivo. Como ejemplo aproximado, en HPC generalmente desea evitar la programación frecuente del sistema (es costoso), mientras que una aplicación web escalada se basa en la programación para avanzar en muchas transacciones (principalmente debido al procesamiento basado en eventos).
- Para HPC, algunas características de la CPU son clave para hacer un progreso definitivo. Dependiendo de la carga de trabajo específica, no querrá SMT (Multi-threading simétrico, como Hyper-threading de Intel), debido a la falta de recursos dentro de la CPU, dado que se trataba de un número fijo de unidades os (generalmente unas pocas unidades enteras, al menos una unidad de punto flotante completa, posiblemente una unidad simple de FPU, como una suma-multiplicación, y algunas unidades de carga / almacenamiento). En aplicaciones web escaladas, la carga de trabajo es muy variada, lo más probable es que desee tener SMT para usar mejor su CPU (y tal vez usar una menos potente).
- Bus del sistema: para aplicaciones basadas en el rendimiento (como HPC), el plano posterior del bus del sistema es clave para lograr la velocidad de datos necesaria entre los componentes (red, descargadores como GPU, etc.), y esto suele ser muy costoso. Una aplicación de aplicación web puede acomodar un backplane menos potente, debido a su carga de trabajo mixta.
- Las aplicaciones web escaladas dependen de la redundancia (múltiples nodos) y la replicación (múltiples copias del conjunto de datos) para la capacidad de recuperación , o la capacidad de recuperarse con gracia de los errores, idealmente sin que el usuario final lo note. Para HPC, dependerá del presupuesto, pero es común modelar su flujo de trabajo de una manera que robe el trabajo, por lo que si un nodo falla, otros elegirán el trabajo incompleto o un nodo de gestión (o humano) lo reasignará a otro nodo .
- Quiero crear un sitio web como Reddit (la funcionalidad de votación positiva y negativa). ¿Como empiezo? ¿Qué idioma debo usar?
- ¿Qué es la aplicación web de Outlook?
- ¿Cuál es el requisito de hardware (infraestructura) necesario para que Jmeter cargue grandes aplicaciones web de prueba? (Digamos, sitios web y aplicaciones de la universidad).
- ¿Qué excelentes ejemplos de servicios web accesibles por SMS existen?
- ¿Cuáles son los mejores temas de WP, aplicaciones web y otras herramientas para crear sitios web de directorio seleccionados?