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

Distributed Processing in Python

Distributed Processing in Python

chie8842

July 14, 2019
Tweet

More Decks by chie8842

Other Decks in Technology

Transcript

  1. Understanding distributed
    processing in Python
    Chie Hayashida

    View Slide

  2. $IJF)BZBTIJEB !DIJF)
    • 4PGUXBSF&OHJOFFSBU$PPLQBE GSPN+BQBO!
    • EFWFMPQBOEDPOUSJCVUFUPTPNF044 XSJUFBSUJDMFT BOENBLF
    QSFTFOUBUJPOT
    • 8POGJSTUQSJ[FBUSF*OWFOU (BNF%BZ
    • XPOUI QSJ[F 5PQ
    BU1FUGJOEFS
    ,BHHMFDPNQFUJUJPOJOXFFLDIBMMFOHF
    $IJF)BZBTIJEB !DIJF
    • 4PGUXBSF&OHJOFFSBU$PPLQBE GSPN+BQBO!
    • EFWFMPQBOEDPOUSJCVUFUPTPNF044 XSJUFBSUJDMFT BOENBLF
    QSFTFOUBUJPOT
    • 8POGJSTUQSJ[FBUSF*OWFOU (BNF%BZ"
    • XPOUI QSJ[F 5PQ
    BU1FUGJOEFS
    ,BHHMFDPNQFUJUJPOJOXFFLDIBMMFOHF

    View Slide

  3. $PPLQBE ‒ worldʼs largest recipe sharing platform
    Try cooking
    with it

    View Slide

  4. $PPLQBE JTHMPCBMTFSWJDF
    Bristol
    Office

    View Slide

  5. "HFOEB
    •CBTJDLOPXMFEHFPGQBSBMMFMEJTUSJCVUFE
    QSPDFTTJOH
    •QBSBMMFMQSPDFTTJOHJO1ZUIPO
    •EJTUSJCVUFEQSPDFTTJOHJO1ZUIPO

    View Slide

  6. %JTDMBJNFS
    • 8IBUEP*UBML
    • CBTJDBSDIJUFDUVSFPGQBSBMMFMEJTUSJCVUFE
    QSPDFTTJOH DPNQVUJOH
    MJCSBSJFTJO1ZUIPO
    • 8IBUEP*OPU UBML
    • IPXUPJOTUBMMBOETFUVQFBDIMJCSBSJFT
    • VTBHFTPGEFUBJMFE"1*TPGXIBUXFJOUSPEVDF

    View Slide

  7. )PXEPXFEFDJEFXIFUIFSUPVTF
    QBSBMMFMEJTUSJCVUFEQSPDFTTJOH
    FH
    •8IFOXFVTFMBSHFEBUB XIJDIDBOOPU
    IBOEMFJOPOFQSPDFTTPSPOFNBDIJOF
    •8IFOXFSVOPVSQSPHSBNTXJUIMBSHF
    EBUB JOTIPSUFSUJNF

    View Slide

  8. 28IJDIJTMBSHFEBUB
    100MB 10GB 1TB

    View Slide

  9. *U`TDBTFCZDBTF
    •5IFXPSEMBSHFJTSFMBUJWF
    •$VSSFOUMZ 1BOEBTXPSLTFGGJDJFOUMZXJUI
    d(#EBUBXJUIVTVBMNBDIJOFT

    View Slide

  10. TDBMFVQTPMWFTMBDLPGSFTPVSDFT UPP
    #VUʜ
    • 8FTPNFUJNFTCFOPU BCMFUPVTFGVMMPGNBDIJOF
    SFTPVSDFTXJUIPOFQSPDFTT
    • 5IFSFTPVSDFTUIBUDBOCFNPVOUFEPOPOFNBDIJOFBSF
    MJNJUFE

    View Slide

  11. 4PMFU`TMFBSOQBSBMMFM
    QSPDFTTJOHBOEEJTUSJCVUFE
    QSPDFTTJOHUPQSPDFTTMBSHF
    EBUBFGGJDJFOUMZ

    View Slide

  12. 28IBUJT UIFEJGGFSFODFPGCFMPX
    •1BSBMMFMQSPDFTTJOH
    •%JTUSJCVUFEQSPDFTTJOH

    View Slide

  13. l1BSBMMFMQSPDFTTJOHzBOEl%JTUSJCVUFEQSPDFTTJOHz
    • 1BSBMMFMQSPDFTTJOH
    1SPDFTTPS T

    .FNPSZ
    1SPDFTTPS T

    .FNPSZ
    1SPDFTTPS T

    .FNPSZ
    1SPDFTTPS 1SPDFTTPS 1SPDFTTPS
    .FNPSZ
    • %JTUSJCVUFEQSPDFTTJOH
    /8
    /8
    /8
    QSPDFTTPSTIBSFTNFNPSZ*OQBSBMMFMQSPDFTTJOH
    POUIFPUIFSIBOEQSPDFTTPSTIBTPXONFNPSJFTJOEJTUSJCVUFEQSPDFTTJOH

    View Slide

  14. -JCSBSJFTUPEBZ*JOUSPEVDF
    • QBSBMMFMQSPDFTTJOH
    • UISFBEJOH
    • NVMUJQSPDFTTJOH
    • KPCMJC
    • EJTUSJCVUFEQSPDFTTJOH
    • DFMFSZ
    • EBTL
    • 1Z4QBSL

    View Slide

  15. -JCSBSJFTUPEBZ*JOUSPEVDF
    • QBSBMMFMQSPDFTTJOH
    • UISFBEJOH
    • NVMUJQSPDFTTJOH
    • KPCMJC
    • EJTUSJCVUFEQSPDFTTJOH
    • DFMFSZ
    • EBTL
    • 1Z4QBSL

    View Slide

  16. UISFBEJOHBOENVMUJQSPDFTTJOH
    •1ZUIPOIBTPGGJDJBMNPEVMFTGPSQBSBMMFMQSPDFTTJOH
    • l#BUUFSZJODMVEFEz
    •8FDBOQBSBMMFMJ[FPVSQSPHSBNXJUIPVUBOZUIJSE
    QBSUZMJCSBSJFT

    View Slide

  17. UISFBEJOH
    • UISFBEJOHNPEVMFEJWJEFTPOFQSPDFTTJOUPNVMUJQMF
    UISFBET
    .BJO5ISFBE
    5ISFBE
    5ISFBE
    1SPDFTT

    View Slide

  18. UISFBEJOH
    • (*- (MPCBM *OUFSQSFUFS-PDL
    MJNJUTPOMZPOFUISFBEDBOCF
    JOBTUBUFPGFYFDVUJPOBUBOZQPJOUJOUJNFJO$1ZUIPO
    1SPDFTT
    5ISFBE
    5ISFBE
    5ISFBE
    SVO BXBJU
    BXBJU SVO
    BXBJU SVO
    SVO
    SVO
    BXBJU
    BXBJU SVO
    "DRVJSF-PDL

    View Slide

  19. 8IZ(*-
    • 5ISFBETJOQSPDFTTVTFTTBNFNFNPSZTQBDF
    • (*-XBTDIPTFOUPQSPUFDUUIFJOUFSOBMNFNPSZVTFECZ
    UIFJOUFSQSFUFS
    • 1&1QSPQPTFTTVCJOUFSQSFUFS UPPCTDVSF(*-
    QSPDFTT
    UISFBE UISFBE
    .FNPSZ4QBDF

    View Slide

  20. *OXIBUTJUVBUJPOTJTUISFBEJOH
    FGGFDUJWF
    • 5BTLTXIJDIJT*0 CPVOETVDIBT
    • SFBEXSJUFGJMFT
    • %#DPOOFDUJPO
    • %PXOMPBEEBUBGSPN/8
    1SPDFTT
    5ISFBE
    5ISFBE
    5ISFBE
    SVO BXBJU
    BXBJU SVO
    BXBJU SVO
    SVO
    SVO
    BXBJU
    BXBJU SVO
    "DRVJSF-PDL

    View Slide

  21. *OXIBUTJUVBUJPOTJTUISFBEJOH
    FGGFDUJWF
    • 5BTLTXIJDIJT*0 CPVOETVDIBT
    • SFBEXSJUFGJMFT
    • %#DPOOFDUJPO
    • %PXOMPBEEBUBGSPN/8
    1SPDFTT
    5ISFBE
    5ISFBE
    5ISFBE
    SVO BXBJU
    BXBJU SVO
    BXBJU SVO
    SVO
    SVO
    *0
    BXBJU SVO
    "DRVJSF
    -PDL
    *0
    *0
    *0
    VTF$16 EPOPUVTF$16

    View Slide

  22. NVMUJQSPDFTTJOH
    •NVMUJQSPDFTTJOHTQBXOTQSPDFTTFTGPS
    QBSBMMFMJ[BUJPO
    •QBSBMMFMJ[FJOCPUIMPDBMBOESFNPUF
    .BJO1SPDFTT
    $IJME1SPDFTT
    $IJME1SPDFTT

    View Slide

  23. NVMUJQSPDFTTJOH
    • FBDIQSPDFTTFTIBTJUTPXONFNPSZTQBDF
    • /PUBGGFDUFECZ(*-
    • -FTTMJLFMZUPDBVTFFSSPSTEVFUPEBUBDPSSVQUJPOPS
    EFBEMPDL .BJO1SPDFTT
    $IJME1SPDFTT
    $IJME1SPDFTT
    PTGPSL

    .FNPSZ4QBDF
    .FNPSZ4QBDF $PQZ

    .FNPSZ4QBDF $PQZ

    View Slide

  24. *OXIBUTJUVBUJPOTJTNVMUJQSPDFTTJOH
    FGGFDUJWF
    • 5BTLTXIJDIJT$16CPVOETVDIBT
    • /VNFSJDBMDBMDVSBUJPO
    • 3FHVMBSFYQSFTTJPOQSPDFTTJOH
    • #VUUIFQFSGPSNBODFJO1ZUIPO`TNVMUJQSPDFTTJOHEPFTO`U
    JODSFBTFMJOFBSMZ

    View Slide

  25. NVMUJQSPDFTTJOH
    • 5IFSFJTPWFSIFBEEVFUPDPNNVOJDBUJPO
    CFUXFFOQBSFOUQSPDFTTBOEDIJMEQSPDFTT
    .BJO1SPDFTT
    $IJME1SPDFTT
    $IJME1SPDFTT
    PTGPSL

    .FNPSZ4QBDF
    .FNPSZ4QBDF $PQZ

    .FNPSZ4QBDF $PQZ

    View Slide

  26. NVMUJQSPDFTTJOH
    •UIFNBYJNVNOVNCFSPGUBTLTXIJDIDBOCF
    SVOTJNVMUBOFPVTMZJTSFTUSJDUFEUP$16
    OVNCFS
    5BTL
    5BTL
    5BTL
    5BTL
    5BTL
    5BTL
    $16
    $16

    View Slide

  27. +PCMJC
    • UIJSEQBSUZMJCSBSZGPSQBSBMMFMQSPDFTTJOHJO1ZUIPO
    • +PCMJC DBOVTF UISFBEJOHPSNVMUJQSPDFTTJOHGPSCBDLFOE
    • MB[ZFWBMVBUJPOVTJOHUSBOTQBSFOUEJTLDBDIJOHPGUIF
    PVUQVU
    • FBTZBOETJNQMFDPEJOH
    • MPHHJOHBOEUSBDJOHPGUIFFYFDVUJPO
    https://joblib.readthedocs.io/

    View Slide

  28. 4VNNBSZVQUPIFSF
    • 1ZUIPOIBTPGGJDJBMNPEVMFTGPSQBSBMMFMQSPDFTTJOH
    • UISFBEJOHJTFGGFDUJWFUP*0CPVOEQSPDFTTJOH
    • NVMUJQSPDFTTJOHJTFGGFDUJWFUP$16CPVOEQSPDFTTJOH
    • CPUIPGUXPBSFNBJOMZGPSPOMZGPSQSPDFTTFTSVOBUPOMZ
    POFNBDIJOF
    • 8FDBOVTFUISFBEJOHBOENVMUJQSPDFTTJOHGVODUJPOTXJUI
    KPCMJC NPSFTJNQMZ
    • TPNFPGEBUBMJCSBSJFTUSBOTQBSFOUMZVTFUIFTFQBSBMMFM
    QSPDFTTJOHMJCSBSJFT

    View Slide

  29. -JCSBSJFTUPEBZ*JOUSPEVDF
    • QBSBMMFMQSPDFTTJOH
    • UISFBEJOH
    • NVMUJQSPDFTTJOH
    • KPCMJC
    • EJTUSJCVUFEQSPDFTTJOH
    • DFMFSZ
    • %BTL
    • 1Z4QBSL

    View Slide

  30. %JTUSJCVUFEQSPDFTTJOHJO1ZUIPO
    • 8IFOXFVTFMBSHFEBUBXIJDIDPVMEO`UQSPDFTTJOPOF
    NBDIJOF XFIBWFUPDPOTJEFSBCPVUEJTUSJCVUFE
    QSPDFTTJOH
    • QSPQFSUJFTXIJDITIPVMECFJODMVEFEJOEJTUSJCVUFE
    GSBNFXPSL
    • "VUPNBUJDSFDPWFSZ GSPNFSSPS
    • 5BTLEJWJTJPO KPCTDIFEVMJOH
    • 5PPMTGPS.POJUPSJOH %FCVHHBCJMJUZ

    View Slide

  31. $FMFSZ
    •EJTUSJCVUFEUBTLRVFVFCVJMUJO1ZUIPO
    •TJNQMFBOEGMFYJCMFBSDIJUFDUVSF
    • &WFSZQBSUTDBOCFFYUFOE
    • IFBWJMZVTFEGPSUBTLCBTFEXPSLMPBETJO
    1ZUIPO
    • XJUI%KBOHP
    • "JSGMPXCBDLFOE

    View Slide

  32. $FMFSZ"SDIJUFDUVSF
    $MJFOU
    CSPLFS
    3BCCJU.2 3FEJT
    424 FUD

    2VFVF
    2VFVF
    2VFVF
    8PSLFS $POTVNFS

    8PSLFS $POTVNFS

    #BDLFOE
    3FTVMUT
    3FEJT FUD

    8PSLFS $POTVNFS

    8PSLFS $POTVNFS

    View Slide

  33. *OXIBUTJUVBUJPOTJTDFMFSZFGGFDUJWF
    • 8IFOUIFUBTLJTTJNQMFCVUUIFBNPVOUPGEBUBJTUPP
    NVDIGPSPOFNBDIJOF
    • 8IFOZPVXBOUUPVTFJUXJUIBOPUIFSGSBNFXPSLTVDIBT
    %KBOHP

    View Slide

  34. %BTL
    • EJTUSJCVUFEQSPDFTTJOHGSBNFXPSLCVJMUJO1ZUIPO
    • CFBCMFUPVTF/VN1Z1BOEBT-JTUTMJLFQBSBMMFM
    PCKFDUT EBTLBSSBZ EBTLEBUBGSBNF EBTLCBH BOE"1*T
    • 4DIFEVMFSJTDVTUPNJ[BCMFUPHFUHPPEQFSGPSNBODFGPS
    CPUIGPSQBSBMMFMQSPDFTTJOHPOMPDBMNBDIJOFBOEGPS
    EJTUSJCVUFEQSPDFTTJOHPODMVTUFS
    • )BTHPPE8FC*OUFSGBDFGPSSFBMUJNFKPCNPOJUPSJOH

    View Slide

  35. %BTL TDIFEVMFS
    http://docs.dask.org/en/latest/scheduling.html

    View Slide

  36. %BTL 8FC*OUFSGBDF

    View Slide

  37. *OXIBUTJUVBUJPOTJT%BTL FGGFDUJWF
    • 8IFOXFXBOUUPQBSBMMFMJ[F/VN1ZPSQBOEBTQSPDFTTJOH
    • 8IFOUIFEBUBTJ[FGJUTPOFUP NBDIJOFT

    View Slide

  38. 1Z4QBSL
    • CVJMEJO+BWBBOEIBT1ZUIPO*OUFSGBDF
    • DBOCFNPSFTDBMFPVUUIBODFMFSZBOE%BTL
    • 0SJHJOBMMZCVJMUUPSVOPOB)BEPPQDMVTUFS
    • GBTUBOEDPTUFGGJDJFOUQSPDFTTJOH
    • )BTHPPE8FC*OUFSGBDFGPSSFBMUJNFKPCNPOJUPSJOH
    • FBTZUPXSJUFDPNQSFY QSPHSBNXJUISJDIPQFSBUPST
    • NVMUJGVODUJPOBM
    • TUSFBN "1*
    • NBDIJOFMFBSOJOH"1*
    • DBOCFVTFJONBOBHFNFOUTFSWJDFJODMPVETFSWJDF

    View Slide

  39. 1Z4QBSL
    • CVJMEJO+BWBBOEIBT1ZUIPO*OUFSGBDF
    only with partial API

    View Slide

  40. 1Z4QBSL
    • DBOCFNPSFTDBMFPVUUIBODFMFSZBOE%BTL
    node
    number
    1 4-5 thousands

    View Slide

  41. *OXIBUTJUVBUJPOTJT1Z4QBSL FGGFDUJWF
    • 8IFOXFXBOUUPSVODPNQMFYUBTLTXJUIBMBSHFBNPVOU
    PGEBUB
    • 8IFOXFIBWF)BEPPQDMVTUFS

    View Slide

  42. 0WFSIFBEPGQBSBMMFMEJTUSJCVUFE
    QSPDFTTJOH
    •TFSJBMJ[FEFTFSJBMJ[F
    •UBTLTDIFEVMJOH
    •EBUBUSBOTGFS

    View Slide

  43. "NEBIM`TMBX
    • .BYJNVNFYQFDUFEJNQSPWFNFOUPGQBSBMMFMDPNQVUJOHJT
    MJNJUFECZUIFUJNFOFFEFEGPSUIFTFRVFOUJBMGSBDUJPOPG
    UIFQSPHSBN

    View Slide

  44. *U`TOPUBTJMWFSCVMMFU

    View Slide

  45. $PODMVTJPO
    • 8FDBOVTFNBDIJOFSFTPVSDFTFGGJDJFOUMZBOETQFFEVQ
    PVSQSPHSBNXJUIQBSBMMFMEJTUSJCVUFEQSPDFTTJOH
    • 5IFSFBSFTFWFSBMQBSBMMFMQSPDFTTJOHMJCSBSJFTBWBJMBCMFJO
    1ZUIPO
    • *SFDPNNFOE
    • KPCMJC GPSHFOFSBMVTBHFPGQBSBMMFMJ[N JOPOFNBDIJOF
    • %BTL GPSQBSBMMFMJ[FQBOEBT%BUB'SBNF QSPHSBN
    • 1Z4QBSL GPSIVHFEBUBXIJDIDBOOPUIBOEMFJOPOFNBDIJOF

    View Slide

  46. %PObUCFBGSBJEUPVTF
    QBSBMMFMEJTUSJCVUFEQSPDFTTJOHNPSF

    View Slide

  47. 2VFTUJPO

    View Slide

  48. 28IBUJT UIFEJGGFSFODFPGCFMPX
    •$PODVSSFOUQSPDFTTJOH
    •1BSBMMFMQSPDFTTJOH

    View Slide

  49. l$PODVSSFOUQSPDFTTJOHzBOE l1BSBMMFM1SPDFTTJOHz
    $PODVSSFODZJTBCPVU EFBMJOHXJUI MPUTPG
    UIJOHTBUPODF
    1BSBMMFMJTNJTBCPVU EPJOH MPUTPGUIJOHTBUPODF
    3PC1JLFIUUQTUBMLTHPMBOHPSHXB[BTMJEF

    View Slide

  50. 8IFOBOEIPXTIPVMEXF
    VTFQBSBMMFMEJTUSJCVUFE
    BSDIJUFDUVSFJO1ZUIPO

    View Slide

  51. l$PODVSSFOUQSPDFTTJOHzBOE l1BSBMMFM1SPDFTTJOHz
    )FSFJT$PODVSSFOU
    )FSFJTQBSBMMFMBOEBMTPDPODVSSFOU

    View Slide

  52. $PODVSSFOUBOEQBSBMMFMQSPHSBNTDIFNF
    •$PODVSSFOUQSPHSBNTDIFNF
    $PODVSSFOU
    1SPHSBN
    1SPDFTT
    1SPDFTT
    TDIFEVMFS $16
    1SPDFTT
    2VFVF
    1BSBMMFM
    1SPHSBN
    1SPDFTT
    1SPDFTT
    $16
    $16
    •1BSBMMFMQSPHSBNTDIFNF

    View Slide

  53. %JTUSJCVUFEQSPDFTTJOHJO1ZUIPO
    *JOUSPEVDFUISFFGBNPVTMJCSBSJFTGPS
    EJTUSJCVUFEQSPDFTTJOHJO1ZUIPO
    •$FMFSZ
    •%BTL
    •1Z4QBSL

    View Slide

  54. MPI
    • It is a low-level API and faster than other libraries, but it is
    difficult to use MPI to create software that can be used at
    the production level
    • MPI is a low level API. MPI can calcrate faster than Python
    Libraries with proper integration
    • MPI doesnʼt have rich partition-tolerance functions like
    PySpark or other libraries

    • PyTorch and ChainerMN use it internally for Distributed
    DeepLearning

    View Slide

  55. DPVMEO`UJOUSPEVDF
    • BTZODJP
    • DPODVSSFOUGVUVSF
    • "OPUIFSUIJSEQBSUZMJCSBSJFT

    View Slide