2011-03-19 7 views
5

Estoy interesado en saber si hay una definición formal en cuanto a si un código paralelo es escalable, o si es simplemente una palabra de moda? Si mido el tiempo de pared serial como t_S y el tiempo de pared paralela como t (P), entonces puedo definir la eficiencia como E (P) = t_S/(t (P) * P), ¿hay algún criterio sobre cómo la eficiencia tiene que cambiar con P (y el tamaño del problema) para que el código se considere escalable?¿Cómo se define la escalabilidad para el código paralelo?

Respuesta

5

Escalable significa que con máquinas adicionales o núcleos de CPU (escalar hacia arriba o hacia afuera) el rendimiento (capacidad para manejar cargas de trabajo cada vez mayores) mejora. El código de serie por lo tanto no es escalable. El código paralelo puede ser. La ley de Amdahl limita cuán escalable puede ser un sistema.

La escalabilidad es a menudo más importante que la eficiencia. Un sistema escalable pero ineficiente puede manejar más carga simplemente agregando hardware. Un sistema eficiente pero no escalable requiere una mayor revisión del código para manejar cargas más grandes.

Cuestiones relacionadas