modifié : MakefileNoOTB
modifié : include/triskeleDealThreads.hpp modifié : include/triskeleDealThreads.tpp
This commit is contained in:
parent
56ab83f230
commit
806fcc2f9a
@ -17,7 +17,7 @@ TST_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(TST_PRG))
|
|||||||
TST_OUT = $(patsubst %, $(OUT_DIR)/%, $(TST_PRG))
|
TST_OUT = $(patsubst %, $(OUT_DIR)/%, $(TST_PRG))
|
||||||
|
|
||||||
## FLAGS ###############################
|
## FLAGS ###############################
|
||||||
DFLAGS = -O2 -DNDEBUG -DBOOST_DISABLE_ASSERTS -DNO_OTB
|
DFLAGS = -O2 -DNDEBUG -DBOOST_DISABLE_ASSERTS -DNO_OTB -DTHREAD_DISABLE
|
||||||
#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG
|
#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG
|
||||||
IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR)
|
IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR)
|
||||||
LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal
|
LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
#ifndef _TRISKELE_DEAL_THREADS_HPP
|
#ifndef _TRISKELE_DEAL_THREADS_HPP
|
||||||
#define _TRISKELE_DEAL_THREADS_HPP
|
#define _TRISKELE_DEAL_THREADS_HPP
|
||||||
|
|
||||||
|
#ifdef XEON_TBB_THREAD
|
||||||
|
#include <tbb/tbb.h>
|
||||||
|
#endif
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
|
|
||||||
namespace triskele {
|
namespace triskele {
|
||||||
|
@ -61,17 +61,22 @@ dealThread (const DimImg &maxId, unsigned int coreCount, const FunctThreadMinMax
|
|||||||
|
|
||||||
std::vector<DimImg> maxIds = getDealThreadBounds (maxId, coreCount);
|
std::vector<DimImg> maxIds = getDealThreadBounds (maxId, coreCount);
|
||||||
boost::thread tasks [coreCount];
|
boost::thread tasks [coreCount];
|
||||||
|
#ifdef THREAD_DISABLE
|
||||||
for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) {
|
for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) {
|
||||||
#ifndef THREAD_DISABLE
|
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||||
tasks[idCopyValInThread] = boost::thread ([/*no ref!!!*/idCopyValInThread, &maxIds, &functThreadMinMax] () {
|
}
|
||||||
#endif
|
#elif XEON_TBB_THREAD
|
||||||
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
using namespace tbb;
|
||||||
#ifndef THREAD_DISABLE
|
#pragma warning(disable: 588)
|
||||||
});
|
parallel_for (size_t (0), size_t (coreCount), [&maxIds, &functThreadMinMax] (size_t idCopyValInThread) {
|
||||||
#endif
|
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||||
|
});
|
||||||
|
#else
|
||||||
|
for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) {
|
||||||
|
tasks[idCopyValInThread] = boost::thread ([/*no ref!!!*/idCopyValInThread, &maxIds, &functThreadMinMax] () {
|
||||||
|
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef THREAD_DISABLE
|
|
||||||
for (unsigned int i = 0; i < coreCount; ++i)
|
for (unsigned int i = 0; i < coreCount; ++i)
|
||||||
tasks[i].join ();
|
tasks[i].join ();
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user