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

Keichi Takahashi

February 04, 2019
Tweet

More Decks by Keichi Takahashi

Other Decks in Science

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
    ૬ޓ݁߹໢ ߴੑೳωοτϫʔΫ

    ܭࢉػ
    ෳ߹త࡞༻
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ૬ޓ݁߹໢಺ͷύέοτϑ
    0
    1
    2 3
    ΞϓϦέʔγϣϯ͕૬ޓ݁߹໢಺ʹੜ੒͢Δ
    ύέοτϑϩʔͷධՁ؀ڥ͕ෆՄܽ

    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
    ܭࢉػ܈
    ૬ޓ݁߹໢

    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
    ࣮ଌ஋ γϛϡϨʔγϣϯ

    ධՁ݁Ռ
    ࠷େޡࠩ
    ૬ޓ݁߹໢಺ύέοτϑϩʔͷղੳπʔϧ
    ૬ޓ݁߹໢
    ܭࢉػ܈
    DPSF DPSF
    FEHF FEHF FEHF FEHF

    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*࣮૷
    ఏҊ
    ߴ଎Խ཰





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

    ͷߴ଎Խ
    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*௨৴ͱܭࢉͷ࿈܎ػߏ

    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. DPSF DPSF
    FEHF FEHF FEHF FEHF

    .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ͷεϧʔϓοτͱ஗ԆΛܭଌ

    ର௨৴ͷΦʔόʔϔουͷܭଌ
    .1*௨৴ͱܭࢉͷ࿈܎ػߏ
    ஗Ԇͷൺֱ
    ஗Ԇ<ЖT>
    &
    &
    &
    &
    &
    ϝοηʔδαΠζ<#>
    & & &
    6OJTPO'MPX͋Γ
    6OJTPO'MPXͳ͠
    εϧʔϓοτͷൺֱ
    εϧʔϓοτ<.#T>
    &
    &
    &
    &
    &
    &
    ϝοηʔδαΠζ<#>
    & & &
    6OJTPO'MPX͋Γ
    6OJTPO'MPXͳ͠

    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

  46. ༧උεϥΠυ

    View Slide

  47. 0QFO'0". ਺஋ྲྀମྗֶιϧό
    ͷϕϯνϚʔΫ݁Ռ
    ‣ ϊʔυͰ͸ɺΞϓϦέʔγϣϯશମͷ͕.1*௨৴ɺͦͷ಺
    ͕.1*@"MMSFEVDFʹඅ΍͞Ε͍ͯΔ
    ‣ "MMSFEVDFΛߴ଎Խ͢Δͱɺ.1*௨৴ΛɺΞϓϦέʔγϣϯ
    શମΛߴ଎Խ

    .1*@"MMSFEVDFͷ࢖༻ྫ
    )1$"EWJTPSZ$PVODJM 0QFO'0".1FSGPSNBODF#FODINBSLBOE1SPpMJOH +VMZΑΓൈਮ

    View Slide

  48. ‣ Defined as a matrix T of which element
    Tij is equal to the volume of traffic sent
    from rank i to rank j
    ‣ Implies that the volume of traffic
    between processes as constant during
    the execution of a job

    Representation of Communication Pattern
    0 50 100
    Sender Rank
    0
    25
    50
    75
    100
    125
    Receiver Rank
    0.0
    0.2
    0.4
    0.6
    0.8
    1.0
    Sent Bytes
    £108
    An example obtained from running
    the NERSC MILC benchmark with 128
    processes
    The communication pattern of an application is represented using its
    traffic matrix

    View Slide


  49. 1'4JN"SDIJUFDUVSF
    Event Event
    Event Queue
    j1
    j2
    j3
    j4
    Job Submitted
    Event Handlers

    Job Started
    Job Finished
    Job Queue
    Simulator State
    Update
    Interconnect
    Computing Nodes
    Event
    Dispatch
    Customized via Plugins

    View Slide