Шляхі акселерацыі выкананнявылічальнай нагрузкі на Python                   Антон Літвіненка,                   Кіеў, Укра...
Сімвальная матрыца спін-гамільтаніяна для асі z для      комплексу Cu2
“Традыцыйныя” метады             акселерацыі●   Самая крытычная да рэсурсаў частка    функцыянальнасці можа быць напісана ...
Прыклады замены канструкцый●   map(operator.add, l1, l2)    map(lambda x,y: x+y, l1, l2)●   "".join(map(lambda x:"".join(x...
Статычная кампіляцыя праграм             на Python●   Статычная (розныя падмноствы мовы    Python):    ●   Shedskin    ●  ...
JIT-кампіляцыя                                         Unladen SwallowPsyco (модуль             PyPy (асобны              ...
Параўнанне хуткасці выканання з  праграмы Mjöllnir (час выканання           у секундах)    Мадэль              Cu2        ...
Параўнанне хуткасці выканання звыкарыстаннем праграмы Mjöllnir1,2                                             CPython     ...
Асаблівасці праэкту PyPy                Статычны               кампілятар                              PyPyRPython        ...
Высновы●       для праграмы Mjöllnir найбольш эфектыўным        акселератарам выканання на дадзены        момант з’яўляецц...
Upcoming SlideShare
Loading in...5
×

Python speed computation increasing

643

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
643
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python speed computation increasing

  1. 1. Шляхі акселерацыі выкананнявылічальнай нагрузкі на Python Антон Літвіненка, Кіеў, Украіна
  2. 2. Сімвальная матрыца спін-гамільтаніяна для асі z для комплексу Cu2
  3. 3. “Традыцыйныя” метады акселерацыі● Самая крытычная да рэсурсаў частка функцыянальнасці можа быць напісана на кампіляванай мове праграмавання;● Прэкампіляцыя ў байт-код;● Выкарыстанне адных канструкцый мовы замест іншых, аналагічных, але хутчэйшых
  4. 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. 5. Статычная кампіляцыя праграм на Python● Статычная (розныя падмноствы мовы Python): ● Shedskin ● PyPy (падмноства RPython) Дае магчымасць Абмяжоўвае мажлівасці мовы, складана стварыць застасаваць да ўжо вельмі хуткі код гатовых праэктаў
  6. 6. JIT-кампіляцыя Unladen SwallowPsyco (модуль PyPy (асобны (аптымізаваны CPython) інтэрпрэтатар) CPython).Прасты ў выкарыстанні, Хуткі (хутчэйшы сярод адносна хуткі, Прасты ў выкарыстанні іншых), даступны пад сумяшчальны з (увогуле не патрабуе большасць платформ, большасцю іншых праўкі коду) лёгкі ў развіцці модуляў Складаны ў развіцці, Ідэалагічна праблемнае адсутнічае версія для ўзаемадзеянне з Малаэфектыўны 64-бітных платформ бібліятэкамі на C
  7. 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±11.6/CPython 2.6.2 PyPy 1.5 3,2±0,1 21,8±0,6 91±2Unladen Swallow 0,010±0,005 303±4 1280±20 2009Q3
  8. 8. Параўнанне хуткасці выканання звыкарыстаннем праграмы Mjöllnir1,2 CPython Psyco1,0 PyPy Unladen Swallow0,80,60,40,20,0 Cu2 (3,2) Fe2Co (400) Mn4 (1820)
  9. 9. Асаблівасці праэкту PyPy Статычны кампілятар PyPyRPython (Інтэрпрэтатар і JIT-кампілятар)Python (2.7) Выкананне праграмы
  10. 10. Высновы● для праграмы Mjöllnir найбольш эфектыўным акселератарам выканання на дадзены момант з’яўляецца PyPy і, з улікам імклівага развіцця праэкту, верагодным ёсць ягонае выкарыстанне ў будучыні як асноўнага (зараз ужываецца Psyco);● Psyco дае блізкія вынікі;● Unladen Swallow з’яўляецца неэфектыўным. Падзякі ● С.А. Літвіненку (за каштоўныя парады).
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×