Merge branch 'openmp' of ssh://localhost:9001/gitroot/eodev/eodev into openmp

This commit is contained in:
Caner Candan 2011-02-04 14:10:10 +01:00
commit a911c98f64
4 changed files with 25 additions and 5 deletions

View file

@ -109,7 +109,7 @@ ENDIF (ENABLE_CMAKE_TESTING)
### 5) Where must cmake go now ? ### 5) Where must cmake go now ?
###################################################################################### ######################################################################################
ADD_SUBDIRECTORY(app) #ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(doc) ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test) ADD_SUBDIRECTORY(test)

View file

@ -40,12 +40,10 @@
template <class EOT> template <class EOT>
void apply(eoUF<EOT&, void>& _proc, std::vector<EOT>& _pop) void apply(eoUF<EOT&, void>& _proc, std::vector<EOT>& _pop)
{ {
#ifdef _OPENMP
omp_set_num_threads(eo::parallel.nthreads());
size_t size = _pop.size(); size_t size = _pop.size();
#ifdef _OPENMP
double t1 = omp_get_wtime(); double t1 = omp_get_wtime();
if (!eo::parallel.isDynamic()) if (!eo::parallel.isDynamic())

View file

@ -25,6 +25,8 @@ Caner Candan <caner.candan@thalesgroup.com>
*/ */
#include <omp.h>
#include "eoParallel.h" #include "eoParallel.h"
eoParallel::eoParallel() : eoParallel::eoParallel() :
@ -74,6 +76,16 @@ void eoParallel::_createParameters( eoParser& parser )
void make_parallel(eoParser& parser) void make_parallel(eoParser& parser)
{ {
eo::parallel._createParameters( parser ); eo::parallel._createParameters( parser );
#ifdef _OPENMP
if ( eo::parallel.isEnabled() )
{
if ( eo::parallel.nthreads() > 0 )
{
omp_set_num_threads( eo::parallel.nthreads() );
}
}
#endif // !_OPENMP
} }
eoParallel eo::parallel; eoParallel eo::parallel;

View file

@ -2,6 +2,8 @@
// t-eoParallel.cpp // t-eoParallel.cpp
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include <omp.h>
#include <eo> #include <eo>
#include <es/make_real.h> #include <es/make_real.h>
//#include <apply.h> //#include <apply.h>
@ -40,6 +42,14 @@ int main(int ac, char** av)
eo::log << eo::quiet << "DONE!" << std::endl; eo::log << eo::quiet << "DONE!" << std::endl;
#pragma omp parallel
{
if ( 0 == omp_get_thread_num() )
{
eo::log << "num of threads: " << omp_get_num_threads() << std::endl;
}
}
return 0; return 0;
} }