added efficienty computation
This commit is contained in:
parent
eb9937ee0c
commit
cb8e6ab1c3
2 changed files with 29 additions and 13 deletions
|
|
@ -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 ] )
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue