mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
28bdc90908
6000 matmuls CG unprec 2000 matmuls CG prec (4000 eo muls) 1050 matmuls PGCR on 16^3 x 32 x 8 m=.01 Substantial effort on timing and logging infrastructure
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
#include <Grid.h>
|
|
|
|
namespace Grid {
|
|
|
|
GridStopWatch GridLogger::StopWatch;
|
|
std::ostream GridLogger::devnull(0);
|
|
|
|
GridLogger GridLogError (1,"Error");
|
|
GridLogger GridLogWarning (1,"Warning");
|
|
GridLogger GridLogMessage (1,"Message");
|
|
GridLogger GridLogDebug (1,"Debug");
|
|
GridLogger GridLogPerformance(1,"Performance");
|
|
GridLogger GridLogIterative (1,"Iterative");
|
|
|
|
void GridLogConfigure(std::vector<std::string> &logstreams)
|
|
{
|
|
GridLogError.Active(0);
|
|
GridLogWarning.Active(0);
|
|
GridLogMessage.Active(0);
|
|
GridLogIterative.Active(0);
|
|
GridLogDebug.Active(0);
|
|
GridLogPerformance.Active(0);
|
|
|
|
for(int i=0;i<logstreams.size();i++){
|
|
if ( logstreams[i]== std::string("Error") ) GridLogError.Active(1);
|
|
if ( logstreams[i]== std::string("Warning") ) GridLogWarning.Active(1);
|
|
if ( logstreams[i]== std::string("Message") ) GridLogMessage.Active(1);
|
|
if ( logstreams[i]== std::string("Iterative") ) GridLogIterative.Active(1);
|
|
if ( logstreams[i]== std::string("Debug") ) GridLogDebug.Active(1);
|
|
if ( logstreams[i]== std::string("Performance") ) GridLogPerformance.Active(1);
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// Verbose limiter on MPI tasks
|
|
////////////////////////////////////////////////////////////
|
|
void Grid_quiesce_nodes(void)
|
|
{
|
|
#ifdef GRID_COMMS_MPI
|
|
int me;
|
|
MPI_Comm_rank(MPI_COMM_WORLD,&me);
|
|
if ( me ) {
|
|
std::cout<<GridLogMessage.setstate(std::ios::badbit);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void Grid_unquiesce_nodes(void)
|
|
{
|
|
#ifdef GRID_COMMS_MPI
|
|
std::cout<<GridLogMessage.clear();
|
|
#endif
|
|
}
|
|
|
|
std::ostream& operator<< (std::ostream& stream, const GridTime& time)
|
|
{
|
|
stream << time.count()<<" ms";
|
|
return stream;
|
|
}
|
|
|
|
}
|
|
|