added efficienty computation

This commit is contained in:
Caner Candan 2010-11-22 14:07:47 +01:00
commit cb8e6ab1c3
2 changed files with 29 additions and 13 deletions

View file

@ -1,11 +1,14 @@
#!/usr/bin/env python #!/usr/bin/env python
from pylab import * import pylab
import sys import sys
DEFAULT_RESULTS_NAME = 'results.txt'
if __name__ == '__main__': if __name__ == '__main__':
boxplot( [ [ float(value) for value in line.split() ] for line in open( DEFAULT_RESULTS_NAME if len(sys.argv) < 2 else sys.argv[1] ).readlines() ] ) if len(sys.argv) < 3:
#show() print 'Usage: boxplot.py [Results files, ...] [output file in .png]'
savefig( sys.argv[1] + ".png" ) sys.exit()
for i in range(1, len(sys.argv) - 1):
pylab.boxplot( [ [ float(value) for value in line.split() ] for line in open( sys.argv[i] ).readlines() ] )
pylab.savefig( sys.argv[ len(sys.argv) - 1 ] )

View file

@ -39,10 +39,11 @@ int main(int ac, char** av)
unsigned int nRun = parser.getORcreateParam((unsigned int)100, "nRun", "Number of runs", 'r', "Evolution Engine").value(); unsigned int nRun = parser.getORcreateParam((unsigned int)100, "nRun", "Number of runs", 'r', "Evolution Engine").value();
std::string resultsFileName = parser.getORcreateParam(std::string("results.txt"), "resultsFileName", "Results file name", 0, "Evolution Engine").value();
double threshold = parser.getORcreateParam((double)3.0, "threshold", "Threshold of max speedup", 0, "Evolution Engine").value(); double threshold = parser.getORcreateParam((double)3.0, "threshold", "Threshold of max speedup", 0, "Evolution Engine").value();
std::string speedupFileName = parser.getORcreateParam(std::string("speedup"), "speedupFileName", "Speedup file name", 0, "Results").value();
std::string efficiencyFileName = parser.getORcreateParam(std::string("efficiency"), "efficiencyFileName", "Efficiency file name", 0, "Results").value();
uint32_t seedParam = parser.getORcreateParam((uint32_t)0, "seed", "Random number seed", 0).value(); uint32_t seedParam = parser.getORcreateParam((uint32_t)0, "seed", "Random number seed", 0).value();
if (seedParam == 0) { seedParam = time(0); } if (seedParam == 0) { seedParam = time(0); }
@ -62,9 +63,18 @@ int main(int ac, char** av)
eoUniformGenerator< double > gen(-5, 5); eoUniformGenerator< double > gen(-5, 5);
std::ostringstream ss; std::ostringstream params;
ss << resultsFileName << "-p" << popMin << "-P" << popMax << "-d" << dimMin << "-D" << dimMax << "-r" << nRun << "-t" << threshold << "-s" << seedParam; params << "-p" << popMin << "-P" << popMax << "-d" << dimMin << "-D" << dimMax << "-r" << nRun << "-t" << threshold << "-s" << seedParam;
std::ofstream resultsFile( ss.str().c_str() ); std::ofstream speedupFile( std::string( speedupFileName + params.str() ).c_str() );
std::ofstream efficiencyFile( std::string( efficiencyFileName + params.str() ).c_str() );
size_t nbtask = 1;
#pragma omp parallel
{
nbtask = omp_get_num_threads();
}
eo::log << eo::logging << "Nb task: " << nbtask << std::endl;
for ( size_t p = popMin; p <= popMax; p += popStep ) for ( size_t p = popMin; p <= popMax; p += popStep )
{ {
@ -99,15 +109,18 @@ int main(int ac, char** av)
if ( ( Ts / Tp ) > threshold ) { continue; } if ( ( Ts / Tp ) > threshold ) { continue; }
resultsFile << Ts / Tp << ' '; speedupFile << Ts / Tp << ' ';
efficiencyFile << Ts / ( nbtask * Tp );
eo::log << eo::debug; eo::log << eo::debug;
eo::log << "Ts = " << Ts << std::endl; eo::log << "Ts = " << Ts << std::endl;
eo::log << "Tp = " << Tp << std::endl; eo::log << "Tp = " << Tp << std::endl;
eo::log << "S_p = " << Ts / Tp << std::endl; eo::log << "S_p = " << Ts / Tp << std::endl;
eo::log << "E_p = " << Ts / ( nbtask * Tp ) << std::endl;
} // end of runs } // end of runs
resultsFile << std::endl; speedupFile << std::endl;
efficiencyFile << std::endl;
} // end of dimension } // end of dimension