Le test continue

This commit is contained in:
François Merciol 2018-08-04 11:14:02 +02:00
parent 6c7abb0744
commit ebdc90f26f
2 changed files with 104 additions and 0 deletions

24
include/triskeleDebug.tpp Normal file
View File

@ -0,0 +1,24 @@
#ifndef _OTB_TRISKELE_DEBUG_TPP
#define _OTB_TRISKELE_DEBUG_TPP
string
ns2string (double delta) {
using namespace boost::chrono;
ostringstream oss;
duration<double> ns (delta);
oss.fill ('0');
// typedef duration<int, ratio<86400> > days;
// auto d = duration_cast<days>(ns);
// ns -= d;
auto h = duration_cast<hours> (ns);
ns -= h;
auto m = duration_cast<minutes> (ns);
ns -= m;
oss << setw (2) << h.count () << ":"
<< setw (2) << m.count () << ":"
<< setw (9) << fixed << setprecision (6) << ns.count ();
return oss.str ();
}
#endif // _OTB_TRISKELE_DEBUG_TPP

80
test/TestThread.hpp Normal file
View File

@ -0,0 +1,80 @@
// OK faire une classe
// OK changer coreCount en maxCoreCount
// faire test 10000 + lamba + 1...coreCount
// découpe fichier TestThread.cpp
// calcul alignement
// lecture seq => faire somme
// lecture // => faire somme
// écriture seq => écrire idx
// écriture // => écrire idx
// lecture/écriture seq => écrire x/2
// lecture/écriture // => écrire x/2
#include <iostream>
#include <vector>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/sum.hpp>
#include <boost/accumulators/statistics/count.hpp>
#include <boost/accumulators/statistics/min.hpp>
#include <boost/accumulators/statistics/max.hpp>
#include <boost/accumulators/statistics/mean.hpp>
namespace otb {
namespace triskele {
using namespace std;
namespace ba = boost::accumulators;
typedef ba::accumulator_set<double,
ba::stats<ba::tag::sum,
ba::tag::count,
ba::tag::mean,
ba::tag::min,
ba::tag::max> > AlgoStat;
enum TimeType {
directDealStats,
lambdaDealStats,
threadDealStats,
inThreadDealStats,
initStats,
seqReadStats,
parReadStats,
seqWriteStats,
parWriteStats,
seqRWStats,
parRWStats,
TimeTypeCard
};
typedef uint32_t DimImg;
class TestThread {
public:
static const unsigned int maxCoreCount;
unsigned int coreCount;
AlgoStat timeStats[TimeTypeCard];
size_t nbItem = 1000000;
// XXX vérifier l'alignement vector
vector<DimImg> global;
TestThread (const unsigned int &coreCount = maxCoreCount);
// XXX en commun
static inline string ns2string (double delta);
inline void addTime (const TimeType &timeType, const double &duration) {
timeStats[timeType] (duration);
}
ostream &print (ostream &out, const AlgoStat stats[]);
// XXX déclarer nodealThread
template <typename T>
void fillVector (vector<T> &vect);
void multiTest ();
void testDeal ();
};
}
}