From cb8e6ab1c3eee099f073f719dc59d45220e5dafa Mon Sep 17 00:00:00 2001 From: Caner Candan Date: Mon, 22 Nov 2010 14:07:47 +0100 Subject: [PATCH] added efficienty computation --- eo/test/boxplot.py | 15 +++++++++------ eo/test/t-openmp.cpp | 27 ++++++++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/eo/test/boxplot.py b/eo/test/boxplot.py index 581fef0c3..2b5141af6 100755 --- a/eo/test/boxplot.py +++ b/eo/test/boxplot.py @@ -1,11 +1,14 @@ #!/usr/bin/env python -from pylab import * +import pylab import sys -DEFAULT_RESULTS_NAME = 'results.txt' - 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() ] ) - #show() - savefig( sys.argv[1] + ".png" ) + if len(sys.argv) < 3: + print 'Usage: boxplot.py [Results files, ...] [output file in .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 ] ) diff --git a/eo/test/t-openmp.cpp b/eo/test/t-openmp.cpp index 89082b8d8..c4b885702 100644 --- a/eo/test/t-openmp.cpp +++ b/eo/test/t-openmp.cpp @@ -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(); - 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(); + 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(); if (seedParam == 0) { seedParam = time(0); } @@ -62,9 +63,18 @@ int main(int ac, char** av) eoUniformGenerator< double > gen(-5, 5); - std::ostringstream ss; - ss << resultsFileName << "-p" << popMin << "-P" << popMax << "-d" << dimMin << "-D" << dimMax << "-r" << nRun << "-t" << threshold << "-s" << seedParam; - std::ofstream resultsFile( ss.str().c_str() ); + std::ostringstream params; + params << "-p" << popMin << "-P" << popMax << "-d" << dimMin << "-D" << dimMax << "-r" << nRun << "-t" << threshold << "-s" << seedParam; + 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 ) { @@ -99,15 +109,18 @@ int main(int ac, char** av) if ( ( Ts / Tp ) > threshold ) { continue; } - resultsFile << Ts / Tp << ' '; + speedupFile << Ts / Tp << ' '; + efficiencyFile << Ts / ( nbtask * Tp ); eo::log << eo::debug; eo::log << "Ts = " << Ts << std::endl; eo::log << "Tp = " << Tp << std::endl; eo::log << "S_p = " << Ts / Tp << std::endl; + eo::log << "E_p = " << Ts / ( nbtask * Tp ) << std::endl; } // end of runs - resultsFile << std::endl; + speedupFile << std::endl; + efficiencyFile << std::endl; } // end of dimension