added a apply.h variant for parallel execution
This commit is contained in:
parent
ad1ec3669d
commit
ebaf81ae8d
4 changed files with 113 additions and 2 deletions
61
eo/test/t-openmp.cpp
Normal file
61
eo/test/t-openmp.cpp
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// t-openmp.cpp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include <utils/eoLogger.h>
|
||||
#include <utils/eoParserLogger.h>
|
||||
|
||||
#include <eo>
|
||||
#include <es/make_real.h>
|
||||
|
||||
#include <apply.h>
|
||||
#include <omp_apply.h>
|
||||
|
||||
#include <omp.h>
|
||||
|
||||
#include "real_value.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
typedef eoReal< eoMinimizingFitness > EOT;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
int main(int ac, char** av)
|
||||
{
|
||||
eoParserLogger parser(ac, av);
|
||||
eoState state;
|
||||
|
||||
eoRealInitBounded<EOT>& init = make_genotype( parser, state, EOT() );
|
||||
eoPop< EOT >& pop = make_pop( parser, state, init );
|
||||
eoEvalFuncPtr< EOT, double, const std::vector< double >& > mainEval( real_value );
|
||||
eoEvalFuncCounter<EOT> eval( mainEval );
|
||||
|
||||
if (parser.userNeedsHelp())
|
||||
{
|
||||
parser.printHelp(std::cout);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
make_help(parser);
|
||||
make_verbose(parser);
|
||||
|
||||
double ts1 = omp_get_wtime();
|
||||
apply< EOT >( eval, pop );
|
||||
//sleep(1);
|
||||
double ts2 = omp_get_wtime();
|
||||
|
||||
eoPop< EOT >& pop2 = make_pop( parser, state, init );
|
||||
|
||||
double tp1 = omp_get_wtime();
|
||||
omp_apply< EOT >( eval, pop2 );
|
||||
//sleep(1);
|
||||
double tp2 = omp_get_wtime();
|
||||
|
||||
eo::log << "Ts = " << ts2 - ts1 << std::endl;
|
||||
eo::log << "Tp = " << tp2 - tp1 << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
Loading…
Add table
Add a link
Reference in a new issue