Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iskoristivost threadinga

[es] :: Art of Programming :: Iskoristivost threadinga

Strane: 1 2

[ Pregleda: 4667 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Iskoristivost threadinga01.08.2006. u 16:00 - pre 215 meseci
Imam dosta podataka za obraditi, kako mi ta obrada treba u trenu podijelio bih posao na nekoliko threadova.

Zanima me dali se isplati ukljuciti vise threadova u takav posao, primjerice 10, ako govorimo o jedno-jezgrenim racunalima, a kakva bi bila razlika ako bi se odvijalo na dvo-jezgrenom racunalu.
Odnosno zanima me dali se tu uopce postize ikakva paralelnost i dobitak na brzini ili je to vise prividno.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 16:04 - pre 215 meseci
Ako imas manje jezgara od niti, neces dobiti na brzini. Paralelnost je prividna.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Iskoristivost threadinga01.08.2006. u 16:09 - pre 215 meseci
Onda danas multithreading na osobnim racunalima nema puno svrhe...
A sto je sa Hyper Threading racunalima? Jeli na njima ima ikakvih poboljsanja performansi?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 16:14 - pre 215 meseci
Multithreading ima svrhe, ali primena nije za ubrzanje alpikacija vec za.. uh, razne stvari.. mozda je bolje da procitas neki clanak o tome jer bih trebao prilicno da pisem :)
Na HTT P4 procesorima bi mozda mogao da postignes bolje performanse ali mislim da ce to zavisiti od toga sta program radi.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Iskoristivost threadinga01.08.2006. u 17:09 - pre 215 meseci
Podjelu posla, realne simulacije, lakse programiranje event based aplikacija... jasno mi sve to vise manje, ali opet se svodi na skracivanje vremena potrebnog za obradu nekog posla.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 17:21 - pre 215 meseci
Mislim da pogresno gledate na stvar. Poenta threadinga u home-computing-u nije da se ubrza neki process, vec uglavnom da se poveca responsivness aplikacije koja barata sa dugotrajnim sinhronim procesima. Ukratko, trenutno je praksa da svrha zivota sekundarnih threadova bude da su blokirani umesto glavnog thread-a.

Vecina kucnih (personalnih) kompjutera nema dual-core/chip, i za takve masine gornja primena threadova je jedina smislena primena. Deliti neki pod-process na N sekundarnih threadova nema smisla ako ne postoji N potpuno nezavisnih execution pipe-ova. Takve aplikacije se u ovom trenutku rade iskljucivo za multi-core/chip servere koji mogu da iskoriste taj pristup. Sam program zahteva odredjene kompromise u dizajnu i kodu kako bi se osiguralo da tih N threadova sto manje blokiraju jedan drugog uz obavezan eksplicitni processor affinity.

Narafski, pustiti takvu aplikaciju na single-core/chip masini ce rezultovati sporijim izvrsenjem procesa (ako uopste i krene da radi) nego da je sve linearno odradio jedan sekundarni thread, ako ni zbog cega drugog, onda zbog overhead-a koji pravi context switching. Proci ce jos neko vreme dok dual-core ne postane kucni standard pa ce se tek tada poceti pojavljivati prave MT aplikacije za kucnu primenu. Za sada su prvi nagovestaji u high-end kucnoj primeni (citaj kod strastvenih gamer-a ), gde se vec najavljuju prve igrice koje ce moci da iskoriste dual-core processing.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 19:02 - pre 215 meseci
Ima prednosti u korišćenju multithreading-a...
Evo primer sa dual-core 3GHz CPU (poređenje za isti posao, samo broj threadova je različit):

Samo jedan thread
vreme: 3.840829 s
vreme: 3.850101 s
vreme: 3.854960 s

6 radnih threadova + menadžer + glavni thread
vreme: 1.961273 s
vreme: 1.937290 s
vreme: 1.981021 s

12 radnih threadova + menadžer + glavni thread
vreme: 1.943986 s
vreme: 1.965481 s
vreme: 1.939631 s

U ovoj aplikaciji optimalno je imati 12 radnih threadova iako je samo dual-core u pitanju. Kada se povećava broj radnih threadova performanse postaju lošije. Npr. 16 radnih threadova ima slične performanse kao i 6.

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 20:08 - pre 215 meseci
Pa tu je suština u "dual core", zar ne?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 20:19 - pre 215 meseci
Da, ali zasto na DualCore 12 niti radi brze od 6, logicno bi bilo da samo do 2 niti daju bolje performanse, ostalo samo stvara overhead?

Pretpostavljam da uspevaju da ukradu malo vise CPU vremena od ostalih aplikacija...
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.dynamic.sbb.co.yu.

ICQ: 44582291


+58 Profil

icon Re: Iskoristivost threadinga01.08.2006. u 20:28 - pre 215 meseci
bkaradzic, da li si probao da podesis veci prioritet za threadove? Npr probaj jedan thread sa vecim prioritetom vs. dva threada sa normalnim.

Zdrava logika kaze da pod pretpostavkom da je jedan CPU i svi threadovi imaju isti prioritet onda 1 thread je brzi od n threadova (n>1) jer CPU ne trosi vreme na prebacivanje izmedju threadova.

Takodje ja imam jedno prakticno pitanje, pretpostavka da se radi rekurzivna pretraga *hard diskova, da li je bolje:
1. jedan thread da pretrazi sve hardove po principu kad zavrsi prvi prelazi na sledeci
2. svaki hard disk dobija svoj thread koji radi paralelno sa ostalima

Pod uslovom da su svi ostali parametri isti u obe operacije, sta ce se pre izvrsiti?

*mislim na fizicke hard diskove a ne na particije u okviru jednog koje sistem vidi kao razlicite uredjaje
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.beotel.net.



Profil

icon Re: Iskoristivost threadinga01.08.2006. u 21:23 - pre 215 meseci
Sve zavisi od primene. Ako se upotrebljava u IO operacijama (koje su ionako spore) slobodno kreiraj onoliko threadova koliko ti treba. U primeru sa pretrazivanjem diska slobodno kreiraj N threadova (gde je N broj diskova koje pretrazujes).

Preveliki broj threadova moze da "ugusi" OS pa da perfomance budu losije od ocekivanih. Zamislite primer web servera koji bi za svakog klijenta odvajao po jedan thread. Ne postoji OS koji moze da se izbori sa 2000 aktivnih threadova u istom trenutku. OS ce potrositi mnogo CPU vremena na menadzment threadova. Zato se koristi thread-pool, tj. iskoriscavanje threadova dok nista ne rade. Princip je jednostavan... kreira se obicno 2*broj_jezgara threadova i svi su uspavani. Onda u pool ubacujes poslove i jedan po jedan thread se budi i pocinje izvrsavanje posla. Na ovaj nacin se najbolje iskoriscava vise hiper-jezgara ili pravih jezgara. Moguce je kreirati jos nekoliko threadova koji ce uskociti da rade ako uleti neki posao viseg prioriteta, a svi workeri su trenutno zauzeti. Najprostiji thread pool ne garantuje redosled izvrsavanja poslova!

Ja sam u mom programu imao potrebu za paralelizacijom izracunavanja, ali imao sam dva problema. Prvi je da neki poslovi treba da se izvrsavaju po redu kojim pristizu u pool, a drugi nemoraju da se izvrsavaju po redu. Malo dodatne logike u threadpoolu mi je omogucilo da koristim isti pool za obe vrste posla. Performanse su odlicne a brzina obrade se skalira sa brojem procesora u sistemu. (probano na 1, 2 i 4 CPU-a)

U svakom slucaju.. preveliki broj threadova ne valja, premali ne iskoriscava hw koliko moze. Treba balansirati.

 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Iskoristivost threadinga02.08.2006. u 07:52 - pre 215 meseci
Imam osjecaj da je multithreading danas nekako obskurna tema, a toliko stvari bi se moglo poboljsati s njim.
Jednostavno me fascinira tako jednostavni oblik ubrzanja - podjelom posla.

Citat:
mmix: Mislim da pogresno gledate na stvar.
Nema stvarno smisla da mi parsirate, vrlo vjerojatno je velika razlika u nasim godinama. :)

Hvala svima na informacijama, ako ima tko sto dodati, slobodno.
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 01:34 - pre 215 meseci
Nije obskurna tema - vec program treba izkodirat sa najvecom mogucom efikasnoscu threadinga. A to nekad zahtjeva dosta dodatnog vremena, pa se pisci manjih programa okrecu klasicnom jednonitnom programiranju. Medjutim - radi se na tom polju dosta. Intelov HT standard nije tu da napravi grandiozan pomak u procesiranju threadova, svi znamo da je to hardverska implementacija emulacije paralelnosti. HT osigurava programerima lakse odrzavanje multithreaded koda, i tjera programere da kodiraju visenitnost kako treba.



Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Iskoristivost threadinga03.08.2006. u 07:24 - pre 215 meseci
Dok se ne pojavi vise vise-jezgrenih racunala u siroj zajednici ovo ce biti obskurna tema jer vecina programera neci ni imati potrebu da koristi threadove.
Citat:
z@re: Intelov HT standard nije tu da napravi grandiozan pomak u procesiranju threadova, svi znamo da je to hardverska implementacija emulacije paralelnosti. HT osigurava programerima lakse odrzavanje multithreaded koda, i tjera programere da kodiraju visenitnost kako treba.
Mozete pojasniti ako imate vremena.
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
*.hsd1.ca.comcast.net.

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 07:35 - pre 215 meseci
Citat:
Dok se ne pojavi vise vise-jezgrenih racunala u siroj zajednici ovo ce biti obskurna tema jer vecina programera neci ni imati potrebu da koristi threadove.

Pa to se već dešava. Uskoro neće biti procesora sa jednim jezgrom za personalne računare u prodaji.

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 12:41 - pre 215 meseci
Za server-side višeprocesorski računari su odavno realnost. Od 2000-te pa naovamo uvek sam morao da uzmem u obzir "thread-safety", jer se kod koji pravim tipično koristi na višenitnim serverskim aplikacijama. Program koji sad razvijam "trči" na 8-procesorskom serveru.
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 14:01 - pre 215 meseci
Igre ce ponajvise zakocit razvoj dual-corea. Klasicne jednonitne aplikacije.

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.dsl.pipex.com.



+4 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 14:34 - pre 215 meseci
Naprotiv, sve novije igre se rade sa threadingom na umu, obavezno.
Svi komercijalni engine-i koji vrede neshto danas su ili potpuno napisani od nule sa podrshkom za threading ili dodaju tu podrshku postepeno. I to je uslovljeno koncepcijom modernog hardvera (chitaj: PS3, Xbox360).
Recimo, Black&White 2 je multi-threaded (pathfinder je, izmedju ostalog, u posebnom threadu), igre koje radi Creative Assembly takodje, i verovatno mnoge druge vec objavljene (ovih sam mogao da se setim u trenutku)
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Iskoristivost threadinga03.08.2006. u 17:59 - pre 215 meseci
Citat:
z@re: Igre ce ponajvise zakocit razvoj dual-corea. Klasicne jednonitne aplikacije.

LOL!!! :)
U ovoj poruci http://www.elitesecurity.org/p1232987 test je vršen na multithreading sistemu pisanom isključivo za igru. BTW, isti sistem radi na Win32 (bez obzira na broj jezgra), PS3 (8 asimetričnih jezgra, 1 PowerPC + 7 SPU), X360 (3 simetrična jezgra, 3 PowerPC).

Pročitaj ovaj tekst:
http://www.gotw.ca/publications/concurrency-ddj.htm

Ima još interesatnih linkova u ovoj temi:
http://www.elitesecurity.org/t90742-0#583502

 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
*.cmu.carnet.hr.

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon C++ threading agonija27.12.2006. u 18:01 - pre 210 meseci
Nakon mitinga:

http://www.artima.com/cppsource/threads_meeting.html

slijede sočni komentari:

http://enfranchisedmind.com/blog/archive/2006/10/21/163

i rješenje:

http://radio.weblogs.com/01039...manProgramming/2006/12/25.html

Kako je konkurentnost riješena u superiornim jezicima:

http://research.microsoft.com/~simonpj/tmp/beautiful.ps
 
Odgovor na temu

[es] :: Art of Programming :: Iskoristivost threadinga

Strane: 1 2

[ Pregleda: 4667 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.