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
Documentation Writing (for coders)
carmenintech
74
5k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Making Projects Easy
brettharned
117
6.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Practical Orchestrator
shlominoach
190
11k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
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 ͷ͜ͱɽ •
֤ϓϩηε͕શ͘ҧ͏ΞϧΰϦζϜͷ ͰՄೳɽ • ࢄΞϧΰϦζϜɼ͔̍ͭෳͷ࢝ಈ ϓϩηεʹΑͬͯ։࢝͞ΕΔɽ ͦΕҙ֎ͷϓϩηεϝοηʔδΛड৴࣮ͯ͠ߦΛ։࢝͢Δɽ
• ࢄΞϧΰϦζϜͷෳࡶ͞ ௨৴ෳࡶɾ࣌ؒෳࡶ • ௨৴ෳࡶ ϝοηʔδෳࡶͱϏοτෳࡶͰද͢ • ࣌ؒෳࡶ ඇಉظγεςϜͱಉظγεςϜͰఆ͕ٛҟͳΔɽ
• ϝοηʔδෳࡶ ΞϧΰϦζϜ͕ऴྃ͢Δ·Ͱʹަͨ͠ϝοηʔδͷ૯ • Ϗοτෳࡶ ϓϩηεؒͰަ͞ΕΔϝοηʔδͷ૯Ϗοτ • ಉظγεςϜͷ࣌ؒෳࡶ ΞϧΰϦζϜ͕ఀࢭ͢Δ·Ͱͷϥϯυ
• ඇಉظγεςϜͷ࣌ؒෳࡶ ௨ৗɼΞϧΰϦζϜ͕ىಈ͔ͯ͠Βɼఀࢭ͢Δ·Ͱͷ࣌ ؒɽ ඇಉظγεςϜͰɼҎԼͷཧ༝ʹΑΓ࠾༻Ͱ͖ͳ͍ɽ • ඇಉظγεςϜͷϓϩηε࣮ߦ͕ҰͰͳ͍ɽ • ϓϩηεͰͷखଓ͖ݺͼग़͠ΑΓɼϝοηʔδ௨৴ ͷ΄͏͕ѹతʹ͍ɽ
• ඇಉظγεςϜͷ࣌ؒෳࡶ ΞϧΰϦζϜ͕ఀࢭ͢Δ·Ͱʹੜͨ͡ϝ οηʔδͷ࠷ʹଐ͢Δϝοηʔδ • ϝοηʔδͷ࠷ͱʁ લͷϝοηʔδड৴ͷ݁Ռɼੜ͞Ε ͨΑ͏ͳϝοηʔδྻʢʁʣ → ͭ·Γϝοηʔδͷཤྺʁ