Multithreading iliti višedretvenost

poruka: 12
|
čitano: 5.359
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Multithreading iliti višedretvenost

Dakle da ne ulazim previše u svoj konkretni problem, recimo da imam neku for petlju u kojoj zbrajam dva po dva različita objekta. Da li se sam kompajler/OS pobrine za to da se to može paralelno izvoditi ili bi ja trebao dodati eksplicitno da se napravi novi thread i zatvori poslije zbrajanja u for petlju???

 

Malo sam zbunjen po tom pitanju... radim u Qt-ovskom c++

 
0 0 hvala 0
14 godina
neaktivan
offline
Multithreading iliti višedretvenost

Ne kompajler to neće uraditi umjesto tebe već ti trebaš kreirati zasebni Thread.

U .net-u je to puno bolje rješeno pa tako imaš parallel.for, klasu Task, ili parallel linq...

Moj PC  
3 0 hvala 1
15 godina
offline
Multithreading iliti višedretvenost

Tako je... i onda svakom threadu das npr da obradi svoj dio slike ili sto vec i na kraju spojis rezultate i to je to. 

 

Pogledaj malo npr tu

Idemo kod Petre Sanader na party... nema joj staroga doma!
 
0 0 hvala 1
16 godina
offline
RE: Multithreading iliti višedretvenost

Ako koristis C++, probaj baciti i oko na ovo, mozda ti pomogne...

http://www.threadingbuildingblocks.org/

 

Think locally, act globally...
16 godina
neaktivan
offline
Multithreading iliti višedretvenost

Jup, ručno ću morati. Što je i logično u biti, nego sam preletio neki tekst pa sam krivo skužio. Kao da je prednost c++ što nema implementiran multithreading jer se onda implementira po specifičnosti OS-a, pa sam ja naivno pomislio da se to samo napravi.{#}

 

Uglavnom, sva sreća pa Qt ima svoju implementaciju.

 
0 0 hvala 0
14 godina
neaktivan
offline
RE: Multithreading iliti višedretvenost

Postoji nesto sto se zove OpenMP, i s time, u teoriji, mozes pisati portabilan multithreaded kôd. Kako to radi u praksi nemam pojma. Nisam nikad koristio. Ako ikada budem imao potrebu za portabilnim kôdom takve vrste, ozbiljno cu razmisliti o tome.

 

[SPAM]

dretve {#}

Svi smo mi programeri višedretvenih računalnih primjena. Divote Hrvatskog jezika :)

[/SPAM]

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
Poruka je uređivana zadnji put čet 13.1.2011 2:28 (rustweaver).
15 godina
offline
RE: Multithreading iliti višedretvenost
majkell kaže...

Jup, ručno ću morati. Što je i logično u biti, nego sam preletio neki tekst pa sam krivo skužio. Kao da je prednost c++ što nema implementiran multithreading jer se onda implementira po specifičnosti OS-a, pa sam ja naivno pomislio da se to samo napravi.{#}

 

Uglavnom, sva sreća pa Qt ima svoju implementaciju.

Kako C++ nema multitreading? Mislim da sam ja iz Alogritama na faksu za ispit morao radit analizu nekakve fotke (histogram) putem multithreadinga na n broju procesorskih jezgri? Davno je to bilo, ne sjecam se tocno ali sam siguran da smo to kolega i ja u C++u radili.

Idemo kod Petre Sanader na party... nema joj staroga doma!
16 godina
protjeran
offline
Multithreading iliti višedretvenost

Netko je spomenuo OpenMP.

Dakle u kod ubacuje određene paragme ...

#pragma omp parallel

#pragma omp for

 

malo detaljnije na http://msdn.microsoft.com/en-us/magazine/cc163717.aspx

 

Programko http://programko.bloger.hr
 
1 0 hvala 2
16 godina
neaktivan
offline
RE: Multithreading iliti višedretvenost
tnakir kaže...
majkell kaže...

Jup, ručno ću morati. Što je i logično u biti, nego sam preletio neki tekst pa sam krivo skužio. Kao da je prednost c++ što nema implementiran multithreading jer se onda implementira po specifičnosti OS-a, pa sam ja naivno pomislio da se to samo napravi.{#}

 

Uglavnom, sva sreća pa Qt ima svoju implementaciju.

Kako C++ nema multitreading? Mislim da sam ja iz Alogritama na faksu za ispit morao radit analizu nekakve fotke (histogram) putem multithreadinga na n broju procesorskih jezgri? Davno je to bilo, ne sjecam se tocno ali sam siguran da smo to kolega i ja u C++u radili.

Je. Radio sam i ja neke osnove na faksu iz operacijskih sustava, isto u c++. Uglavnom, može se raditi multithreading u c++, samo nije implementiran u sam jezik, to jest razlikuje se u unixoidima (pthread.h) i windowsima (windows.h).

14 godina
neaktivan
offline
Multithreading iliti višedretvenost
Sjećam se da sam jednom eksperimentirao sa višenitnim kodom, nije bio neki bauk osim praćenja što će se kada alocirat i dealocirat :(
I'm from Hollywood
 
0 0 hvala 0
13 godina
neaktivan
offline
RE: Multithreading iliti višedretvenost
majkell kaže...
tnakir kaže...
majkell kaže...

Jup, ručno ću morati. Što je i logično u biti, nego sam preletio neki tekst pa sam krivo skužio. Kao da je prednost c++ što nema implementiran multithreading jer se onda implementira po specifičnosti OS-a, pa sam ja naivno pomislio da se to samo napravi.{#}

 

Uglavnom, sva sreća pa Qt ima svoju implementaciju.

Kako C++ nema multitreading? Mislim da sam ja iz Alogritama na faksu za ispit morao radit analizu nekakve fotke (histogram) putem multithreadinga na n broju procesorskih jezgri? Davno je to bilo, ne sjecam se tocno ali sam siguran da smo to kolega i ja u C++u radili.

Je. Radio sam i ja neke osnove na faksu iz operacijskih sustava, isto u c++. Uglavnom, može se raditi multithreading u c++, samo nije implementiran u sam jezik, to jest razlikuje se u unixoidima (pthread.h) i windowsima (windows.h).

Samo oprez pri implementaciji. U tvom slučaju sumiraš dva po dva objekta pa se ne smije dogoditi da u isto vrijeme dvije ili više dretvi pristupaju objektu koji sadrži sumu. Taj dio treba ići u kritičnu sekciju dretve.

15 godina
neaktivan
offline
Multithreading iliti višedretvenost

Ako ti treba za paralelno racunanje necega, pogledaj MPI.

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice