SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
Шляхі акселерацыі выканання
вылічальнай нагрузкі на Python

                   Антон Літвіненка,
                   Кіеў, Украіна
Сімвальная матрыца спін-
гамільтаніяна для асі z для
      комплексу Cu2
“Традыцыйныя” метады
             акселерацыі
●   Самая крытычная да рэсурсаў частка
    функцыянальнасці можа быць напісана
    на кампіляванай мове праграмавання;
●   Прэкампіляцыя ў байт-код;
●   Выкарыстанне адных канструкцый
    мовы замест іншых, аналагічных, але
    хутчэйшых
Прыклады замены канструкцый
●   map(operator.add, l1, l2)

    map(lambda x,y: x+y, l1, l2)

●   "".join(map(lambda x:"".join(x),a))

    for i in range(n):
      for j in range(n):
        collect_str+=a[i][j]

          http://www.xakep.ru/magazine/xa/123/102/1.asp
Статычная кампіляцыя праграм
             на Python
●   Статычная (розныя падмноствы мовы
    Python):
    ●   Shedskin
    ●   PyPy (падмноства RPython)


    Дае магчымасць       Абмяжоўвае мажлівасці
                             мовы, складана
       стварыць           застасаваць да ўжо
    вельмі хуткі код        гатовых праэктаў
JIT-кампіляцыя
                                         Unladen Swallow
Psyco (модуль             PyPy (асобны
                                          (аптымізаваны
  CPython)                інтэрпрэтатар)
                                             CPython).

Прасты ў выкарыстанні,
                          Хуткі (хутчэйшы сярод
    адносна хуткі,                                 Прасты ў выкарыстанні
                          іншых), даступны пад
    сумяшчальны з                                   (увогуле не патрабуе
                          большасць платформ,
  большасцю іншых                                       праўкі коду)
                              лёгкі ў развіцці
       модуляў




 Складаны ў развіцці,     Ідэалагічна праблемнае
 адсутнічае версія для        ўзаемадзеянне з        Малаэфектыўны
  64-бітных платформ          бібліятэкамі на C
Параўнанне хуткасці выканання з
  праграмы Mjöllnir (час выканання
           у секундах)
    Мадэль              Cu2          Fe2Co      Mn4

  Базісныя               4            432       625
   функцыі
 CPython 2.6.2      0,0075±0,0002    400±7     1820±20

      Psyco         0,0304±0,0002   30,5±0,3    134±1
1.6/CPython 2.6.2
     PyPy 1.5          3,2±0,1      21,8±0,6    91±2

Unladen Swallow      0,010±0,005     303±4     1280±20
    2009Q3
Параўнанне хуткасці выканання з
выкарыстаннем праграмы Mjöllnir
1,2
                                             CPython
                                             Psyco
1,0                                          PyPy
                                             Unladen Swallow

0,8



0,6



0,4



0,2



0,0
      Cu2 (3,2)   Fe2Co (400)   Mn4 (1820)
Асаблівасці праэкту PyPy
                Статычны
               кампілятар

                              PyPy
RPython                (Інтэрпрэтатар і
                        JIT-кампілятар)




Python (2.7)                     Выкананне
                                 праграмы
Высновы
●       для праграмы Mjöllnir найбольш эфектыўным
        акселератарам выканання на дадзены
        момант з’яўляецца PyPy і, з улікам імклівага
        развіцця праэкту, верагодным ёсць ягонае
        выкарыстанне ў будучыні як асноўнага
        (зараз ужываецца Psyco);
●       Psyco дае блізкія вынікі;
●       Unladen Swallow з’яўляецца неэфектыўным.

                       Падзякі
    ●   С.А. Літвіненку (за каштоўныя парады).

Contenu connexe

Plus de Транслируем.бел

Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Транслируем.бел
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайнТранслируем.бел
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийТранслируем.бел
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхТранслируем.бел
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в FacebookТранслируем.бел
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьТранслируем.бел
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоТранслируем.бел
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеТранслируем.бел
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектовТранслируем.бел
 

Plus de Транслируем.бел (20)

Медицинские трансляции
Медицинские трансляцииМедицинские трансляции
Медицинские трансляции
 
Vinteo
VinteoVinteo
Vinteo
 
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайн
 
Unofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeksUnofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeks
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решений
 
Sennheiser ew100 g2
Sennheiser ew100 g2Sennheiser ew100 g2
Sennheiser ew100 g2
 
Sony mcs 8m
Sony mcs 8mSony mcs 8m
Sony mcs 8m
 
Сравнение поколений Y и Z
Сравнение поколений Y и ZСравнение поколений Y и Z
Сравнение поколений Y и Z
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетях
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в Facebook
 
The ultimate guide to facebook live for your event
The ultimate guide to facebook live for your eventThe ultimate guide to facebook live for your event
The ultimate guide to facebook live for your event
 
Guide to facebook live
Guide to facebook liveGuide to facebook live
Guide to facebook live
 
Comdi player
Comdi playerComdi player
Comdi player
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений Кравченко
 
Marketing Essentials for Startup Teams
Marketing Essentials for Startup TeamsMarketing Essentials for Startup Teams
Marketing Essentials for Startup Teams
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектов
 
Belarus internet users discovery
Belarus internet users discoveryBelarus internet users discovery
Belarus internet users discovery
 

Python speed computation increasing

  • 1. Шляхі акселерацыі выканання вылічальнай нагрузкі на Python Антон Літвіненка, Кіеў, Украіна
  • 2. Сімвальная матрыца спін- гамільтаніяна для асі z для комплексу Cu2
  • 3. “Традыцыйныя” метады акселерацыі ● Самая крытычная да рэсурсаў частка функцыянальнасці можа быць напісана на кампіляванай мове праграмавання; ● Прэкампіляцыя ў байт-код; ● Выкарыстанне адных канструкцый мовы замест іншых, аналагічных, але хутчэйшых
  • 4. Прыклады замены канструкцый ● map(operator.add, l1, l2) map(lambda x,y: x+y, l1, l2) ● "".join(map(lambda x:"".join(x),a)) for i in range(n): for j in range(n): collect_str+=a[i][j] http://www.xakep.ru/magazine/xa/123/102/1.asp
  • 5. Статычная кампіляцыя праграм на Python ● Статычная (розныя падмноствы мовы Python): ● Shedskin ● PyPy (падмноства RPython) Дае магчымасць Абмяжоўвае мажлівасці мовы, складана стварыць застасаваць да ўжо вельмі хуткі код гатовых праэктаў
  • 6. JIT-кампіляцыя Unladen Swallow Psyco (модуль PyPy (асобны (аптымізаваны CPython) інтэрпрэтатар) CPython). Прасты ў выкарыстанні, Хуткі (хутчэйшы сярод адносна хуткі, Прасты ў выкарыстанні іншых), даступны пад сумяшчальны з (увогуле не патрабуе большасць платформ, большасцю іншых праўкі коду) лёгкі ў развіцці модуляў Складаны ў развіцці, Ідэалагічна праблемнае адсутнічае версія для ўзаемадзеянне з Малаэфектыўны 64-бітных платформ бібліятэкамі на C
  • 7. Параўнанне хуткасці выканання з праграмы Mjöllnir (час выканання у секундах) Мадэль Cu2 Fe2Co Mn4 Базісныя 4 432 625 функцыі CPython 2.6.2 0,0075±0,0002 400±7 1820±20 Psyco 0,0304±0,0002 30,5±0,3 134±1 1.6/CPython 2.6.2 PyPy 1.5 3,2±0,1 21,8±0,6 91±2 Unladen Swallow 0,010±0,005 303±4 1280±20 2009Q3
  • 8. Параўнанне хуткасці выканання з выкарыстаннем праграмы Mjöllnir 1,2 CPython Psyco 1,0 PyPy Unladen Swallow 0,8 0,6 0,4 0,2 0,0 Cu2 (3,2) Fe2Co (400) Mn4 (1820)
  • 9. Асаблівасці праэкту PyPy Статычны кампілятар PyPy RPython (Інтэрпрэтатар і JIT-кампілятар) Python (2.7) Выкананне праграмы
  • 10. Высновы ● для праграмы Mjöllnir найбольш эфектыўным акселератарам выканання на дадзены момант з’яўляецца PyPy і, з улікам імклівага развіцця праэкту, верагодным ёсць ягонае выкарыстанне ў будучыні як асноўнага (зараз ужываецца Psyco); ● Psyco дае блізкія вынікі; ● Unladen Swallow з’яўляецца неэфектыўным. Падзякі ● С.А. Літвіненку (за каштоўныя парады).