La computación de múltiples tareas ( MTC ) [1] [2] [3] [4] [5] [6] [7] en la ciencia computacional es un enfoque de computación paralela que apunta a cerrar la brecha entre dos paradigmas computacionales : computación de alto rendimiento (HTC) [8] y computación de alto rendimiento (HPC).
MTC recuerda a HTC, pero "se diferencia en el énfasis de usar muchos recursos computacionales durante períodos cortos de tiempo para realizar muchas tareas computacionales (es decir, incluyendo tareas dependientes e independientes), donde las métricas primarias se miden en segundos (por ejemplo, FLOPS, tareas/s, tasas de E/S de MB/s), en oposición a operaciones (por ejemplo, trabajos) por mes. MTC denota cálculos de alto rendimiento que comprenden múltiples actividades distintas, acopladas a través de operaciones del sistema de archivos. Las tareas pueden ser pequeñas o grandes, monoprocesador o multiprocesador, intensivas en computación o intensivas en datos . El conjunto de tareas puede ser estático o dinámico, homogéneo o heterogéneo, débilmente acoplado o fuertemente acoplado. El número agregado de tareas, la cantidad de computación y los volúmenes de datos pueden ser extremadamente grandes. MTC incluye aplicaciones débilmente acopladas que generalmente requieren mucha comunicación pero que no se expresan naturalmente utilizando la interfaz de paso de mensajes estándar que se encuentra comúnmente en HPC, lo que llama la atención sobre los muchos cálculos que son heterogéneos pero no "felizmente" paralelos". [6]
Raicu et al. afirman además: "La informática de alto rendimiento implica mucho más que una MPI estrechamente acoplada, y la informática de alto rendimiento implica mucho más que trabajos de ejecución vergonzosamente paralelos . Al igual que las aplicaciones de informática de alto rendimiento y la ciencia misma, las aplicaciones se están volviendo cada vez más complejas, lo que abre nuevas puertas a muchas oportunidades de aplicar la informática de alto rendimiento de nuevas maneras si ampliamos nuestra perspectiva. Algunas aplicaciones tienen tantas tareas simples que gestionarlas es difícil. Las aplicaciones que operan o producen grandes cantidades de datos necesitan una gestión de datos sofisticada para poder escalar. Existen aplicaciones que implican muchas tareas, cada una compuesta de tareas MPI estrechamente acopladas. Las aplicaciones débilmente acopladas a menudo tienen dependencias entre tareas y, por lo general, utilizan archivos para la comunicación entre procesos. El soporte eficiente para este tipo de aplicaciones en los sistemas de gran escala existentes implicará desafíos técnicos sustanciales y tendrá un gran impacto en la ciencia". [6]
Algunas áreas relacionadas son los programas múltiples, múltiples datos (MPMD), la computación de alto rendimiento (HTC), los flujos de trabajo, la computación de capacidad o el paralelismo vergonzoso . Algunos proyectos que podrían soportar cargas de trabajo de MTC son Condor, [9] Mapreduce , [10] Hadoop, [11] Boinc , [12] Cobalt [ enlace muerto permanente ] HTC-mode, [13] Falkon, [14] y Swift. [15] [16]