Využití více jader procesoru – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Využití více jader procesoru – Python – Fórum – Programujte.comVyužití více jader procesoru – Python – Fórum – Programujte.com

 

Petr Ká
~ Anonymní uživatel
4 příspěvky
18. 6. 2014   #1
-
0
-

Ahoj,

jsem poměrně začátečník v pythonu, ale mám dotaz, napsal jsem si webový crawler a když ho pustím a druhé konzoli si si pustím htop, vidím, že vlákno s python scriptem využívá pouze jedno jádro procesoru.

Lze nějak docílit využití všech jader procesoru?

Běžím na debian 7 wheezy

Děkuji

Nahlásit jako SPAM
IP: 93.181.87.–
KIIV
~ Moderátor
+43
God of flame
18. 6. 2014   #2
-
0
-

thready

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Petr Ká
~ Anonymní uživatel
4 příspěvky
18. 6. 2014   #3
-
0
-

#2 KIIV

Děkuji, to jsem také našel, ovšem nikde jsem nenalezl žádnou dokumentaci, jak tento modul použít.

Nahlásit jako SPAM
IP: 93.181.87.–
KIIV
~ Moderátor
+43
God of flame
18. 6. 2014   #4
-
0
-

vetsinou to funguje tak, ze vytvoris novej thread a predhodis mu fukci, co ma vykonavat paralelne.. jen to pak musis nejak synchronizovat, pokud mas vicero threadu nacitajici joby ze stejneho mista

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hanpari0
Stálý člen
18. 6. 2014   #5
-
0
-

#1 Petr Ká
Linky si přepni pro svou verzi pythonu

Ve skutečnosti myslím, že nehledáš modul threading ale balík multiprocessing:

https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing

anžto:

multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows.

Modul threading ti ve skutečnosti, alespoň v cpythonu nepomůže s tvým problémem, jelikož:

CPython implementation detail: In CPython, due to the Global Interpreter Lock, only one thread can execute Python code at once (even though certain performance-oriented libraries might overcome this limitation). If you want your application to make better use of the computational resources of multi-core machines, you are advised to use multiprocessing. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously.

Nahlásit jako SPAM
IP: 178.72.234.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý