Celery: Haruskah map dan starmap diganti namanya?

Dibuat pada 24 Feb 2014  ·  3Komentar  ·  Sumber: celery/celery

Saya tidak benar-benar berpikir 2 primitif ini benar-benar sesuai dengan apa yang tampaknya mereka maksudkan dalam konteks "antrian tugas terdistribusi". Saya mengerti alasan mengapa seseorang mungkin menginginkan fungsi peta dan peta bintang karena mereka membuat satu tugas, tetapi saya tidak benar-benar mendapatkan keuntungan bagi mereka karena akan sepele bagi pengguna untuk menulis fungsi hanya untuk mendukung daftar input . Bagi saya istilah "peta" di sini menyiratkan sesuatu seperti algoritme pengurangan peta yang jelas bukan. Akord secara efektif merupakan bentuk pengurangan peta yang benar-benar hanya membuat penamaan membingungkan.

Saya pikir penamaan akord harus tetap karena itu sudah cukup, tetapi memiliki peta dan starmap menyinggung bahwa ada fungsi pengurangan peta IMO.

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

Komentar yang paling membantu

group adalah fungsi peta terdistribusi.

Istilah peta digunakan jauh sebelum Google menulis makalah MapReduce, dan saya rasa tidak ada orang yang bingung dengan istilah tersebut ketika digunakan dalam haskell atau clojure. Fungsionalitas diekspresikan dengan sempurna dengan istilah 'peta', dan saya rasa tidak ada alternatif alami.

Kanvas primitif juga semua kata benda (tanda tangan, kelompok, akord, rantai), tetapi peta digunakan sebagai kata kerja (task.map), bukan hal yang kadang-kadang dilihat oleh turis.

Kerangka kerja MapReduce juga biasanya tidak akan memutus peta dan mengurangi tahapan, sebagai gantinya
Anda memiliki operasi mapreduce yang menggunakan Mapper dan Reducer, di mana data yang diproses dialirkan ke peredam. Faktanya, hanya memiliki map() dan reduce() tidak dianggap cukup untuk MapReduce.

Jadi chord sebenarnya bukan bentuk pengurangan peta, ini adalah versi penghalang terdistribusi, dan nama
langsung diambil dari penghalang seperti itu di Cω.

group tidak diambil dari mana pun, tetapi operasinya sama
sebagai apa yang sering disebut 'peta paralel' dalam literatur konkurensi, hanya dalam bentuk terdistribusi.
Oleh karena itu, map biasanya dianggap berurutan, bukan paralel

Semua 3 komentar

group adalah fungsi peta terdistribusi.

Istilah peta digunakan jauh sebelum Google menulis makalah MapReduce, dan saya rasa tidak ada orang yang bingung dengan istilah tersebut ketika digunakan dalam haskell atau clojure. Fungsionalitas diekspresikan dengan sempurna dengan istilah 'peta', dan saya rasa tidak ada alternatif alami.

Kanvas primitif juga semua kata benda (tanda tangan, kelompok, akord, rantai), tetapi peta digunakan sebagai kata kerja (task.map), bukan hal yang kadang-kadang dilihat oleh turis.

Kerangka kerja MapReduce juga biasanya tidak akan memutus peta dan mengurangi tahapan, sebagai gantinya
Anda memiliki operasi mapreduce yang menggunakan Mapper dan Reducer, di mana data yang diproses dialirkan ke peredam. Faktanya, hanya memiliki map() dan reduce() tidak dianggap cukup untuk MapReduce.

Jadi chord sebenarnya bukan bentuk pengurangan peta, ini adalah versi penghalang terdistribusi, dan nama
langsung diambil dari penghalang seperti itu di Cω.

group tidak diambil dari mana pun, tetapi operasinya sama
sebagai apa yang sering disebut 'peta paralel' dalam literatur konkurensi, hanya dalam bentuk terdistribusi.
Oleh karena itu, map biasanya dianggap berurutan, bukan paralel

Dan mereka berguna karena memungkinkan Anda mengurangi perincian operasi hanya dengan menggunakan task.map(list) alih-alih group(task.s(i) for i in list)

Kecuali bahwa task.map(list) tidak mengizinkan tugas untuk berjalan secara bersamaan. Semua tugas dijalankan pada pekerja yang sama satu demi satu. Jika ini tidak terjadi, saya dapat membuka masalah baru.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat