Your SlideShare is downloading. ×
Python speed computation increasing
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Python speed computation increasing

618
views

Published on


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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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 з’яўляецца неэфектыўным. Падзякі ● С.А. Літвіненку (за каштоўныя парады).