1 |
#include "ecosystem.h" |
#include "ecosystem.h" |
2 |
#include "runid.h" |
#include "runid.h" |
3 |
#include "global.h" |
#include "global.h" |
4 |
#ifndef NO_OPENMP |
#ifdef _OPENMP |
5 |
#include <omp.h> |
#include <omp.h> |
6 |
#endif |
#endif |
7 |
|
|
8 |
#ifndef NO_OPENMP |
#ifdef _OPENMP |
9 |
extern Ecosystem** EcoSystems; |
extern Ecosystem** EcoSystems; |
10 |
//extern StochasticData* data; |
//extern StochasticData* data; |
11 |
#endif |
#endif |
111 |
void Ecosystem::Optimise() { |
void Ecosystem::Optimise() { |
112 |
int i; |
int i; |
113 |
for (i = 0; i < optvec.Size(); i++) { |
for (i = 0; i < optvec.Size(); i++) { |
114 |
#ifndef NO_OPENMP |
#ifdef _OPENMP |
115 |
int j, numThr = omp_get_max_threads ( ); |
int j, numThr = omp_get_max_threads ( ); |
116 |
DoubleVector v = this->getValues(); |
DoubleVector v = this->getValues(); |
117 |
for (j = 0; j < numThr; j++) |
for (j = 0; j < numThr; j++) |
118 |
EcoSystems[j]->Update(v); |
EcoSystems[j]->Update(v); |
119 |
#endif |
#endif |
120 |
#ifdef GADGET_OPENMP |
#ifdef SPECULATIVE |
121 |
optvec[i]->OptimiseLikelihoodOMP(); |
optvec[i]->OptimiseLikelihoodOMP(); |
122 |
#else |
#else |
123 |
optvec[i]->OptimiseLikelihood(); |
optvec[i]->OptimiseLikelihood(); |
169 |
tmpvec[i] = likevec[i]->getUnweightedLikelihood(); |
tmpvec[i] = likevec[i]->getUnweightedLikelihood(); |
170 |
|
|
171 |
int iters = 0; |
int iters = 0; |
172 |
#ifndef NO_OPENMP |
#ifdef _OPENMP |
173 |
int numThr = omp_get_max_threads ( ); |
int numThr = omp_get_max_threads ( ); |
174 |
for (i = 0; i < numThr; i++) |
for (i = 0; i < numThr; i++) |
175 |
iters += EcoSystems[i]->getFuncEval(); |
iters += EcoSystems[i]->getFuncEval(); |