¿La abstracción de MapReduce es buena para resolver problemas incluso en una sola máquina? Por ejemplo, tengo una máquina de 12 núcleos y tengo que contar palabras en miles de archivos (ejemplo clásico de MapReduce).¿MapReduce es adecuado para resolver problemas en un entorno de memoria de múltiples núcleos de una sola máquina?
Usar una implementación de MapReduce con Mappers y Reductores en múltiples hilos es una buena forma de resolver este problema, considerando que estamos trabajando en una sola máquina con un solo disco duro.
Supongo que mi pregunta se reduce a esto: ¿El paradigma de MapReduce es bueno solo para trabajar en un grupo de máquinas?
Apostaría que el "único disco" es el gran punto. Espero que un solo núcleo pueda ejecutar 'isspace (3)' en caracteres provenientes de un disco duro giratorio tan rápido como la unidad pueda servirlos. ¿Alguno de los archivos ya estará en la memoria caché del búfer porque se usan con frecuencia? – sarnold
Para hacerlo más interesante, podemos decir que tenemos un gran buffer de archivos en la memoria. Digamos que tenemos 16 GB de RAM para contener archivos y el trabajo de MapReduce consume este búfer. Y si no hay latencia del disco? Si todos los datos están en RAM? –
En ese caso, esperaría que varios hilos de computación valen la pena. – sarnold