Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programmable Interconnect Control Adaptive to Communication Pattern of Applications

Programmable Interconnect Control Adaptive to Communication Pattern of Applications

Preliminary examination

Keichi Takahashi

October 09, 2018
Tweet

More Decks by Keichi Takahashi

Other Decks in Research

Transcript

  1. Programmable Interconnect Control 

    Adaptive to Communication Pattern of Applications
    େࡕେֶେֶӃ৘ใՊֶݚڀՊ
    ϚϧνϝσΟΞ޻ֶઐ߈Ԡ༻ϝσΟΞ޻ֶߨ࠲
    ∁ڮܛஐ
    ೥݄೔

    View Slide

  2. ং࿦
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ݁࿦


    શମߏ੒

    View Slide

  3. ষং࿦

    View Slide

  4. ߴੑೳܭࢉ͸࠷ઌ୺ͷՊֶٕज़ͷݚڀ։ൃʹඞਢͷಓ۩
    ‣ ࡐྉՊֶɺੜ໋Պֶɺ஍ٿՊֶɺ֩෺ཧֶͳͲଟ͘ͷ෼໺Ͱ׆༻
    ‣ ΑΓେن໛ͳ໰୊Λղͨ͘Ίܭࢉੑೳ΁ͷཁٻ͸ߴ·Γଓ͚͍ͯΔ
    ‣ &YB'-014΁ͷ౸ୡΛ໨ࢦͯ͠ݚڀ͕ਪਐ͞Ε͍ͯΔ


    എܠߴੑೳܭࢉ
    1IPUPCZ0BL3JEHF/BUJPOBM-BCPSBUPSZ$$#:

    0SJHJOBMIUUQTXXXqJDLSDPNQIPUPTPBLSJEHFMBC
    ং࿦

    View Slide

  5. ۙ೥ͷߴੑೳܭࢉγεςϜͷଟ͘͸ΫϥελΞʔΩςΫνϟʹجͮ͘
    ‣ Ϋϥελ͸૬ޓ݁߹໢ʹΑΓ઀ଓ͞Εͨଟ਺ͷܭࢉػ͔Βߏ੒
    ‣ ֤ܭࢉػ͸૬ޓ݁߹໢Λհͯ͠σʔλΛަ׵͠ͳ͕Βฒྻܭࢉ


    ૬ޓ݁߹໢ͷ௨৴ੑೳͷॏཁੑ
    0 1 2 3 4 5
    ૬ޓ݁߹໢ ߴੑೳωοτϫʔΫ

    ܭࢉػ
    ૬ޓ݁߹໢Λհͨ͠௨৴
    ϓϩηε
    ং࿦
    5PQ +VOF
    ͷ

    ΞʔΩςΫνϟ಺༁


    $MVTUFS .11
    ૬ޓ݁߹໢ͷ௨৴ੑೳ͸Ϋϥελ

    શମͷܭࢉੑೳΛେ͖͘ࠨӈ͢Δ

    View Slide

  6. ूஂ௨৴
    ʜ
    ର௨৴
    )1$޲͚ϓϩηεؒ௨৴ϥΠϒϥϦ
    ‣ ϓϩηε͸/8ΞυϨεͷ୅ΘΓʹ
    ϥϯΫ ϓϩηε*%
    ʹΑͬͯࣝผ
    ‣ ฒྻϓϩάϥϛϯάʹ༗༻ͳ

    ର௨৴ͱूஂ௨৴Λఏڙ


    .FTTBHF1BTTJOH*OUFSGBDF .1*

    0 1
    4FOE

    *TFOE
    3FDW
    *SFDW
    0 2
    3
    1
    #DBTU
    1
    2
    3
    0
    3FEVDF
    2 3
    0 1
    "MMUPBMM
    5$1*1
    .1*ϥΠϒϥϦ
    ΞϓϦέʔγϣϯ
    4PDLFU 7FSCT 14.
    .1*
    *OpOJ#BOE 0NOJ1BUI
    ং࿦
    ϓϩηε ϓϩηε

    View Slide



  7. ໰୊ݻఆతͳ૬ޓ݁߹໢
    ϓϩηεؒ௨৴ͷॴཁ͕࣌ؒ૿େ͠ɺ
    ΞϓϦέʔγϣϯͷ࣮ޮੑೳ͕௿Լ
    ૬ޓ݁߹໢಺ͷϦϯΫͰ௨৴ܦ࿏ͷিಥ͕ൃੜ
    ૬ޓ݁߹໢ͷઃܭ

    ߏங࣌ʹܾఆ͠ॊೈͳมߋ͕

    ࠔ೉
    τϙϩδ
    ϧʔςΟϯά
    ং࿦
    ϓϩηεؒ௨৴ύλʔϯ

    ΞϓϦέʔγϣϯ͝ͱʹҟͳΓ
    ࣮ߦதʹมԽ͢Δ
    ΞϓϦ" ΞϓϦ# ΞϓϦ$
    0 1
    2 3
    0 1
    2 3
    0
    1
    2
    3

    View Slide

  8. ॊೈ͔ͭಈతͳωοτϫʔΫ੍ޚΛ࣮ݱ͢Δ/8ΞʔΩςΫνϟ
    ‣ ैདྷͷωοτϫʔΫʹ͓͚Δ੍ޚػೳͱసૹػೳΛ෼཭
    ‣ ωοτϫʔΫΛιϑτ΢ΣΞͷΑ͏ʹϓϩάϥϜՄೳʹ͢Δ
    ‣ 4%/ͷۀքඪ४త࣮૷͸0QFO'MPX


    4PGUXBSF%FpOFE/FUXPSLJOH 4%/

    ैདྷͷ/8ΞʔΩςΫνϟ 4%/
    ੍ޚ ੍ޚ
    ੍ޚ
    సૹ సૹ
    సૹ
    సૹ సૹ
    సૹ
    ίϯτϩʔϥ
    ੍ޚ ੍ޚ
    ੍ޚ
    ং࿦

    View Slide



  9. ؔ࿈ݚڀ
    ϓϩηε഑ஔ
    ϓϩηεؒ௨৴ύλʔϯ
    0 1 2
    3 4 5
    6 7 8
    9 10 11
    ૬ޓ݁߹໢ͱ௨৴ύλʔϯΛ

    ҙࣝͨ͠ϓϩηε഑ஔ
    ૬ޓ݁߹໢ͷτϙϩδΛ

    ҙࣝͨ͠ूஂ௨৴ΞϧΰϦζϜ
    0 1 2 3 4 5 6 7 8 9 10 11
    ૬ޓ݁߹໢
    ং࿦
    ಈతมߋ
    ಈతมߋ
    ಈతมߋ
    ૬ޓ݁߹໢ͷϓϩάϥϚϏϦςΟΛ

    ׆༻ͨ͠ݚڀ͕ෆे෼

    View Slide



  10. ໨తϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ૬ޓ݁߹໢
    ܭࢉػ
    ং࿦
    ΞϓϦ" ΞϓϦ#
    ΞϓϦ$
    0 1
    2 3
    0 1
    2 3
    0
    1
    2
    3
    ಈత੍ޚ
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    .1*ΞϓϦέʔγϣϯ

    View Slide



  11. ՝୊
    ং࿦
    MPI_Bcast(…);
    for (i = 0; i < N; i++) {

    }

    MPI_Allreduce(…);
    4SD %TU *OTUSVDUJPOT
    A B Output to X
    A C Output to Y
    B D Output to Z
    .1*ΞϓϦέʔγϣϯ ϓϩηεؒ௨৴ύλʔϯ ૬ޓ݁߹໢੍ޚ໋ྩ
    ՝୊૬ޓ݁߹໢಺ͷύέοτϑϩʔ
    ͷղੳ
    0 1 2 3 4 5
    0 1 2
    3 4 5
    ՝୊௨৴ύλʔϯΛҙࣝͨ͠૬ޓ݁߹໢ͷ
    ಈత੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦέʔγϣϯͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త

    View Slide



  12. શମߏ੒
    ং࿦
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త

    View Slide

  13. ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷ

    ղੳπʔϧ
    ؔ࿈ۀ੷
    ‣ ,FJDIJ5BLBIBTIJFUBM l1'"OBMZ[FS"5PPMTFUGPS"OBMZ[JOH"QQMJDBUJPOBXBSF%ZOBNJD
    *OUFSDPOOFDUTz 8PSLTIPQPO.POJUPSJOHBOE"OBMZTJTGPS)JHI1FSGPSNBODF$PNQVUJOH4ZTUFNT
    1MVT"QQMJDBUJPOT )1$."41"
    4FQ

    View Slide



  14. શମߏ੒
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ

    View Slide



  15. ϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷݚڀ։ൃ
    Ϋϥελͷߏ੒
    ௨৴ύλʔϯ
    0
    2
    1
    3
    δϣϒηοτ
    K
    K K
    K
    ૬ޓ݁߹໢ ߴੑೳωοτϫʔΫ

    ܭࢉػ
    ෳ߹త࡞༻
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ૬ޓ݁߹໢಺ͷύέοτϑϩʔ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δ

    ύέοτϑϩʔͷධՁ؀ڥ͕ෆՄܽ

    View Slide



  16. ষͷ໨త
    Ϋϥελ্ͰΞϓϦέʔγϣϯΛ࣮ߦͨ͠ࡍʹɺ૬ޓ݁߹໢಺ʹ

    ൃੜ͢ΔύέοτϑϩʔΛղੳ͢ΔͨΊͷධՁ؀ڥΛߏங͢Δ
    ໨త
    ௨৴ύλʔϯ
    Ϋϥελͷߏ੒
    0
    2
    1
    3
    K
    K K
    K
    ෳ߹త࡞༻
    ૬ޓ݁߹໢ ߴੑೳωοτϫʔΫ

    ܭࢉػ
    δϣϒηοτ
    ཁ࣮݅ΞϓϦέʔγϣϯͷ௨৴ύλʔϯͷநग़
    ཁ݅૬ޓ݁߹໢಺ͷύέοτϑϩʔΛߴ଎ʹਪఆ
    ཁ݅Ϋϥελͷϓϩηε഑ஔಛੑͷ࠶ݱ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ

    View Slide



  17. 1'"OBMZ[FS૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ཁ࣮݅ΞϓϦέʔγϣϯͷ௨৴ύλʔϯͷநग़
    ཁ݅૬ޓ݁߹໢಺ͷύέοτϑϩʔΛߴ଎ʹਪఆ
    ཁ݅Ϋϥελͷϓϩηε഑ஔಛੑͷ࠶ݱ
    1'1SPG ϓϩϑΝΠϥ
    .1*ؔ਺ʹΑͬͯൃੜͨ͠ϓϩηε
    ؒ௨৴Λܭଌɾه࿥͢ΔͨΊͷࡉཻ౓.1*ϓϩϑΝΠϥ
    1'4JN γϛϡϨʔλ
    ಈత੍ޚ͞Εͨ૬ޓ݁߹໢಺ͷ

    ύέοτϑϩʔΛղੳ͢ΔͨΊͷܰྔγϛϡϨʔλ

    View Slide

  18. ूஂ௨৴Λߏ੒͢Δݸผͷର௨৴·Ͱิ଍ՄೳͳϓϩϑΝΠϥ
    ‣ طଘͷϓϩϑΝΠϥ͸ूஂ௨৴Λߏ੒͢Δର௨৴Λิ଍Ͱ͖ͳ͍
    ‣ .1*1FSGPSNBODF3FWFBMJOH&YUFOTJPO*OUFSGBDF 1&364&
    Λ

    ࢖༻͢Δ͜ͱͰɺݸผͷର௨৴·Ͱิ଍͢Δ͜ͱΛՄೳʹ͢Δ


    1'1SPGࡉཻ౓.1*ϓϩϑΝΠϥ







    ࣮ࡍʹ࣮ߦ͞ΕΔ௨৴ #JOPNJBM5SFF
    ΞϧΰϦζϜ




    ΞϓϦέʔγϣϯ͔Βݟͨ.1*@#DBTU
    ͷڍಈ


    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ

    View Slide



  19. 1'4JN૬ޓ݁߹໢಺ύέοτϑϩʔγϛϡϨʔλ
    0
    1 2 3 4 5
    ϊʔυׂ౰
    ϓϩηε഑ஔ
    ϧʔςΟϯά
    K
    K
    K K
    ૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔྔ
    εέδϡʔϦϯά
    ௨৴ύλʔϯ
    Ϋϥελͷߏ੒
    0
    2
    1
    3
    K
    K K
    K
    δϣϒηοτ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ϦϓϨΠ
    Ϛοϐϯά
    ࠶ݱ
    ग़ྗ
    ೖྗ 1'4JN ग़ྗ

    View Slide



  20. ධՁ࣮ݧ
    ߲໨ γϛϡϨʔγϣϯ৚݅
    ܭࢉϊʔυ ୆ ܭίΞ

    τϙϩδ
    ஈ'BUUSFF PWFSTVCTDSJQUJPO
    SBUJP

    ௨৴ύλʔϯ /"4$(
    ϧʔςΟϯά %NPE,
    ఏҊπʔϧ͕ɺΫϥελ্ͰΞϓϦέʔγϣϯΛ࣮ߦͨ͠ࡍͷ

    ૬ޓ݁߹໢಺ͷύέοτϑϩʔΛਖ਼֬ʹਪఆͰ͖͍ͯΔ͔ධՁ͢Δ
    ໨త
    core1 core2
    edge1 edge2 edge3 edge4
    Edge
    Core
    ௨৴ྔ͕ଟ͍ϕϯνϚʔΫ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ

    View Slide

  21. $PSFεΠον&EHFεΠονؒͷύέοτϑϩʔͷྦྷੵྔΛγϛϡϨʔ
    γϣϯͱ࣮ଌ஋Ͱൺֱ
    ‣ ޡࠩ͸࠷େͰ͋Γɺਖ਼֬ʹύέοτϑϩʔྔΛਪఆͰ͖͍ͯΔ





    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    DPSFˠ
    FEHF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    FEHFˠ
    DPSF
    ࣮ଌ஋ γϛϡϨʔγϣϯ


    ධՁ݁Ռ
    ࠷େޡࠩ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    core1 core2
    edge1 edge2 edge3 edge4
    Edge
    Core

    View Slide

  22. ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧΛఏҊ
    ‣ ଟ༷ͳ৚݅ԼͰΞϓϦέʔγϣϯΛ࣮ߦͨ͠ࡍͷ૬ޓ݁߹໢಺ͷ

    ύέοτϑϩʔྔΛৄࡉʹղੳՄೳ
    ఏҊπʔϧ͕ύέοτϑϩʔྔΛਖ਼֬ʹਪఆͰ͖͍ͯΔ͔ݕূ
    ‣ ࣮ଌ஋ͱൺֱ͠ޡࠩ͸࠷େͰ͋Γɺਖ਼֬ʹύέοτϑϩʔྔΛ

    ਪఆͰ͖͍ͯͨ


    ষͷ·ͱΊ
    ଟ༷ͳΞϓϦέʔγϣϯͱΫϥελߏ੒ͷԼʹ͓͚Δ૬ޓ݁߹໢಺

    ύέοτϑϩʔͷղੳखஈΛ࣮ݱ
    ߩݙ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ

    View Slide

  23. ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    ؔ࿈ۀ੷
    ‣ ,FJDIJ5BLBIBTIJFUBM l1FSGPSNBODF&WBMVBUJPOPG4%/FOIBODFE.1*@"MMSFEVDFPOB$MVTUFS
    4ZTUFNXJUI'BUUSFF*OUFSDPOOFDUz 5IF*OUFSOBUJPOBM$POGFSFODFPO)JHI1FSGPSNBODF$PNQVUJOH
    BOE4JNVMBUJPOT )1$4
    +VM

    View Slide



  24. શମߏ੒
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide

  25. ूஂ௨৴Ͱ͸ଟ਺ͷܭࢉػ͕ಉ࣌ଟൃతʹ௨৴͢ΔͨΊɺ

    ૬ޓ݁߹໢΁ͷෛՙ͕ߴ͍
    ‣ ϦϯΫʹ͓͍ͯ௨৴ܦ࿏͕িಥ͢Δͱϓϩηεؒ௨৴ੑೳ͕௿Լ
    ‣ Ұ෦ͷϓϩηεؒ௨৴ͷੑೳ௿Լ͕ूஂ௨৴શମͷੑೳʹӨڹ


    .1*ूஂ௨৴ʹ͓͚Δ௨৴ܦ࿏ͷিಥ
    0
    1
    2
    3





    ௨৴ܦ࿏ͷিಥ


    ूஂ௨৴ͷ௨৴ύλʔϯ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide

  26. ‣ ຊݚڀͰ͸ूஂ௨৴ͷதͰ΋࢖༻ස౓͕ߴ͍"MMSFEVDFؔ਺ʹண໨
    ‣ "MMSFEVDF͸ڞ໾ޯ഑๏΍֬཰తޯ഑߱Լ๏౳ͷฒྻԽʹ͓͍ͯॏཁ


    ষͷ໨త
    .1*@"MMSFEVDF

    .1*@46.

    ૬ޓ݁߹໢಺ͷύέοτϑϩʔͷಈత੍ޚʹΑΓ௨৴ܦ࿏ͷিಥΛ

    ܰݮ͠ɺ.1*ूஂ௨৴Λߴ଎Խ͢ΔϑϨʔϜϫʔΫΛߏங
    0
    1
    2
    3




    0
    1
    2
    3

    ໨త




    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide



  27. ఏҊͷجຊํ਑
    .1*ूஂ௨৴ؔ਺ͷ௨৴ύλʔϯΛߟྀ͠ɺ૬ޓ݁߹໢಺ͷύέοτ

    ϑϩʔΛෛՙ෼ࢄ͢Δ͜ͱʹΑΓɺ௨৴ܦ࿏ͷিಥΛܰݮ͠௨৴Λ

    ߴ଎Խ
    0
    2
    1
    3
    4
    6
    5
    7
    .1*ूஂ௨৴ؔ਺ͷ

    ௨৴ύλʔϯ
    ಈత੍ޚ
    ϦϯΫؒͷෛՙΛ෼ࢄ
    ೖྗ
    ૬ޓ݁߹໢ͷίϯτϩʔϥ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide



  28. 4%/Λ׆༻ͨ͠.1*ूஂ௨৴ϑϨʔϜϫʔΫ
    ੍ޚ
    4%/ίϯτϩʔϥ
    ܭࢉϊʔυ
    ૬ޓ݁߹໢
    .1*ϥΠϒϥϦ
    .1*ΞϓϦέʔγϣϯ
    4%/.1*ϥΠϒϥϦ
    τϙϩδݕग़
    εΠον੍ޚ
    "MMSFEVDF #DBTU
    ੍ޚΞϧΰϦζϜ
    ֎෦*'
    ʜ
    িಥΛܰݮ͢Δ੍ޚΞϧΰϦζϜ
    ूஂ௨৴ͷ։࢝
    ϓϩηε഑ஔ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide



  29. "MMSFEVDF༻ύέοτϑϩʔ੍ޚΞϧΰϦζϜ
    0
    2
    1
    3
    1 3
    0
    1
    2
    3


    0 2 1 3
    .1*@"MMSFEVDFͷ

    ϓϩηεؒ௨৴ύλʔϯ
    ૬ޓ݁߹໢ͷτϙϩδ
    0 2
    .1*@"MMSFEVDFͷϓϩηεؒ௨৴ʹΑͬͯൃੜ͢Δܭࢉػؒͷ

    ύέοτϑϩʔΛᩦཉ๏ʹΑΓ৑௕ܦ࿏ؒʹ෼ࢄ
    ໨త
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide



  30. ධՁ࣮ݧ
    .1*@"MMSFEVDFͷ࣮ߦ࣌ؒ
    ஈ'BUUSFFτϙϩδ ϊʔυ

    ఏҊ.1*@"MMSFEVDFͷ

    0QFO.1*ʹର͢Δߴ଎Խ཰
    ௨৴ύλʔϯΛߟྀͨ͠ύέοτϑϩʔ੍ޚʹΑΓɺ௨৴ܦ࿏ͷ

    িಥΛܰݮ͠ɺ.1*@"MMSFEVDFؔ਺Λߴ଎ԽͰ͖͔ͨධՁ͢Δ
    ໨త
    ࣮ߦ࣌ؒ





    ϝοηʔδαΠζ<.#>

    0QFO.1* ୅දతͳ.1*࣮૷
    1SPQPTFE
    ߴ଎Խ཰





    ϝοηʔδαΠζ<.#>

    ͷߴ଎Խ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide

  31. 4%/Λ༻͍ͨύέοτϑϩʔ੍ޚʹΑΓ.1*ूஂ௨৴Λߴ଎Խ
    ‣ ௨৴ύλʔϯΛߟྀ͠ɺ૬ޓ݁߹໢಺ͷύέοτϑϩʔΛ෼ࢄ͢Δ

    ͜ͱʹΑΓɺ௨৴ܦ࿏ͷিಥΛܰݮ
    ‣ ୅දతͳ.1*ूஂ௨৴ؔ਺Ͱ͋Δ.1*@"MMSFEVDFΛର৅ͱͯ͠

    ϓϩτλΠϓ࣮૷Λ։ൃ
    ‣ ैདྷͷ.1*@"MMSFEVDFʹൺ΂ͯ࠷େͰͷߴ଎ԽΛ࣮ݱ


    ষͷ·ͱΊ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎ԽΛ֓೦࣮ূ͠ɺ

    ूஂ௨৴ͷߴ଎ԽͷجૅͱͳΔϑϨʔϜϫʔΫΛߏங
    ߩݙ
    4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ

    View Slide

  32. ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ؔ࿈ۀ੷
    ‣ ,FJDIJ5BLBIBTIJFUBM l6OJTPO'MPX"4PGUXBSF%FpOFE$PPSEJOBUJPO.FDIBOJTNGPS.FTTBHF
    1BTTJOH$PNNVOJDBUJPOBOE$PNQVUBUJPOz *&&&"DDFTT WPM OP QQ
    ‣ ,FJDIJ5BLBIBTIJFUBM l$PODFQUBOE%FTJHOPG4%/FOIBODFE.1*'SBNFXPSLz 5IFGPVSUI
    FEJUJPOPGUIF&VSPQFBO8PSLTIPQPO4PGUXBSF%FpOFE/FUXPSLT &84%/
    QQ 4FQ

    View Slide



  33. શମߏ੒
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide



  34. ࣮ࡍͷ)1$ΞϓϦέʔγϣϯͷ࣮ߦͷ༷ࢠ
    0
    1
    2
    3
    ܭࢉ ௨৴
    ϓϩηε
    0
    1
    2
    3
    0
    1
    2
    3
    0
    1
    2
    3
    .1*@"MMSFEVDF
    ܭࢉ ௨৴
    ʜ
    ʜ
    ʜ
    ʜ
    ʜ
    0
    1
    2
    3
    0
    1
    2
    3
    0
    1
    2
    3
    0
    1
    2
    3
    .1*@"MMUPBMM
    0 1
    2 3
    .1*@"MMSFEVDFͷ

    ௨৴ύλʔϯ
    0 1
    2 3
    .1*@"MMUPBMMͷ

    ௨৴ύλʔϯ
    ϛϦඵͷΦʔμͰมԽ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide



  35. ষͷ໨త
    #include
    int main() {
    MPI_Init(&argc, &argv);
    MPI_Bcast(buf, count, …);
    /* … */
    MPI_Allreduce(buf, count, …);
    MPI_Finalize();
    }
    ࣌ؒมԽ͢Δ

    ௨৴ύλʔϯ
    ૬ޓ݁߹໢಺

    ύέοτϑϩʔͷ੍ޚ
    ࿈܎
    ࣮ߦ
    ੍ޚ
    4SD."$ %TU."$ ʜ *OTUSVDUJPOT
    aa:aa:aa:

    ff:ff:ff:

    Flood
    bb:bb:bb:

    aa:aa:aa:

    Output to Port
    X
    aa:aa:aa:

    bb:bb:bb:

    Set Dst IP to
    Y,…
    4SD."$ %TU."$ ʜ *OTUSVDUJPOT
    aa:aa:aa:

    ff:ff:ff:

    Flood
    bb:bb:bb:

    aa:aa:aa:

    Output to Port
    X
    aa:aa:aa:

    bb:bb:bb:

    Set Dst IP to
    Y,…
    4SD."$ %TU."$ ʜ *OTUSVDUJPOT
    aa:aa:aa:

    ff:ff:ff:

    Flood
    bb:bb:bb:

    aa:aa:aa:

    Output to Port
    X
    aa:aa:aa:

    bb:bb:bb:

    Set Dst IP to
    Y,…
    ΞϓϦέʔγϣϯͷ࣮ߦͱ૬ޓ݁߹໢಺ͷύέοτϑϩʔ੍ޚΛ

    ௿ΦʔόʔϔουͰ࿈܎͢Δػߏͷ࣮ݱ
    ໨త
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide



  36. ࿈܎ػߏͷجຊతΞΠσΟΞ
    .1*ؔ਺Λ࣮ߦ͢Δ౓ʹίϯτϩʔϥ
    ͱ௨৴͢ΔͱΦʔόʔϔουେ
    .1*ͷ৘ใ ੍ޚ
    ίϯτϩʔϥ
    εΠον
    ܭࢉػ
    .1*ؔ਺ͷ৘ใΛݸʑͷ

    .1*ύέοτࣗମʹຒΊࠐΉ
    .1*ύέοτ
    ੍ޚ
    .1*ͷ৘ใ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide

  37. ֤ύέοτʹ.1*ΤϯϕϩʔϓΛූ߸Խͯ͠λάͱͯ͠ຒΊࠐΉ
    ‣ εΠονͰ͸λάͷ஋ΛݩʹύέοτΛ੍ޚ
    ‣ طଘͷ4%/εΠονͷύέοτॲཧύΠϓϥΠϯ͕ಡΈऔΕΔ
    &UIFSOFUϔομΛར༻͢Δ͜ͱͰɺ௿ΦʔόʔϔουΛ࣮ݱ


    λάͷ಺༰ͱຒΊࠐΉ৔ॴ
    5$1

    ϔομ
    *1

    ϔομ
    &UIFSOFU

    ϔομ
    *1

    ϔομ
    .1*

    Τϯϕϩʔϓ
    .1*

    ϝοηʔδ
    -
    -
    -
    -
    εΠον಺)8Ͱ

    ॲཧՄೳ

    ஗ԆЖT
    4%/ίϯτϩʔϥ΁

    సૹ͕ඞཁ

    ஗ԆNT
    .1*

    ϝοηʔδ
    .1*

    ϝοηʔδ
    .1*

    ϝοηʔδ
    .1*

    Τϯϕϩʔϓ
    .1*

    Τϯϕϩʔϓ
    .1*

    Τϯϕϩʔϓ
    5$1

    ϔομ
    5$1

    ϔομ
    ѼઌϥϯΫɺίϛϡχέʔλɺ
    ूஂ௨৴ͷछྨ౳
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide



  38. 6OJTPO'MPXܭࢉͱ௨৴ͷ࿈܎ػߏ
    .1*ΞϓϦέʔγϣϯ
    .1*ϥΠϒϥϦ
    Ϣʔβۭؒ
    5$1ϨΠϠ
    *1ϨΠϠ
    &UIFSOFUϨΠϠ
    /*$υϥΠό
    /*$
    Χʔωϧۭؒ
    4%/ίϯτϩʔϥ
    ੍ޚ
    4PDLFU
    λά෇͚

    -,.
    ΧελϜ.1*ϥΠϒϥϦ
    JPDUM
    .1*
    5BH *OTUSVDUJPOT
    " 0VUQVUUPQPSU9
    # 0VUQVUUPQPSU:
    ʜ ʜ
    4%/ίϯτϩʔϥ
    ։ൃͨ͠ιϑτ΢ΣΞ
    .1*ύέοτ
    λά .1*ύέοτ
    .1*ύέοτ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide



  39. .1*ͱ࿈܎ͨ͠૬ޓ݁߹໢ͷ੍ޚͷ֬ೝ
    int main() {

    MPI_Allreduce(…);

    MPI_Alltoall(…);

    }
    .1*@"MMSFEVDF .1*@"MMUPBMM
    0
    5.0*105
    1.0*106
    1.5*106
    2.0*106
    2.5*106
    3.0*106
    0 50 100 150 200 250 300 350 400
    Bandwidth (bps)
    Elapsed Time (s)
    core1 (port1)
    core2 (port41)
    ఏҊख๏ͳ͠
    0
    5.0*105
    1.0*106
    1.5*106
    2.0*106
    2.5*106
    3.0*106
    3.5*106
    4.0*106
    4.5*106
    5.0*106
    0 50 100 150 200 250 300 350 400
    Bandwidth (bps)
    Elapsed Time (s)
    core1 (port1)
    core2 (port41)
    ఏҊख๏͋Γ
    .1*@"MMSFEVDF .1*@"MMUPBMM
    MPI_Alltoall
    MPI_Allreduce
    ࿈܎
    ࢖༻ස౓ɾ૬ޓ݁߹໢΁ͷෛՙߴ
    "MMSFEVDF࣮ߦத͸DPSFͷΈ࢖༻
    "MMUPBMM࣮ߦத͸DPSFͷΈ࢖༻
    DPSFͱ΋ʹ࢖༻
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide

  40. ఏҊख๏ʹΑΓɺର௨৴ʹൃੜ͢ΔΦʔόʔϔουΛධՁ
    ‣ .1*ͷ֤ؔ਺ͷύϑΥʔϚϯεΛଌఆ͢Δ046.JDSP#FODINBSLΛ
    ༻͍ɺϊʔυؒͰͷ.1*@4FOE3FDWͷεϧʔϓοτͱ஗ԆΛܭଌ


    ର௨৴ͷΦʔόʔϔουͷܭଌ
    εϧʔϓοτͷൺֱ ஗Ԇͷൺֱ
    100 101 102 103 104 105 106
    0essage 6i]e [B]
    106
    107
    108
    109
    7hroughSut [bSs]
    w/o 3roSosal
    w/ 3roSosal
    100 101 102 103 104 105 106
    0essage 6L]e [B]
    101
    102
    103
    104
    105
    /atency [µs]
    w/o 3roSosal
    w/ 3roSosal
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide

  41. .1*௨৴ͱܭࢉͷ࿈܎ػߏΛఏҊ
    ‣ ࣮ΞϓϦͰ͸ϓϩηεؒ௨৴ύλʔϯ͸࣌ؒมԽ͢Δ
    ‣ ΞϓϦέʔγϣϯͷ࣮ߦͱɺ૬ޓ݁߹໢಺ͷύέοτϑϩʔͷ੍ޚ
    Λ࿈܎͢ΔػߏΛఏҊ
    ‣ ఏҊ͢Δػߏ͸طଘͷ4%/εΠονͰಈ࡞͠ɺΦʔόʔϔου͕

    খ͍͞


    ষͷ·ͱΊ
    ௨৴ͱܭࢉ͕ύέοτ୯ҐͰ࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩς
    ΫνϟΛཱ֬
    ߩݙ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ

    View Slide

  42. ষ݁࿦

    View Slide



  43. ষͷ·ͱΊ
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    ݁࿦

    View Slide

  44. ෳ਺δϣϒͷฒྻ࣮ߦ΁ͷରԠ
    ‣ ෳ਺ͷδϣϒΛฒྻʹ࣮ߦ͢ΔΫϥελʹରԠ
    ‣ ҟͳΔδϣϒؒͷׯবΛߟྀ͢Δඞཁ͕͋Δ
    ύέοτϑϩʔ੍ޚΞϧΰϦζϜͷ௥Ճͱվྑ
    ‣ "MMSFEVDFҎ֎ͷ.1*ूஂ௨৴ؔ਺Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚ

    ΞϧΰϦζϜΛ։ൃ


    কདྷ՝୊
    ݁࿦

    View Slide



  45. શମߏ੒
    ষ.1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ௨৴ͱܭࢉ͕࿈܎ಈ࡞͢Δ৽ͨͳΫϥελΞʔΩςΫ
    νϟΛཱ֬
    ষ4%/ʹΑΔ.1*ूஂ௨৴ͷߴ଎Խ
    .1*ूஂ௨৴Λߴ଎Խ͢Δύέοτϑϩʔ੍ޚΞϧΰ
    ϦζϜΛ഑උՄೳͳϑϨʔϜϫʔΫΛߏங
    ষ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δύέοτ

    ϑϩʔͷղੳखஈΛ࣮ݱ
    ՝୊૬ޓ݁߹໢಺ͷ
    ύέοτϑϩʔͷղੳ
    ՝୊૬ޓ݁߹໢ͷಈత

    ੍ޚʹΑΔ௨৴ͷߴ଎Խ
    ՝୊ΞϓϦͷ࣮ߦͱ
    ૬ޓ݁߹໢ͷ੍ޚͷ࿈܎
    ΞϓϦέʔγϣϯͷϓϩηεؒ௨৴ύλʔϯΛߟྀͯ͠ύέοτ

    ϑϩʔΛ੍ޚ͢ΔϓϩάϥϚϒϧͳ૬ޓ݁߹໢੍ޚٕज़ͷ࣮ݱ
    ໨త
    ݁࿦

    View Slide