Pthreads: paralelizace cyklu
Jan Kasprzak
kas na fi.muni.cz
Středa Říjen 21 17:41:44 CEST 2009
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
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Journal: http://www.fi.muni.cz/~kas/blog/ |
Please don't top post and in particular don't attach entire digests to your
mail or we'll all soon be using bittorrent to read the list. --Alan Cox
Další informace o konferenci Linux