Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: multiprocessoring python  (Přečteno 2965 krát)

kisto

  • Návštěvník
  • Příspěvků: 58
multiprocessoring python
« kdy: 22 Srpna 2011, 23:59:13 »
Ahojte,
ma niekto skusenosti s paralelnymi vypoctami v pythone?

YaD

  • Návštěvník
  • Příspěvků: 69
Re: multiprocessoring python
« Odpověď #1 kdy: 24 Srpna 2011, 10:09:11 »
Ku príkladu ja mám, ale bolo by lepšie keby si prešiel k veci :). (toto nie je chat - nič v zlom)

kisto

  • Návštěvník
  • Příspěvků: 58
Re: multiprocessoring python
« Odpověď #2 kdy: 24 Srpna 2011, 13:40:34 »
Sorry, ja by som potreboval nejake rady ako zacat pretoze chcem napriklad pouzit modul PP (parallelpython) ale nieje k tomu skoro ziadna dokumentacia a iba par prikladov, tak sa teda pytam aky modul pouzivas, a co odporucas na zaciatky JEDNODUCHYCH paralelnych vypoctov v pythone.

Kedrigern

Re: multiprocessoring python
« Odpověď #3 kdy: 24 Srpna 2011, 13:49:31 »
Sorry, ja by som potreboval nejake rady ako zacat pretoze chcem napriklad pouzit modul PP (parallelpython) ale nieje k tomu skoro ziadna dokumentacia a iba par prikladov, tak sa teda pytam aky modul pouzivas, a co odporucas na zaciatky JEDNODUCHYCH paralelnych vypoctov v pythone.
Python nedělám, ale dobré by bylo uvést, co vše si zkoušel. Např. je v cs i kniha o Pythonu 3 (dostupná na rootu), tam nic není? Nic jsem nenašel, může znamenat, že to řešíš měsíc a opravdu nic není, ale i to, že to sem píšeš hned po prvních třech odkazech Googlu (v lepším případě).

kisto

  • Návštěvník
  • Příspěvků: 58
Re: multiprocessoring python
« Odpověď #4 kdy: 24 Srpna 2011, 14:02:35 »
Tieto finty skusaj na niekoho mladsieho :) uz len cakam mudre odkazy na google+python... nepisem ze som nic nenasiel, ale ze modul ma malo dokumentacie... dufam ze nevznikla jazykova bariera, ale asi si neporozumel tomu co som napisal

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: multiprocessoring python
« Odpověď #5 kdy: 24 Srpna 2011, 22:37:24 »
A vcem je problem si krome api dokumentace precist zdrojak?
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re: multiprocessoring python
« Odpověď #6 kdy: 25 Srpna 2011, 09:41:15 »
Tieto finty skusaj na niekoho mladsieho :) uz len cakam mudre odkazy na google+python... nepisem ze som nic nenasiel, ale ze modul ma malo dokumentacie... dufam ze nevznikla jazykova bariera, ale asi si neporozumel tomu co som napisal

Tady se zkouší finty nezávisle na věku. Kolegové ale zřejmě očekávali konkrétní úlohu, co potřebuješ vyřešit.
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

YaD

  • Návštěvník
  • Příspěvků: 69
Re: multiprocessoring python
« Odpověď #7 kdy: 25 Srpna 2011, 10:20:58 »
Jemný úvod:
pokiaľ chceš dáta zdieľať v rámci aplikácie "skrz naskrz", tak je lepšie použiť vlákna (a zámky) namiesto procesov.

Procesy sú dobré asi ako na webe WebWorkers, hodiť im robotu, nechať ich rátať, potom si poslať späť hotovú prácu. Výhody? Na unix-like systémoch štartujú rýchlo ako draci, dokážeš ich zapnúť viac naraz: http://docs.python.org/library/multiprocessing.html#module-multiprocessing.pool
Problémy s procesmi spočívajú v zdieľaní dát, keďže na to treba myslieť už počas návrhu. Pri vláknach len vytvoríš nový zámok a s tým budeš pracovať (môžeš tak zabrať menej pamäte v RAM), lepšie zapisovať dáta vďaka zámkom, v prípade procesov to ide podobne ako u vlákien, ale znovu treba na to myslieť pri návrhu...

Jemný úvod... no viem, že kniha od Marka Summerfielda Python 3 sa tým zaoberá, ale s vláknami, avšak len nutné základy, takže toľko.

kisto

  • Návštěvník
  • Příspěvků: 58
Re: multiprocessoring python
« Odpověď #8 kdy: 27 Srpna 2011, 19:02:50 »
Ja som pozeral o tom nieco a na roote je ktomu zaujimava diskusia
http://www.root.cz/clanky/python-skriptovani-ve-vice-vlaknech/nazory/260602/vlakno/

YaD

  • Návštěvník
  • Příspěvků: 69
Re: multiprocessoring python
« Odpověď #9 kdy: 28 Srpna 2011, 17:00:38 »
Ukážkový príklad, ak je vyžadovaný výpočet, ktorý musí byť čo najrýchlejší... - výkon.

Program ráta prieniky vektorov bodov ležiacich na dvoch priamkach, ktoré sú osovo súmerné.

Na začiatok ukážka procedurálna (existovala aj staršia verzia, ale bola objektová a veľmi pomalá):
Kód: [Vybrat]
yad@yad-notebook:uzly$ time python3 uzly_new.py 30 30
92205

real 0m6.836s
user 0m6.740s
sys 0m0.080s

Program s vláknami je pomalší, keďže sa nerozhodí cez viac jadier, keďže vlákna sú na výpočetné operácie nanič (na diskusii v roote to spomínajú):
Kód: [Vybrat]
yad@yad-notebook:uzly$ time python3 uzly_threading.py -t 2 30 30
92205

real 0m9.896s
user 0m10.270s
sys 0m2.130s

Procesy si doslova začnú dobýjať procesor a tlačia ako šialené, ale nie dlho...:
Kód: [Vybrat]
yad@yad-notebook:uzly$ time python3 uzly_multiprocessing.py -p 2 30 30
92205

real 0m3.335s
user 0m6.150s
sys 0m0.150s

Realita v podobe C++ dorazila (bez vlákien, bez procesov):
Kód: [Vybrat]
yad@yad-notebook:uzly$ time ./uzly 50 50
712837

real 0m2.126s
user 0m2.090s
sys 0m0.020s

Toľko k výkonnostnej stránke. Ako píšem, záleží čo chceš robiť, ak viac vecí naraz a výkon nie je priorita: vlákna, ak výkon tak procesy. Len nabudúce sa jasne vyjadri, čo chceš, keďže takto pôsobí môj príspevok značne nanič, keďže hovorí viac o implementácií ako o povahe.

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re: multiprocessoring python
« Odpověď #10 kdy: 29 Srpna 2011, 15:23:25 »
Zajímavý článek Python Performance tady: http://kurt.seifried.org/2010/05/31/python-performance-part-1/,
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

 

Provoz zaštiťuje spolek OpenAlt.