Celery: ¿Deberían cambiarse el nombre de mapa y mapa estelar?

Creado en 24 feb. 2014  ·  3Comentarios  ·  Fuente: celery/celery

Realmente no creo que estas 2 primitivas realmente estén a la altura de lo que parece que deberían implicar en el contexto de una "cola de tareas distribuidas". Entiendo la razón por la que alguien podría querer las funciones de mapa y mapa estelar, ya que crean una sola tarea, pero realmente no obtengo la ventaja para ellos, ya que sería trivial para el usuario escribir la función para admitir simplemente una lista de entradas. . Para mí, el término "mapa" aquí implica algo así como un algoritmo de reducción de mapa que definitivamente no es. Un acorde es efectivamente una forma de reducción de mapa que realmente hace que el nombre sea alucinante.

Creo que el nombre del acorde debería mantenerse, ya que hace lo suficiente desde entonces, pero tener un mapa y un mapa estelar alude a que hay una función de reducción de mapa en mi opinión.

http://docs.python.org/2/library/multiprocessing.html#using -a-pool-of-workers

Comentario más útil

group es la función de mapa distribuido.

El término mapa se usó mucho antes de que Google escribiera el documento MapReduce, y no creo que nadie se confunda con el término cuando se usa en haskell o clojure. La funcionalidad se expresa perfectamente con el término 'mapa', y no creo que haya alternativas naturales.

Los primitivos de lienzo también son todos sustantivos (firma, grupo, acorde, cadena), pero el mapa se usa como un verbo (tarea.mapa), no la cosa con la que a veces se ve a los turistas.

Los marcos MapReduce normalmente tampoco tendrán mapas desconectados y etapas reducidas, en su lugar
tiene una operación mapreduce que toma un Mapeador y un Reductor, donde los datos procesados ​​se transmiten al reductor. De hecho, simplemente tener map() y reduce() no se considera suficiente para MapReduce.

Entonces chord no es realmente una forma de map-reduce, es una versión distribuida de una barrera, y el nombre
se toma directamente de tal barrera en Cω.

group no se saca de ningún lado, pero el funcionamiento es el mismo
como lo que a menudo se llama 'mapa paralelo' en la literatura de concurrencia, solo en forma distribuida.
Por lo tanto, map generalmente se considera secuencial, no paralelo

Todos 3 comentarios

group es la función de mapa distribuido.

El término mapa se usó mucho antes de que Google escribiera el documento MapReduce, y no creo que nadie se confunda con el término cuando se usa en haskell o clojure. La funcionalidad se expresa perfectamente con el término 'mapa', y no creo que haya alternativas naturales.

Los primitivos de lienzo también son todos sustantivos (firma, grupo, acorde, cadena), pero el mapa se usa como un verbo (tarea.mapa), no la cosa con la que a veces se ve a los turistas.

Los marcos MapReduce normalmente tampoco tendrán mapas desconectados y etapas reducidas, en su lugar
tiene una operación mapreduce que toma un Mapeador y un Reductor, donde los datos procesados ​​se transmiten al reductor. De hecho, simplemente tener map() y reduce() no se considera suficiente para MapReduce.

Entonces chord no es realmente una forma de map-reduce, es una versión distribuida de una barrera, y el nombre
se toma directamente de tal barrera en Cω.

group no se saca de ningún lado, pero el funcionamiento es el mismo
como lo que a menudo se llama 'mapa paralelo' en la literatura de concurrencia, solo en forma distribuida.
Por lo tanto, map generalmente se considera secuencial, no paralelo

Y son útiles porque le permiten disminuir la granularidad de una operación simplemente usando task.map(list) en lugar de group(task.s(i) for i in list)

Excepto que task.map(list) no permite que las tareas se ejecuten simultáneamente. Todas las tareas se ejecutan en el mismo trabajador una tras otra. Si este no fuera el caso, puedo abrir un nuevo problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones