Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
分散アルゴリズム(1)
Search
suikwasha
November 07, 2012
0
230
分散アルゴリズム(1)
自分用メモ
P5 to P20
suikwasha
November 07, 2012
Tweet
Share
More Decks by suikwasha
See All by suikwasha
分散アルゴリズム(3)
suikwasha
0
2k
分散アルゴリズム(2)
suikwasha
0
220
Featured
See All Featured
KATA
mclloyd
PRO
32
15k
Side Projects
sachag
455
43k
Navigating Team Friction
lara
190
15k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Automating Front-end Workflow
addyosmani
1371
200k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
290
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Being A Developer After 40
akosma
91
590k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Optimizing for Happiness
mojombo
379
70k
Transcript
ࢄΞϧΰϦζϜ ̍ɼࢄγεςϜͷඞཁੑ ̎ɼࢄγεςϜ
• ࢄγεςϜͱʁ ͋Δڞ௨ͷతͷͨΊʹ௨৴ωοτϫʔ ΫͰ݁߹͞Εͨࣗతʹಈ࡞͢Δܭࢉػ ͷγεςϜɽ • ࢄγεςϜͷॴ ύϑΥʔϚϯεɾ֦ுੑɾՄ༻ੑ • ͜͜ͰɼࢄΞϧΰϦζϜΛهड़͢Δ
ͨΊͷݴޠ ALGOL Λಋೖ͢Δɽ
• ࢄγεςϜͷϞσϧ ϓϩηεͷू߹ͱ௨৴ϦϯΫͷू߹ ௨৴ϦϯΫ P3 P2 P1 ϓϩηε
• ϓϩηε ஞ࣍ΞϧΰϦζϜ͕ɼ͋Δϓϩηοαʹ ׂΓͯΒΕ࣮ͯߦ͞Ε͍ͯΔաఔɽ • ֤ϓϩηε Pi ࣝผࢠ id(Pi) Λ࣋ͭɽࣝ
ผࢠ O(log n) Ϗοτͷࣗવɽ • ֤ϓϩηε Pi ہॴ࣌ܭΛ࣋ͭɽ ཧ࣌ؒ͋Δ͍࣮࣌ؒΛදݱ͢Δɽ
• ௨৴ϦϯΫ ϓϩηεؒ௨৴Λ࣮ݱ͢Δखஈɼର ௨৴ɽ୯ํɾํ͕͋Δɽ • ୯ํϦϯΫɿҰํʹ͔͠ૹ৴Ͱ͖ͳ ͍ɽ • ํϦϯΫɿ྆ํʹϝοηʔδΛૹ ৴Ͱ͖Δɽ
• ϝοηʔδૹड৴ํ๏ͷछྨɽ ૹ৴ͱड৴ʹͦΕͧΕ̎छྨͷํ๏͕͋ Δɽ • ྫɿϓϩηε P1 ͕ϝοηʔδ M Λϓϩ
ηε P2 ʹૹ৴͠Α͏ͱͨ͠ͱ͢Δɽ M ϓϩηε P1 ϓϩηε P2 send receive ೖྗͪߦྻ
• ϒϩοΩϯά Send P2 ͕ M Λड৴ՄೳʹͳΔ·Ͱ P1 ͕ͨ͞ΕɼP2 ͕
M Λड৴ͨ࣌͠ʹऴྃ͢Δɽ • ඇϒϩοΩϯά Send ૹͬͨϝοηʔδ͕ड৴͞ΕΔ·Ͱ P1 ͕ͨ͞Εͳ ͍ɽ͜ͷ࣌ɼϝοηʔδ P2 ͷೖྗͪߦྻʹೖΔ • ̎छྨͷҧ͍ɼϒϩοΩϯά Send P1 ͕ P2 ͷ M ͷड৴ΛΔ͜ͱ͕ग़དྷΔɽ
• ϒϩοΩϯά Receive ೖྗͪߦྻʹϝοηʔδ͕ແ͍࣌ɼϝοηʔδ͕౸ ண͢Δ·Ͱͭɽʢॲཧதஅ͞ΕΔʣ • ඇϒϩοΩϯά Receive ೖྗͪߦྻʹϝοηʔδ͕ແͯ͘ɼϝοηʔδͷ ౸ணΛͨͳ͍ɽ
• ೖྗͪߦྻʹϝοηʔδ͕͋Δͱ͖ɼϝοηʔδ ΛऔΓग़ͯ͠ฦ͢ɽ
• ࠓճɼඇϒϩοΩϯά Send ͱϒϩο Ωϯά Receive Λ࠾༻ͨ͠௨৴ػߏΛར ༻͢Δɽ
• ࢄγεςϜͷྨ ಉظγεςϜɾඇಉظγεςϜ
• ಉظγεςϜͱʁ ҎԼͷ̏ͭͷ݅Λຬͨ͢ɽ ̍ɼϓϩηεͷ࣮ߦʹԼݶ͕͋Δɽ ̎ɼ௨৴ʹ͔͔Δ௨৴Ԇʹఆͷ্ݶ͕͋Δɽ ̏ɼҙͷେҬ࣌ܭͰɼͯ͢ͷϓϩηε Pi ͷہॴ࣌ ܭͷ͍͠ɽ •
ϓϩηε͕େҬ࣌ܭΛࢀরͰ͖ͯɼ௨৴Ԇ͕ ͦΕͧΕ͋ΔఆͰԡ͑͞ΒΕΔͱԾఆ͞ΕΔɽ
• ϥϯυ ಉظγεςϜͰࣄͷ୯ҐΛநԽͨ͠୯Ґɽ ֤ϓϩηεಉظ֤ͯ͠ϥϯυΛ࣮ߦ͢ΔͱΈͳͤ Δɽ P1 P2 P3 ɾɾɾ Pn
ϥϯυ1 ϥϯυ2 ϥϯυ3 ϥϯυn ߋʹଓ͘... ϝοηʔδަ ܭࢉͳͲ
• ඇಉظγεςϜ ಉظγεςϜͰͳ͍ࢄγεςϜ • શඇಉظγεςϜ ҎԼͷ̏ͭͷ݅Λຬͨ͢ɽ ̍ɼͲͷϓϩηεͷ໋ྩ༗ݶ࣌ؒʹ࣮ߦ͞ΕΔ ̎ɼ௨৴Ԇʹରͯ͠ͲͷΑ͏ͳԾઆઃ͚ͳ͍ ̏ɼہॴ࣌ܭͷࠩʹରͯ͠ͲͷΑ͏ͳԾઆઃ͚ͳ͍
• ࢄΞϧΰϦζϜͱʁ ֤ϓϩηε Pi ͕࣮ߦ͢ΔΞϧΰϦζϜ Ai ͷू߹ A ͷ͜ͱɽ •
֤ϓϩηε͕શ͘ҧ͏ΞϧΰϦζϜͷ ͰՄೳɽ • ࢄΞϧΰϦζϜɼ͔̍ͭෳͷ࢝ಈ ϓϩηεʹΑͬͯ։࢝͞ΕΔɽ ͦΕҙ֎ͷϓϩηεϝοηʔδΛड৴࣮ͯ͠ߦΛ։࢝͢Δɽ
• ࢄΞϧΰϦζϜͷෳࡶ͞ ௨৴ෳࡶɾ࣌ؒෳࡶ • ௨৴ෳࡶ ϝοηʔδෳࡶͱϏοτෳࡶͰද͢ • ࣌ؒෳࡶ ඇಉظγεςϜͱಉظγεςϜͰఆ͕ٛҟͳΔɽ
• ϝοηʔδෳࡶ ΞϧΰϦζϜ͕ऴྃ͢Δ·Ͱʹަͨ͠ϝοηʔδͷ૯ • Ϗοτෳࡶ ϓϩηεؒͰަ͞ΕΔϝοηʔδͷ૯Ϗοτ • ಉظγεςϜͷ࣌ؒෳࡶ ΞϧΰϦζϜ͕ఀࢭ͢Δ·Ͱͷϥϯυ
• ඇಉظγεςϜͷ࣌ؒෳࡶ ௨ৗɼΞϧΰϦζϜ͕ىಈ͔ͯ͠Βɼఀࢭ͢Δ·Ͱͷ࣌ ؒɽ ඇಉظγεςϜͰɼҎԼͷཧ༝ʹΑΓ࠾༻Ͱ͖ͳ͍ɽ • ඇಉظγεςϜͷϓϩηε࣮ߦ͕ҰͰͳ͍ɽ • ϓϩηεͰͷखଓ͖ݺͼग़͠ΑΓɼϝοηʔδ௨৴ ͷ΄͏͕ѹతʹ͍ɽ
• ඇಉظγεςϜͷ࣌ؒෳࡶ ΞϧΰϦζϜ͕ఀࢭ͢Δ·Ͱʹੜͨ͡ϝ οηʔδͷ࠷ʹଐ͢Δϝοηʔδ • ϝοηʔδͷ࠷ͱʁ લͷϝοηʔδड৴ͷ݁Ռɼੜ͞Ε ͨΑ͏ͳϝοηʔδྻʢʁʣ → ͭ·Γϝοηʔδͷཤྺʁ