Celery: O mapa e o starmap devem ser renomeados?

Criado em 24 fev. 2014  ·  3Comentários  ·  Fonte: celery/celery

Eu realmente não acho que esses 2 primitivos realmente correspondem ao que parece que eles deveriam implicar no contexto de uma "fila de tarefas distribuídas". Eu entendo o motivo pelo qual alguém pode querer as funções map e starmap, pois elas criam uma única tarefa, mas eu realmente não tenho vantagem para eles, pois seria trivial para o usuário escrever a função para simplesmente suportar uma lista de entradas . Para mim, o termo "mapa" aqui implica algo como um algoritmo de redução de mapa que definitivamente não é. Um acorde é efetivamente uma forma de redução de mapa que realmente torna a nomenclatura incompreensível.

Eu acho que a nomenclatura do acorde deve ficar, pois faz o suficiente, mas ter mapa e mapa estelar alude que existe uma função de redução de mapa IMO.

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

Comentários muito úteis

group é a função de mapa distribuído.

O termo mapa foi usado muito antes do Google escrever o artigo MapReduce, e acho que ninguém está confuso com o termo quando usado em haskell ou clojure. A funcionalidade é perfeitamente expressa com o termo 'mapa', e não acho que existam alternativas naturais.

Os primitivos canvas também são todos substantivos (assinatura, grupo, acorde, cadeia), mas map é usado como um verbo (task.map), não a coisa com a qual os turistas às vezes são vistos.

As estruturas MapReduce também normalmente não terão estágios de mapa e redução desconectados, em vez disso
você tem uma operação mapreduce que usa um Mapper e um Redutor, onde os dados processados ​​são transmitidos para o redutor. Na verdade, simplesmente ter map() e reduce() não é considerado suficiente para MapReduce.

Portanto, um chord não é realmente uma forma de redução de mapa, é uma versão distribuída de uma barreira, e o nome
é diretamente retirado de tal barreira em Cω.

group não é retirado de lugar nenhum, mas a operação é a mesma
como o que é freqüentemente chamado de 'mapa paralelo' na literatura de simultaneidade, apenas na forma distribuída.
Portanto, map geralmente é considerado sequencial, não paralelo

Todos 3 comentários

group é a função de mapa distribuído.

O termo mapa foi usado muito antes do Google escrever o artigo MapReduce, e acho que ninguém está confuso com o termo quando usado em haskell ou clojure. A funcionalidade é perfeitamente expressa com o termo 'mapa', e não acho que existam alternativas naturais.

Os primitivos canvas também são todos substantivos (assinatura, grupo, acorde, cadeia), mas map é usado como um verbo (task.map), não a coisa com a qual os turistas às vezes são vistos.

As estruturas MapReduce também normalmente não terão estágios de mapa e redução desconectados, em vez disso
você tem uma operação mapreduce que usa um Mapper e um Redutor, onde os dados processados ​​são transmitidos para o redutor. Na verdade, simplesmente ter map() e reduce() não é considerado suficiente para MapReduce.

Portanto, um chord não é realmente uma forma de redução de mapa, é uma versão distribuída de uma barreira, e o nome
é diretamente retirado de tal barreira em Cω.

group não é retirado de lugar nenhum, mas a operação é a mesma
como o que é freqüentemente chamado de 'mapa paralelo' na literatura de simultaneidade, apenas na forma distribuída.
Portanto, map geralmente é considerado sequencial, não paralelo

E eles são úteis porque permitem diminuir a granularidade de uma operação simplesmente usando task.map(list) em vez de group(task.s(i) for i in list)

Exceto que task.map(list) não permite que as tarefas sejam executadas simultaneamente. Todas as tarefas são executadas no mesmo trabalhador, uma após a outra. Se não for esse o caso, posso abrir um novo problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

pymatffm picture pymatffm  ·  3Comentários

fbm picture fbm  ·  3Comentários

baratrion picture baratrion  ·  3Comentários

Xuexiang825 picture Xuexiang825  ·  3Comentários

synthead picture synthead  ·  3Comentários