Архив документации OpenNet.ru / Раздел "Программирование, языки" / Индекс
next up previous contents
Next: Реализация библиотеки MPI Up: Примеры Previous: Примеры   Contents

Реализация профилирования

Предположим, что система профилирования подсчитывает общий объем данных, посланных функцией MPI_SEND, и полное время выполнения этой функции. В простейшем случае этого можно достичь так:

static int totalBytes; 
static double totalTime; 
 
int MPI_SEND(void * buffer, const int count,
     MPI_Datatype datatype, int dest, int tag, MPI_comm comm) 
{ 
   double tstart = MPI_Wtime(); /* передача на все аргументы */ 
   int extent; 
   int result    = PMPI_Send(buffer,count,datatype,dest,tag,comm);    
 
   MPI_Type_size(datatype, &extent); /* расчет размера */ 
   totalBytes += count*extent; 
 
   totalTime  += MPI_Wtime() - tstart;  /* и времени */ 
 
   return result;                        
}



Alex Otwagin 2002-12-10

Архив документации на OpenNet.ru