Forum » Programiranje » OpenMP
OpenMP
scarymovie ::
Pozdravljeni, imam vprašanje, ki se nanša na paralelno programiranje (OpenMP) in sicer, moram dobiti stavke iz teksta ter jih vstaviti v 3 funkcije, katere se morajo izvesti vzporedno. Zadevo sem sicer naredil tako:
for (...) { ... // dobim stavek iz besedila #pragma omp parallel { funkicja1(stavek) funkcija2(stavek) funkcija3(stavek) } }Zdaj me pa zanima če je to pravilni pristop, ker se mi funkcije izvedeje večkrat kot je načrtovano. Ali bi moral pred vsako funkcijo preveriti nit (if (id_nit==0,1...))?
bigbada ::
@scarymovie a ti je ze kaj uspelo? Zanima me, če moraš te #pragma dodat sam pred funkcije al pred for zanke tud? Če ti je kaj uspelo bi prosil za kaki hint al pa delcek kode :)
c0dehunter ::
Tukaj je nekaj kvalitetne obrazložitve. Vendar še vedno dobivam slabše rezultate kot pri računanju brez paralelizacije, kljub temu da sem preizkusil že več pristopov.
Pri parallel direktivi pazi, saj le-ta pomeni da se vse znotraj bloka izvede večkrat (kolikor imaš niti).
Če prav razumem, je tukaj treba delati z sections/section in dodatkom nowait - torej da se niti med sabo ne čakajo. Trenutno imam tako
a je še vseeno slabše kot brez paralelizacije - če bo kdo dobil kake boljše rezultate, se priporočam(o) ;)
Pri parallel direktivi pazi, saj le-ta pomeni da se vse znotraj bloka izvede večkrat (kolikor imaš niti).
Če prav razumem, je tukaj treba delati z sections/section in dodatkom nowait - torej da se niti med sabo ne čakajo. Trenutno imam tako
#pragma omp sections nowait { #pragma omp section result+=longest_word(line); #pragma omp section result+=number_of_vowels(line); #pragma omp section result+=number_of_blanks(line); }
a je še vseeno slabše kot brez paralelizacije - če bo kdo dobil kake boljše rezultate, se priporočam(o) ;)
I do not agree with what you have to say,
but I'll defend to the death your right to say it.
but I'll defend to the death your right to say it.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C++ IDE on WindowsOddelek: Programiranje | 7484 (6576) | noraguta |
» | [C++] OpenMP težaveOddelek: Programiranje | 822 (694) | Rokm |
» | [C++] izris v [x,y]Oddelek: Programiranje | 1153 (855) | DuleKrtola |
» | [C++]Kako narediti screenshot?Oddelek: Programiranje | 1507 (1078) | *ziga* |
» | openGL v visual c++ 6.0Oddelek: Programiranje | 1929 (1656) | Lord_Rand |