Pthreads: paralelizace cyklu
Premysl Hruby
dfenze na gmail.com
Středa Říjen 21 18:02:00 CEST 2009
On (21/10/09 17:41), Jan Kasprzak wrote:
> Date: Wed, 21 Oct 2009 17:41:44 +0200
> From: Jan Kasprzak <kas na fi.muni.cz>
> To: linux na linux.cz
> Subject: Pthreads: paralelizace cyklu
> User-Agent: Mutt/1.4.2.2i
> List-Id: Diskuse o Linuxu v cestine <linux.linux.cz>
>
> Dobry den,
>
> existuje nejaka rozumna knihovna, ktera by umela pres pthreads (NPTL)
> nejak rozumne paralelizovat for-cyklus? Jakoze mam kod
>
> for (i = 0; i < n; i++)
> do_something_with(i);
>
> n je vetsi nez pocet procesoru, ale ne moc velke (treba do desetinasobku
> poctu procesoru) a do_something_with() je omezene vykonem CPU. No a ja bych
> si predstavoval nejakou knihovnu, ktera si zjisti pocet CPU, a na jednotlivych
> CPU pusti vlakna ve stylu
>
> while (i < n) {
> int j = atomicky_vezmi_dalsi_i(&i);
> do_something_with(j);
> }
>
> Napsat neco takoveho pomoci pthread_mutex_* asi nebude tezke, ale presto
> by mozna pomohlo mit uz neco predpripraveneho. Idealne takoveho, aby kdyz
> o kus dal budu mit podobnou smycku
>
> for (i = 0; i < n; i++)
> do_something_else_with(i);
>
> tak aby se dala paralelizovat pomoci tech stejnych vlaken bez nutnosti
> jejich opetovneho vytvareni.
>
> Existuje neco takoveho? Diky,
>
> -Yenya
>
Zkuste se podivat na OpenMP, takova vec, jak s minimalnim usilim a
zmenami alespon paralelizovat program.
-Ph
--
Premysl "Anydot" Hruby, http://www.redrum.cz/
-
I'm a signature virus. Please add me to your signature and help me spread!
Další informace o konferenci Linux