μ λ μ΄ 2κ°μ§ κΈ°λ³Έ μμκ° "λΆμ° μμ λκΈ°μ΄"μ λ§₯λ½μμ μλ―Ένλ λ°μ λΆν©νλ€κ³ μκ°νμ§ μμ΅λλ€. λ¨μΌ μμ μ μμ±νκΈ° λλ¬Έμ λκ΅°κ°κ° map λ° starmap κΈ°λ₯μ μνλ μ΄μ λ₯Ό μ΄ν΄νμ§λ§ μ¬μ©μκ° λ¨μν μ λ ₯ λͺ©λ‘μ μ§μνλ κΈ°λ₯μ μμ±νλ κ²μ΄ μ½μ§ μκΈ° λλ¬Έμ μ΄μ μ μ€μ λ‘ μ»μ§ λͺ»ν©λλ€. . λμκ² "μ§λ"λΌλ μ©μ΄λ μ΄κ²μ΄ νμ€ν μλ μ§λ μΆμ μκ³ λ¦¬μ¦κ³Ό κ°μ κ²μ μλ―Έν©λλ€. νμμ μ¬μ€μ μ΄λ¦μ νΌλμ€λ½κ² λ§λλ 맡 μΆμμ ν ννμ λλ€.
λλ μ½λμ μ΄λ¦μ΄ κ·Έ μ΄νλ‘ μΆ©λΆνκΈ° λλ¬Έμ κ³ μν΄μΌνλ€κ³ μκ°νμ§λ§ mapκ³Ό starmapμ κ°λ κ²μ map-reduce κΈ°λ₯ IMOκ° μμμ μμν©λλ€.
http://docs.python.org/2/library/multiprocessing.html#using -a-pool-of-workers
group
λ λΆμ° 맡 κΈ°λ₯μ
λλ€.
μ§λλΌλ μ©μ΄λ Googleμ΄ MapReduce λ Όλ¬Έμ μμ±νκΈ° ν¨μ¬ μ΄μ μ μ¬μ©λμμΌλ©° νμ€μΌμ΄λ ν΄λ‘μ μμ μ¬μ©ν λ μ΄ μ©μ΄λ‘ νΌλλλ μ¬λμ μμ κ²μ λλ€. κ·Έ κΈ°λ₯μ 'μ§λ'λΌλ μ©μ΄λ‘ μλ²½νκ² ννλμ΄ μμΌλ©°, μμ°μ€λ¬μ΄ λμμ΄ μλ€κ³ μκ°ν©λλ€.
μΊλ²μ€ ν리미ν°λΈλ λͺ¨λ λͺ μ¬(signature, group, chord, chain)μ΄μ§λ§ mapμ κ΄κ΄κ°μ΄ κ°λ λ³Ό μ μλ κ²μ΄ μλλΌ λμ¬(task.map)λ‘ μ¬μ©λ©λλ€.
MapReduce νλ μμν¬μλ μΌλ°μ μΌλ‘ μ°κ²°μ΄ λκΈ΄ 맡 λ° μΆμ λ¨κ³κ° μμ΅λλ€. λμ
μ²λ¦¬λ λ°μ΄ν°κ° 리λμλ‘ μ€νΈλ¦¬λ°λλ 맀νΌμ 리λμλ₯Ό μ¬μ©νλ 맡리λμ€ μμ
μ΄ μμ΅λλ€. μ¬μ€, λ¨μν map()κ³Ό reduce()κ° μλ κ²λ§μΌλ‘λ MapReduceμ μΆ©λΆνμ§ μμ κ²μΌλ‘ κ°μ£Όλ©λλ€.
λ°λΌμ chord
λ μ€μ λ‘ map-reduceμ ν ννκ° μλλ©° μ₯λ²½μ λΆμ° λ²μ μ΄λ©° μ΄λ¦μ
CΟμ μ΄λ¬ν μ₯λ²½μμ μ§μ κ°μ Έμ΅λλ€.
group
λ μ무λ°μλ κ°μ Έμ€μ§ μκ³ λμμ λμΌν©λλ€.
λμμ± λ¬Ένμμ μ’
μ’
'λ³λ ¬ 맡'μ΄λΌκ³ λΆλ¦¬λ κ²κ³Ό κ°μ΄ λΆμ°λ ννμ
λλ€.
λ°λΌμ map
λ μΌλ°μ μΌλ‘ λ³λ ¬μ΄ μλ μμ°¨μ μΌλ‘ κ°μ£Όλ©λλ€.
group(task.s(i) for i in list)
task.map(list)
λ₯Ό μ¬μ©νμ¬ μμ
μ μΈλΆμ±μ μ€μΌ μ μκΈ° λλ¬Έμ μ μ©ν©λλ€.
task.map(list)
λ μμ
μ΄ λμμ μ€νλλ κ²μ νμ©νμ§ μλλ€λ μ μ μ μΈνκ³ . λͺ¨λ μμ
μ λμΌν μμ
μμμ μ°¨λ‘λ‘ μ€νλ©λλ€. μ΄κ²μ΄ μ¬μ€μ΄ μλμ΄μΌνλ€λ©΄ λλ μλ‘μ΄ λ¬Έμ λ₯Ό μ΄ ββμ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
group
λ λΆμ° 맡 κΈ°λ₯μ λλ€.μ§λλΌλ μ©μ΄λ Googleμ΄ MapReduce λ Όλ¬Έμ μμ±νκΈ° ν¨μ¬ μ΄μ μ μ¬μ©λμμΌλ©° νμ€μΌμ΄λ ν΄λ‘μ μμ μ¬μ©ν λ μ΄ μ©μ΄λ‘ νΌλλλ μ¬λμ μμ κ²μ λλ€. κ·Έ κΈ°λ₯μ 'μ§λ'λΌλ μ©μ΄λ‘ μλ²½νκ² ννλμ΄ μμΌλ©°, μμ°μ€λ¬μ΄ λμμ΄ μλ€κ³ μκ°ν©λλ€.
μΊλ²μ€ ν리미ν°λΈλ λͺ¨λ λͺ μ¬(signature, group, chord, chain)μ΄μ§λ§ mapμ κ΄κ΄κ°μ΄ κ°λ λ³Ό μ μλ κ²μ΄ μλλΌ λμ¬(task.map)λ‘ μ¬μ©λ©λλ€.
MapReduce νλ μμν¬μλ μΌλ°μ μΌλ‘ μ°κ²°μ΄ λκΈ΄ 맡 λ° μΆμ λ¨κ³κ° μμ΅λλ€. λμ
μ²λ¦¬λ λ°μ΄ν°κ° 리λμλ‘ μ€νΈλ¦¬λ°λλ 맀νΌμ 리λμλ₯Ό μ¬μ©νλ 맡리λμ€ μμ μ΄ μμ΅λλ€. μ¬μ€, λ¨μν map()κ³Ό reduce()κ° μλ κ²λ§μΌλ‘λ MapReduceμ μΆ©λΆνμ§ μμ κ²μΌλ‘ κ°μ£Όλ©λλ€.
λ°λΌμ
chord
λ μ€μ λ‘ map-reduceμ ν ννκ° μλλ©° μ₯λ²½μ λΆμ° λ²μ μ΄λ©° μ΄λ¦μCΟμ μ΄λ¬ν μ₯λ²½μμ μ§μ κ°μ Έμ΅λλ€.
group
λ μ무λ°μλ κ°μ Έμ€μ§ μκ³ λμμ λμΌν©λλ€.λμμ± λ¬Ένμμ μ’ μ’ 'λ³λ ¬ 맡'μ΄λΌκ³ λΆλ¦¬λ κ²κ³Ό κ°μ΄ λΆμ°λ ννμ λλ€.
λ°λΌμ
map
λ μΌλ°μ μΌλ‘ λ³λ ¬μ΄ μλ μμ°¨μ μΌλ‘ κ°μ£Όλ©λλ€.