multitreading and multitasking

Ak potrebujete pomoc alebo poradiť, píšte sem (len PC, elektronika atď.)...
franta86
Light Expert
Light Expert
Príspevky: 42
Registrovaný: 11 aug 2009, 12:13

multitreading and multitasking

Príspevok od používateľa franta86 »

upravene 19.17 4.6.2010
mal by som vseobecnejsiu otazku
ako sa chova viacvlaknova plikacia na jedno a viacjadrovom procesore?
skusal som ju spustit na jednom procesore (cez chameleon task manager som nastavil afinitu procesu na CPU 0) na dvoch (CPU 0, 2) a potom na vsetkých procesoroch (CPU 0,1,2,3) a nepostrehol som ziadnu zmenu
ako je to mozne?
mam intel i3 procesor - dvojjadrovy ale stvorvlaknovy a win7 64 bit - teda podporuje multithreading aj multitasking

pri vytvorení procesu tomuto je priradený jeden cas na jednom procesore aj pri viacerých procesoroch? potom ak z tohto procesu odclením niekolko vlakien tieto dostanu taktiez cas no tom jednom procesore? a teda nieje mozne aby niektore z vlakien bolo vykonavane na druhom procesore? teda ci mam alebo nemam viacjadrovy procesor stale dana aplikacia bude bezat na jednom procesore?

preco sa mi nikdy nepodary aby moja aplikacia vyuzívala viac ako 50% procesora?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: multitreading and multitasking

Príspevok od používateľa chrono »

Multitasking a multithreading môžeš využívať na akomkoľvek procesore (samozrejme tie, ktoré majú podporu na prepínanie procesov budú pri prepínaní rýchlejšie, ale softvérové prepínanie sa dá urobiť na akomkoľvek procesore).

Vlákna môžu bežať na rôznych jadrách/procesoroch, ale záleží to od toho, čo presne robia, či to má zmysel (ak napr. spracúvajú rovnaké dáta, tak bude problém s cache).

Inak aplikácia môže spúšťať všetky vlákna na jednom jadre/procesore v prípade, že si autor myslí, že to tak bude lepšie (takže ak chceš niečo také skúšať, musíš to testovať na aplikácii, ktorá sa snaží využívať všetky jadrá/procesory).
franta86
Light Expert
Light Expert
Príspevky: 42
Registrovaný: 11 aug 2009, 12:13

Re: multitreading and multitasking

Príspevok od používateľa franta86 »

povedzme ze som pri tvorbe danej aplikacie neuvazoval nad tymto problemom. tato oplikacia je defaultne od operacne systemu nastavena na to aby vyuzivala len jedno jadro procesora?

ako nastavym aby dana apliakcia vyuzivala aj viac jadier (viac procesorov) sucastne?

mam vlakna ktore robia to iste ale kazde inym sposobom (samoyrejme na duplicitne vytvorenom pole dat) a vysledkom je porovnanie danych metod.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: multitreading and multitasking

Príspevok od používateľa chrono »

Operačný systém by ich mal dávať na rôzne jadrá.
franta86
Light Expert
Light Expert
Príspevky: 42
Registrovaný: 11 aug 2009, 12:13

Re: multitreading and multitasking

Príspevok od používateľa franta86 »

aj ked nastavim tu affinitu ze iba napr CPU 0 bude mi tie vlakna davat na viacero procesorov?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: multitreading and multitasking

Príspevok od používateľa chrono »

Vtedy nie, ale samotný procesor affinitu nijako neovplyvňuje, takže štandardne by sa malo používať viac jadier.
franta86
Light Expert
Light Expert
Príspevky: 42
Registrovaný: 11 aug 2009, 12:13

Re: multitreading and multitasking

Príspevok od používateľa franta86 »

preco teda ak nastavim jeden ci vsetky procesory aplikacia sa nespomali ani nezrychli?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: multitreading and multitasking

Príspevok od používateľa chrono »

Ak je to tvoj program, tak pravdepodobne robíš niečo zle.
Napísať odpoveď