Python speed computation increasing
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Python speed computation increasing

on

  • 834 views

 

Statistics

Views

Total Views
834
Views on SlideShare
834
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Python speed computation increasing Presentation Transcript

  • 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 SwallowPsyco (модуль 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±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. Параўнанне хуткасці выканання звыкарыстаннем праграмы Mjöllnir1,2 CPython Psyco1,0 PyPy Unladen Swallow0,80,60,40,20,0 Cu2 (3,2) Fe2Co (400) Mn4 (1820)
  • 9. Асаблівасці праэкту PyPy Статычны кампілятар PyPyRPython (Інтэрпрэтатар і JIT-кампілятар)Python (2.7) Выкананне праграмы
  • 10. Высновы● для праграмы Mjöllnir найбольш эфектыўным акселератарам выканання на дадзены момант з’яўляецца PyPy і, з улікам імклівага развіцця праэкту, верагодным ёсць ягонае выкарыстанне ў будучыні як асноўнага (зараз ужываецца Psyco);● Psyco дае блізкія вынікі;● Unladen Swallow з’яўляецца неэфектыўным. Падзякі ● С.А. Літвіненку (за каштоўныя парады).