Vlákna - ako funguje parallel_for

Programovacie jazyky, rady, poradňa...
pitbullko
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 294
Registrovaný: 13 nov 2009, 8:19
Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]

Vlákna - ako funguje parallel_for

Príspevok od používateľa pitbullko »

Ahojte,
nevedel by niekto z vas nahodou popisat cinnost funkcie parallel_for. Resp., ako prebieha paralelne spracovanie s pouzitim tejto funkcie. Pouzita je vo Visual Studiu 2010 v C++. Akym sposobom funguje vytvaranie vlakien, kedze vzdy vytazi na 100 % vsetky dostupne jadra procesoru.
Kusok kodu programu, ktory nasobi dve stvorcove matice. Program je spraveny pre paralelne spracovanie.

Kód: Vybrať všetko

void parallel_matrix_multiply(double** m1, double** m2, double** result, size_t size)
{
   parallel_for (size_t(0), size, [&](size_t i)
   {
      for (size_t j = 0; j < size; j++)
      {
         double temp = 0;
         for (int k = 0; k < size; k++)
         {
            temp += m1[i][k] * m2[k][j];
         }
         result[i][j] = temp;
      }
   });
}
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: Vlákna - ako funguje parallel_for

Príspevok od používateľa javatar »

nuz ako citam tak ked robis s paralel_for-om tak sa nestaras o vytvaranie a synchronizaciu vlakien

no a ci to vzdy vytazi vsetky jadra zavisi od poctu jadier a poctu vlakien
Napísať odpoveď