Anonymní profil Jiri K. – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jiri K. – Programujte.comAnonymní profil Jiri K. – Programujte.com

 

Příspěvky odeslané z IP adresy 158.196.194.–

Jiri K.
C / C++ › Použití vlastního memory pool
15. 4. 2013   #175046

Jo co mi akorat prijde zvlastni je, ze protoze to spoustim na serveru co ma 20 jader, tak je to celkove celkem pomale a pouziti vice vlaken to dokonce trosku prodluzuje. Tzn. je to proto, ze s tou pameti se neda uz pracovat rychlejc?

Jiri K.
C / C++ › Použití vlastního memory pool
15. 4. 2013   #175045

Dobrý den,

 bylo mi řečeno učitelem, že pokud udělám něco takového:

int _tmain(int argc, _TCHAR* argv[])
{
unsigned int count=0;
omp_set_num_threads(5);
int *inThreadCount = new int[25];
for(int i = 0; i < 25; i++)
  inThreadCount[i] = 0;

#pragma omp parallel for
for(int i = 0; i < 1000000000; i++)
{
  int thNum = omp_get_thread_num();
  if((thNum == 0) && (count % 1000000 == 0))
  {
   std::cout << count << "\r";
  }

  Class *trida = new Class();
  delete trida;

  inThreadCount[thNum] += 1;
  if(inThreadCount[thNum] % 100000 == 0)
  {
   #pragma omp atomic
   count += inThreadCount[thNum];
   inThreadCount[thNum] = 0;
  }
}

getchar();
return 0;
}
class Class
{
private:
double *a;
public:
Class()
{
  a = new double[100000];
  a[0] = 10;
}
~Class()
{
  delete a;
}

};

Tak se prý nebude stačit uvolňovat paměť a program spadne. Tak jsem to tedy zkusil udělat, pro jistotu ve dvou vlaknech aby to bylo rychlejsi... a program nejak spadnout nechce, delam neco spatne? :-)

Jde o to, ze to byl argument proto, proc pouzivat memory pool, tak me to zatim nejak nepresvedcilo :-)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý