Commit a7bc2f9b by Marcus Winter

algorithms_cpp: refactored to use tasks_cpp

parent 52da087e
...@@ -17,18 +17,18 @@ include_directories(${EMBB_ALGORITHMS_CPP_INCLUDE_DIRS} ...@@ -17,18 +17,18 @@ include_directories(${EMBB_ALGORITHMS_CPP_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/../base_cpp/include ${CMAKE_CURRENT_SOURCE_DIR}/../base_cpp/include
${CMAKE_CURRENT_BINARY_DIR}/../base_cpp/include ${CMAKE_CURRENT_BINARY_DIR}/../base_cpp/include
${CMAKE_CURRENT_SOURCE_DIR}/../mtapi_c/include ${CMAKE_CURRENT_SOURCE_DIR}/../mtapi_c/include
${CMAKE_CURRENT_SOURCE_DIR}/../mtapi_cpp/include ${CMAKE_CURRENT_SOURCE_DIR}/../tasks_cpp/include
${CMAKE_CURRENT_BINARY_DIR}/../mtapi_cpp/include) ${CMAKE_CURRENT_BINARY_DIR}/../tasks_cpp/include)
add_library(embb_algorithms_cpp ${EMBB_ALGORITHMS_CPP_SOURCES} add_library(embb_algorithms_cpp ${EMBB_ALGORITHMS_CPP_SOURCES}
${EMBB_ALGORITHMS_CPP_HEADERS}) ${EMBB_ALGORITHMS_CPP_HEADERS})
target_link_libraries(embb_algorithms_cpp embb_mtapi_cpp) target_link_libraries(embb_algorithms_cpp embb_tasks_cpp)
if (BUILD_TESTS STREQUAL ON) if (BUILD_TESTS STREQUAL ON)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../partest/include) include_directories(${CMAKE_CURRENT_BINARY_DIR}/../partest/include)
add_executable (embb_algorithms_cpp_test ${EMBB_ALGORITHMS_CPP_TEST_SOURCES}) add_executable (embb_algorithms_cpp_test ${EMBB_ALGORITHMS_CPP_TEST_SOURCES})
target_link_libraries(embb_algorithms_cpp_test embb_algorithms_cpp target_link_libraries(embb_algorithms_cpp_test embb_algorithms_cpp
embb_mtapi_cpp embb_mtapi_c partest embb_base_cpp embb_tasks_cpp embb_mtapi_c partest embb_base_cpp
embb_base_c ${compiler_libs}) embb_base_c ${compiler_libs})
CopyBin(BIN embb_algorithms_cpp_test DEST ${local_install_dir}) CopyBin(BIN embb_algorithms_cpp_test DEST ${local_install_dir})
endif() endif()
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_COUNT_H_ #ifndef EMBB_ALGORITHMS_COUNT_H_
#define EMBB_ALGORITHMS_COUNT_H_ #define EMBB_ALGORITHMS_COUNT_H_
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <iterator> #include <iterator>
namespace embb { namespace embb {
...@@ -132,7 +132,7 @@ typename std::iterator_traits<RAI>::difference_type Count( ...@@ -132,7 +132,7 @@ typename std::iterator_traits<RAI>::difference_type Count(
RAI first, RAI first,
RAI last, RAI last,
const ValueType& value, const ValueType& value,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -145,7 +145,7 @@ typename std::iterator_traits<RAI>::difference_type Count( ...@@ -145,7 +145,7 @@ typename std::iterator_traits<RAI>::difference_type Count(
RAI last, RAI last,
const ValueType& value const ValueType& value
) { ) {
return Count(first, last, value, embb::mtapi::ExecutionPolicy(), 0); return Count(first, last, value, embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -156,7 +156,7 @@ typename std::iterator_traits<RAI>::difference_type Count( ...@@ -156,7 +156,7 @@ typename std::iterator_traits<RAI>::difference_type Count(
RAI first, RAI first,
RAI last, RAI last,
const ValueType& value, const ValueType& value,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
return Count(first, last, value, policy, 0); return Count(first, last, value, policy, 0);
} }
...@@ -169,7 +169,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf( ...@@ -169,7 +169,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -182,7 +182,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf( ...@@ -182,7 +182,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf(
RAI last, RAI last,
ComparisonFunction comparison ComparisonFunction comparison
) { ) {
return CountIf(first, last, comparison, embb::mtapi::ExecutionPolicy(), 0); return CountIf(first, last, comparison, embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -193,7 +193,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf( ...@@ -193,7 +193,7 @@ typename std::iterator_traits<RAI>::difference_type CountIf(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
return CountIf(first, last, comparison, policy, 0); return CountIf(first, last, comparison, policy, 0);
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_FOR_EACH_H_ #ifndef EMBB_ALGORITHMS_FOR_EACH_H_
#define EMBB_ALGORITHMS_FOR_EACH_H_ #define EMBB_ALGORITHMS_FOR_EACH_H_
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
namespace embb { namespace embb {
namespace algorithms { namespace algorithms {
...@@ -88,7 +88,7 @@ void ForEach( ...@@ -88,7 +88,7 @@ void ForEach(
RAI first, RAI first,
RAI last, RAI last,
Function unary, Function unary,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -101,7 +101,7 @@ void ForEach( ...@@ -101,7 +101,7 @@ void ForEach(
RAI last, RAI last,
Function unary Function unary
) { ) {
ForEach(first, last, unary, embb::mtapi::ExecutionPolicy(), 0); ForEach(first, last, unary, embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -112,7 +112,7 @@ void ForEach( ...@@ -112,7 +112,7 @@ void ForEach(
RAI first, RAI first,
RAI last, RAI last,
Function unary, Function unary,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
ForEach(first, last, unary, policy, 0); ForEach(first, last, unary, policy, 0);
} }
......
...@@ -83,7 +83,7 @@ class FunctionComparisonFunction{ ...@@ -83,7 +83,7 @@ class FunctionComparisonFunction{
template<typename RAI, typename ValueType> template<typename RAI, typename ValueType>
typename std::iterator_traits<RAI>::difference_type typename std::iterator_traits<RAI>::difference_type
Count(RAI first, RAI last, const ValueType& value, Count(RAI first, RAI last, const ValueType& value,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typedef typename std::iterator_traits<RAI>::difference_type Difference; typedef typename std::iterator_traits<RAI>::difference_type Difference;
return Reduce(first, last, Difference(0), std::plus<Difference>(), return Reduce(first, last, Difference(0), std::plus<Difference>(),
internal::ValueComparisonFunction<ValueType>(value), policy, internal::ValueComparisonFunction<ValueType>(value), policy,
...@@ -93,7 +93,7 @@ typename std::iterator_traits<RAI>::difference_type ...@@ -93,7 +93,7 @@ typename std::iterator_traits<RAI>::difference_type
template<typename RAI, typename ComparisonFunction> template<typename RAI, typename ComparisonFunction>
typename std::iterator_traits<RAI>::difference_type typename std::iterator_traits<RAI>::difference_type
CountIf(RAI first, RAI last, ComparisonFunction comparison, CountIf(RAI first, RAI last, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typedef typename std::iterator_traits<RAI>::difference_type Difference; typedef typename std::iterator_traits<RAI>::difference_type Difference;
return Reduce(first, last, Difference(0), std::plus<Difference>(), return Reduce(first, last, Difference(0), std::plus<Difference>(),
internal::FunctionComparisonFunction<ComparisonFunction> internal::FunctionComparisonFunction<ComparisonFunction>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include <cassert> #include <cassert>
#include <embb/base/exceptions.h> #include <embb/base/exceptions.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <embb/algorithms/internal/partition.h> #include <embb/algorithms/internal/partition.h>
#include <embb/algorithms/zip_iterator.h> #include <embb/algorithms/zip_iterator.h>
...@@ -46,13 +46,13 @@ class ForEachFunctor { ...@@ -46,13 +46,13 @@ class ForEachFunctor {
* Constructs a for-each functor with arguments. * Constructs a for-each functor with arguments.
*/ */
ForEachFunctor(size_t chunk_first, size_t chunk_last, Function unary, ForEachFunctor(size_t chunk_first, size_t chunk_last, Function unary,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
const BlockSizePartitioner<RAI>& partitioner) const BlockSizePartitioner<RAI>& partitioner)
: chunk_first_(chunk_first), chunk_last_(chunk_last), : chunk_first_(chunk_first), chunk_last_(chunk_last),
unary_(unary), policy_(policy), partitioner_(partitioner) { unary_(unary), policy_(policy), partitioner_(partitioner) {
} }
void Action(mtapi::TaskContext&) { void Action(embb::tasks::TaskContext&) {
if (chunk_first_ == chunk_last_) { if (chunk_first_ == chunk_last_) {
// Leaf case, recursed to single chunk. Do work on chunk: // Leaf case, recursed to single chunk. Do work on chunk:
ChunkDescriptor<RAI> chunk = partitioner_[chunk_first_]; ChunkDescriptor<RAI> chunk = partitioner_[chunk_first_];
...@@ -71,12 +71,12 @@ class ForEachFunctor { ...@@ -71,12 +71,12 @@ class ForEachFunctor {
self_t functor_r(chunk_split_index + 1, self_t functor_r(chunk_split_index + 1,
chunk_last_, chunk_last_,
unary_, policy_, partitioner_); unary_, policy_, partitioner_);
mtapi::Task task_l = mtapi::Node::GetInstance().Spawn( embb::tasks::Task task_l = embb::tasks::Node::GetInstance().Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_l, &self_t::Action), base::MakeFunction(functor_l, &self_t::Action),
policy_)); policy_));
mtapi::Task task_r = mtapi::Node::GetInstance().Spawn( embb::tasks::Task task_r = embb::tasks::Node::GetInstance().Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_r, &self_t::Action), base::MakeFunction(functor_r, &self_t::Action),
policy_)); policy_));
task_l.Wait(MTAPI_INFINITE); task_l.Wait(MTAPI_INFINITE);
...@@ -91,7 +91,7 @@ class ForEachFunctor { ...@@ -91,7 +91,7 @@ class ForEachFunctor {
size_t chunk_first_; size_t chunk_first_;
size_t chunk_last_; size_t chunk_last_;
Function unary_; Function unary_;
const embb::mtapi::ExecutionPolicy& policy_; const embb::tasks::ExecutionPolicy& policy_;
const BlockSizePartitioner<RAI>& partitioner_; const BlockSizePartitioner<RAI>& partitioner_;
/** /**
...@@ -102,7 +102,7 @@ class ForEachFunctor { ...@@ -102,7 +102,7 @@ class ForEachFunctor {
template<typename RAI, typename Function> template<typename RAI, typename Function>
void ForEachRecursive(RAI first, RAI last, Function unary, void ForEachRecursive(RAI first, RAI last, Function unary,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typedef typename std::iterator_traits<RAI>::difference_type difference_type; typedef typename std::iterator_traits<RAI>::difference_type difference_type;
difference_type distance = std::distance(first, last); difference_type distance = std::distance(first, last);
if (distance == 0) { if (distance == 0) {
...@@ -114,7 +114,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary, ...@@ -114,7 +114,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary,
if (num_cores == 0) { if (num_cores == 0) {
EMBB_THROW(embb::base::ErrorException, "No cores in execution policy"); EMBB_THROW(embb::base::ErrorException, "No cores in execution policy");
} }
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
// Determine actually used block size // Determine actually used block size
if (block_size == 0) { if (block_size == 0) {
block_size = (static_cast<size_t>(distance) / num_cores); block_size = (static_cast<size_t>(distance) / num_cores);
...@@ -132,7 +132,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary, ...@@ -132,7 +132,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary,
ForEachFunctor<RAI, Function> functor(0, ForEachFunctor<RAI, Function> functor(0,
partitioner.Size() - 1, partitioner.Size() - 1,
unary, policy, partitioner); unary, policy, partitioner);
mtapi::Task task = node.Spawn(mtapi::Action( embb::tasks::Task task = node.Spawn(embb::tasks::Action(
base::MakeFunction(functor, base::MakeFunction(functor,
&ForEachFunctor<RAI, Function>::Action), &ForEachFunctor<RAI, Function>::Action),
policy)); policy));
...@@ -141,7 +141,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary, ...@@ -141,7 +141,7 @@ void ForEachRecursive(RAI first, RAI last, Function unary,
template<typename RAI, typename Function> template<typename RAI, typename Function>
void ForEachIteratorCheck(RAI first, RAI last, Function unary, void ForEachIteratorCheck(RAI first, RAI last, Function unary,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size, const embb::tasks::ExecutionPolicy& policy, size_t block_size,
std::random_access_iterator_tag) { std::random_access_iterator_tag) {
return ForEachRecursive(first, last, unary, policy, block_size); return ForEachRecursive(first, last, unary, policy, block_size);
} }
...@@ -150,7 +150,7 @@ void ForEachIteratorCheck(RAI first, RAI last, Function unary, ...@@ -150,7 +150,7 @@ void ForEachIteratorCheck(RAI first, RAI last, Function unary,
template<typename RAI, typename Function> template<typename RAI, typename Function>
void ForEach(RAI first, const RAI last, Function unary, void ForEach(RAI first, const RAI last, Function unary,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typename std::iterator_traits<RAI>::iterator_category category; typename std::iterator_traits<RAI>::iterator_category category;
internal::ForEachIteratorCheck(first, last, unary, policy, block_size, internal::ForEachIteratorCheck(first, last, unary, policy, block_size,
category); category);
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include <functional> #include <functional>
#include <embb/base/exceptions.h> #include <embb/base/exceptions.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <embb/algorithms/internal/partition.h> #include <embb/algorithms/internal/partition.h>
namespace embb { namespace embb {
...@@ -50,7 +50,7 @@ class MergeSortFunctor { ...@@ -50,7 +50,7 @@ class MergeSortFunctor {
MergeSortFunctor(size_t chunk_first, size_t chunk_last, MergeSortFunctor(size_t chunk_first, size_t chunk_last,
RAITemp temporary_first, ComparisonFunction comparison, RAITemp temporary_first, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
const BlockSizePartitioner<RAI>& partitioner, const BlockSizePartitioner<RAI>& partitioner,
const RAI& global_first, int depth) const RAI& global_first, int depth)
: chunk_first_(chunk_first), chunk_last_(chunk_last), : chunk_first_(chunk_first), chunk_last_(chunk_last),
...@@ -59,7 +59,7 @@ class MergeSortFunctor { ...@@ -59,7 +59,7 @@ class MergeSortFunctor {
global_first_(global_first), depth_(depth) { global_first_(global_first), depth_(depth) {
} }
void Action(mtapi::TaskContext&) { void Action(embb::tasks::TaskContext&) {
size_t chunk_split_index = (chunk_first_ + chunk_last_) / 2; size_t chunk_split_index = (chunk_first_ + chunk_last_) / 2;
if (chunk_first_ == chunk_last_) { if (chunk_first_ == chunk_last_) {
// Leaf case: recurse into a single chunk's elements: // Leaf case: recurse into a single chunk's elements:
...@@ -77,13 +77,13 @@ class MergeSortFunctor { ...@@ -77,13 +77,13 @@ class MergeSortFunctor {
temp_first_, temp_first_,
comparison_, policy_, partitioner_, comparison_, policy_, partitioner_,
global_first_, depth_ + 1); global_first_, depth_ + 1);
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
mtapi::Task task_l = node.Spawn( embb::tasks::Task task_l = node.Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_l, &self_t::Action), base::MakeFunction(functor_l, &self_t::Action),
policy_)); policy_));
mtapi::Task task_r = node.Spawn( embb::tasks::Task task_r = node.Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_r, &self_t::Action), base::MakeFunction(functor_r, &self_t::Action),
policy_)); policy_));
task_l.Wait(MTAPI_INFINITE); task_l.Wait(MTAPI_INFINITE);
...@@ -177,7 +177,7 @@ class MergeSortFunctor { ...@@ -177,7 +177,7 @@ class MergeSortFunctor {
size_t chunk_last_; size_t chunk_last_;
RAITemp temp_first_; RAITemp temp_first_;
ComparisonFunction comparison_; ComparisonFunction comparison_;
const embb::mtapi::ExecutionPolicy& policy_; const embb::tasks::ExecutionPolicy& policy_;
const BlockSizePartitioner<RAI>& partitioner_; const BlockSizePartitioner<RAI>& partitioner_;
const RAI& global_first_; const RAI& global_first_;
int depth_; int depth_;
...@@ -219,7 +219,7 @@ void MergeSortIteratorCheck( ...@@ -219,7 +219,7 @@ void MergeSortIteratorCheck(
RAI last, RAI last,
RAITemp temporary_first, RAITemp temporary_first,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size, size_t block_size,
std::random_access_iterator_tag std::random_access_iterator_tag
) { ) {
...@@ -257,8 +257,8 @@ void MergeSortIteratorCheck( ...@@ -257,8 +257,8 @@ void MergeSortIteratorCheck(
partitioner, partitioner,
first, first,
0); 0);
mtapi::Task task = embb::mtapi::Node::GetInstance().Spawn( embb::tasks::Task task = embb::tasks::Node::GetInstance().Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor, &functor_t::Action), base::MakeFunction(functor, &functor_t::Action),
policy)); policy));
...@@ -269,7 +269,7 @@ void MergeSortIteratorCheck( ...@@ -269,7 +269,7 @@ void MergeSortIteratorCheck(
template<typename RAI, typename RAITemp, typename ComparisonFunction> template<typename RAI, typename RAITemp, typename ComparisonFunction>
void MergeSort(RAI first, RAI last, RAITemp temporary_first, void MergeSort(RAI first, RAI last, RAITemp temporary_first,
ComparisonFunction comparison, const embb::mtapi::ExecutionPolicy& policy, ComparisonFunction comparison, const embb::tasks::ExecutionPolicy& policy,
size_t block_size) { size_t block_size) {
typedef typename std::iterator_traits<RAI>::iterator_category category; typedef typename std::iterator_traits<RAI>::iterator_category category;
internal::MergeSortIteratorCheck(first, last, temporary_first, comparison, internal::MergeSortIteratorCheck(first, last, temporary_first, comparison,
......
...@@ -93,7 +93,7 @@ ChunkPartitioner<ForwardIterator>::ChunkPartitioner(ForwardIterator first, ...@@ -93,7 +93,7 @@ ChunkPartitioner<ForwardIterator>::ChunkPartitioner(ForwardIterator first,
size = amountChunks; size = amountChunks;
} else { } else {
// if no concrete chunk size was given, use number of cores... // if no concrete chunk size was given, use number of cores...
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
size = node.GetWorkerThreadCount(); size = node.GetWorkerThreadCount();
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_INTERNAL_PARTITION_H_ #ifndef EMBB_ALGORITHMS_INTERNAL_PARTITION_H_
#define EMBB_ALGORITHMS_INTERNAL_PARTITION_H_ #define EMBB_ALGORITHMS_INTERNAL_PARTITION_H_
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
namespace embb { namespace embb {
namespace algorithms { namespace algorithms {
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
#include <functional> #include <functional>
#include <embb/base/exceptions.h> #include <embb/base/exceptions.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <embb/algorithms/internal/partition.h> #include <embb/algorithms/internal/partition.h>
namespace embb { namespace embb {
...@@ -48,7 +48,7 @@ class QuickSortFunctor { ...@@ -48,7 +48,7 @@ class QuickSortFunctor {
* Constructs a functor. * Constructs a functor.
*/ */
QuickSortFunctor(RAI first, RAI last, ComparisonFunction comparison, QuickSortFunctor(RAI first, RAI last, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) const embb::tasks::ExecutionPolicy& policy, size_t block_size)
: first_(first), last_(last), comparison_(comparison), policy_(policy), : first_(first), last_(last), comparison_(comparison), policy_(policy),
block_size_(block_size) { block_size_(block_size) {
} }
...@@ -56,7 +56,7 @@ class QuickSortFunctor { ...@@ -56,7 +56,7 @@ class QuickSortFunctor {
/** /**
* MTAPI action function and starting point of the parallel quick sort. * MTAPI action function and starting point of the parallel quick sort.
*/ */
void Action(mtapi::TaskContext&) { void Action(embb::tasks::TaskContext&) {
Difference distance = last_ - first_; Difference distance = last_ - first_;
if (distance <= 1) { if (distance <= 1) {
return; return;
...@@ -68,15 +68,15 @@ class QuickSortFunctor { ...@@ -68,15 +68,15 @@ class QuickSortFunctor {
SerialQuickSort(first_, mid); SerialQuickSort(first_, mid);
SerialQuickSort(mid, last_); SerialQuickSort(mid, last_);
} else { } else {
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
QuickSortFunctor functor_l(first_, mid, comparison_, policy_, QuickSortFunctor functor_l(first_, mid, comparison_, policy_,
block_size_); block_size_);
mtapi::Task task_l = node.Spawn(mtapi::Action(base::MakeFunction( embb::tasks::Task task_l = node.Spawn(embb::tasks::Action(
functor_l, &QuickSortFunctor::Action))); base::MakeFunction(functor_l, &QuickSortFunctor::Action)));
QuickSortFunctor functor_r(mid, last_, comparison_, policy_, QuickSortFunctor functor_r(mid, last_, comparison_, policy_,
block_size_); block_size_);
mtapi::Task task_r = node.Spawn(mtapi::Action(base::MakeFunction( embb::tasks::Task task_r = node.Spawn(embb::tasks::Action(
functor_r, &QuickSortFunctor::Action))); base::MakeFunction(functor_r, &QuickSortFunctor::Action)));
task_l.Wait(MTAPI_INFINITE); task_l.Wait(MTAPI_INFINITE);
task_r.Wait(MTAPI_INFINITE); task_r.Wait(MTAPI_INFINITE);
} }
...@@ -87,7 +87,7 @@ class QuickSortFunctor { ...@@ -87,7 +87,7 @@ class QuickSortFunctor {
RAI first_; RAI first_;
RAI last_; RAI last_;
ComparisonFunction comparison_; ComparisonFunction comparison_;
const embb::mtapi::ExecutionPolicy& policy_; const embb::tasks::ExecutionPolicy& policy_;
size_t block_size_; size_t block_size_;
typedef typename std::iterator_traits<RAI>::difference_type Difference; typedef typename std::iterator_traits<RAI>::difference_type Difference;
...@@ -189,10 +189,10 @@ class QuickSortFunctor { ...@@ -189,10 +189,10 @@ class QuickSortFunctor {
template <typename RAI, typename ComparisonFunction> template <typename RAI, typename ComparisonFunction>
void QuickSortIteratorCheck(RAI first, RAI last, void QuickSortIteratorCheck(RAI first, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size, size_t block_size,
std::random_access_iterator_tag) { std::random_access_iterator_tag) {
embb::mtapi::Node& node = embb::mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
typedef typename std::iterator_traits<RAI>::difference_type difference_type; typedef typename std::iterator_traits<RAI>::difference_type difference_type;
difference_type distance = std::distance(first, last); difference_type distance = std::distance(first, last);
if (distance == 0) { if (distance == 0) {
...@@ -215,7 +215,7 @@ void QuickSortIteratorCheck(RAI first, RAI last, ...@@ -215,7 +215,7 @@ void QuickSortIteratorCheck(RAI first, RAI last,
} }
QuickSortFunctor<RAI, ComparisonFunction> functor( QuickSortFunctor<RAI, ComparisonFunction> functor(
first, last, comparison, policy, block_size); first, last, comparison, policy, block_size);
mtapi::Task task = node.Spawn(mtapi::Action(base::MakeFunction( embb::tasks::Task task = node.Spawn(embb::tasks::Action(base::MakeFunction(
functor, &QuickSortFunctor<RAI, ComparisonFunction>::Action))); functor, &QuickSortFunctor<RAI, ComparisonFunction>::Action)));
task.Wait(MTAPI_INFINITE); task.Wait(MTAPI_INFINITE);
} }
...@@ -224,7 +224,7 @@ void QuickSortIteratorCheck(RAI first, RAI last, ...@@ -224,7 +224,7 @@ void QuickSortIteratorCheck(RAI first, RAI last,
template <typename RAI, typename ComparisonFunction> template <typename RAI, typename ComparisonFunction>
void QuickSort(RAI first, RAI last, ComparisonFunction comparison, void QuickSort(RAI first, RAI last, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typedef typename std::iterator_traits<RAI>::iterator_category category; typedef typename std::iterator_traits<RAI>::iterator_category category;
internal::QuickSortIteratorCheck(first, last, comparison, internal::QuickSortIteratorCheck(first, last, comparison,
policy, block_size, category()); policy, block_size, category());
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_INTERNAL_REDUCE_INL_H_ #ifndef EMBB_ALGORITHMS_INTERNAL_REDUCE_INL_H_
#define EMBB_ALGORITHMS_INTERNAL_REDUCE_INL_H_ #define EMBB_ALGORITHMS_INTERNAL_REDUCE_INL_H_
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <embb/algorithms/internal/partition.h> #include <embb/algorithms/internal/partition.h>
#include <functional> #include <functional>
...@@ -46,7 +46,7 @@ class ReduceFunctor { ...@@ -46,7 +46,7 @@ class ReduceFunctor {
ReturnType neutral, ReturnType neutral,
ReductionFunction reduction, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
const BlockSizePartitioner<RAI>& partitioner, const BlockSizePartitioner<RAI>& partitioner,
ReturnType& result) ReturnType& result)
: chunk_first_(chunk_first), chunk_last_(chunk_last), neutral_(neutral), : chunk_first_(chunk_first), chunk_last_(chunk_last), neutral_(neutral),
...@@ -54,7 +54,7 @@ class ReduceFunctor { ...@@ -54,7 +54,7 @@ class ReduceFunctor {
partitioner_(partitioner), result_(result) { partitioner_(partitioner), result_(result) {
} }
void Action(mtapi::TaskContext&) { void Action(embb::tasks::TaskContext&) {
if (chunk_first_ == chunk_last_) { if (chunk_first_ == chunk_last_) {
// Leaf case, recursed to single chunk. Do work on chunk: // Leaf case, recursed to single chunk. Do work on chunk:
ChunkDescriptor<RAI> chunk = partitioner_[chunk_first_]; ChunkDescriptor<RAI> chunk = partitioner_[chunk_first_];
...@@ -81,13 +81,13 @@ class ReduceFunctor { ...@@ -81,13 +81,13 @@ class ReduceFunctor {
neutral_, reduction_, transformation_, policy_, neutral_, reduction_, transformation_, policy_,
partitioner_, partitioner_,
result_r); result_r);
mtapi::Task task_l = mtapi::Node::GetInstance().Spawn( embb::tasks::Task task_l = embb::tasks::Node::GetInstance().Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction( base::MakeFunction(
functor_l, &self_t::Action), functor_l, &self_t::Action),
policy_)); policy_));
mtapi::Task task_r = mtapi::Node::GetInstance().Spawn( embb::tasks::Task task_r = embb::tasks::Node::GetInstance().Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction( base::MakeFunction(
functor_r, &self_t::Action), functor_r, &self_t::Action),
policy_)); policy_));
...@@ -108,7 +108,7 @@ class ReduceFunctor { ...@@ -108,7 +108,7 @@ class ReduceFunctor {
ReturnType neutral_; ReturnType neutral_;
ReductionFunction reduction_; ReductionFunction reduction_;
TransformationFunction transformation_; TransformationFunction transformation_;
const embb::mtapi::ExecutionPolicy& policy_; const embb::tasks::ExecutionPolicy& policy_;
const BlockSizePartitioner<RAI>& partitioner_; const BlockSizePartitioner<RAI>& partitioner_;
ReturnType& result_; ReturnType& result_;
...@@ -124,7 +124,7 @@ template<typename RAI, typename ReturnType, typename ReductionFunction, ...@@ -124,7 +124,7 @@ template<typename RAI, typename ReturnType, typename ReductionFunction,
ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral, ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral,
ReductionFunction reduction, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size) { size_t block_size) {
typedef typename std::iterator_traits<RAI>::difference_type difference_type; typedef typename std::iterator_traits<RAI>::difference_type difference_type;
difference_type distance = std::distance(first, last); difference_type distance = std::distance(first, last);
...@@ -137,7 +137,7 @@ ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral, ...@@ -137,7 +137,7 @@ ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral,
if (num_cores == 0) { if (num_cores == 0) {
EMBB_THROW(embb::base::ErrorException, "No cores in execution policy"); EMBB_THROW(embb::base::ErrorException, "No cores in execution policy");
} }
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
// Determine actually used block size // Determine actually used block size
if (block_size == 0) { if (block_size == 0) {
block_size = (static_cast<size_t>(distance) / num_cores); block_size = (static_cast<size_t>(distance) / num_cores);
...@@ -162,8 +162,8 @@ ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral, ...@@ -162,8 +162,8 @@ ReturnType ReduceRecursive(RAI first, RAI last, ReturnType neutral,
policy, policy,
partitioner, partitioner,
result); result);
mtapi::Task task = node.Spawn( embb::tasks::Task task = node.Spawn(
mtapi::Action(base::MakeFunction( embb::tasks::Action(base::MakeFunction(
functor, &Functor::Action), policy)); functor, &Functor::Action), policy));
task.Wait(MTAPI_INFINITE); task.Wait(MTAPI_INFINITE);
return result; return result;
...@@ -174,7 +174,7 @@ template<typename RAI, typename TransformationFunction, ...@@ -174,7 +174,7 @@ template<typename RAI, typename TransformationFunction,
ReturnType ReduceIteratorCheck(RAI first, RAI last, ReductionFunction reduction, ReturnType ReduceIteratorCheck(RAI first, RAI last, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
ReturnType neutral, ReturnType neutral,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size, size_t block_size,
std::random_access_iterator_tag) { std::random_access_iterator_tag) {
return ReduceRecursive(first, last, neutral, reduction, transformation, return ReduceRecursive(first, last, neutral, reduction, transformation,
...@@ -188,7 +188,7 @@ template<typename RAI, typename ReturnType, typename ReductionFunction, ...@@ -188,7 +188,7 @@ template<typename RAI, typename ReturnType, typename ReductionFunction,
ReturnType Reduce(RAI first, RAI last, ReturnType neutral, ReturnType Reduce(RAI first, RAI last, ReturnType neutral,
ReductionFunction reduction, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size) { size_t block_size) {
typename std::iterator_traits<RAI>::iterator_category category; typename std::iterator_traits<RAI>::iterator_category category;
return internal::ReduceIteratorCheck(first, last, reduction, transformation, return internal::ReduceIteratorCheck(first, last, reduction, transformation,
......
...@@ -29,8 +29,8 @@ ...@@ -29,8 +29,8 @@
#include <cassert> #include <cassert>
#include <embb/base/exceptions.h> #include <embb/base/exceptions.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <embb/algorithms/internal/partition.h> #include <embb/algorithms/internal/partition.h>
namespace embb { namespace embb {
...@@ -44,7 +44,7 @@ class ScanFunctor { ...@@ -44,7 +44,7 @@ class ScanFunctor {
ScanFunctor(size_t chunk_first, size_t chunk_last, RAIOut output_iterator, ScanFunctor(size_t chunk_first, size_t chunk_last, RAIOut output_iterator,
ReturnType neutral, ScanFunction scan, ReturnType neutral, ScanFunction scan,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
const BlockSizePartitioner<RAIIn>& partitioner, const BlockSizePartitioner<RAIIn>& partitioner,
ReturnType* tree_values, size_t node_id, ReturnType* tree_values, size_t node_id,
bool going_down) bool going_down)
...@@ -55,7 +55,7 @@ class ScanFunctor { ...@@ -55,7 +55,7 @@ class ScanFunctor {
node_id_(node_id), parent_value_(neutral), is_first_pass_(going_down) { node_id_(node_id), parent_value_(neutral), is_first_pass_(going_down) {
} }
void Action(mtapi::TaskContext&) { void Action(embb::tasks::TaskContext&) {
if (chunk_first_ == chunk_last_) { if (chunk_first_ == chunk_last_) {
ChunkDescriptor<RAIIn> chunk = partitioner_[chunk_first_]; ChunkDescriptor<RAIIn> chunk = partitioner_[chunk_first_];
RAIIn iter_in = chunk.GetFirst(); RAIIn iter_in = chunk.GetFirst();
...@@ -104,13 +104,13 @@ class ScanFunctor { ...@@ -104,13 +104,13 @@ class ScanFunctor {
functor_r.parent_value_ = functor_l.GetTreeValue() + parent_value_; functor_r.parent_value_ = functor_l.GetTreeValue() + parent_value_;
} }
// Spawn tasks to recurse: // Spawn tasks to recurse:
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
mtapi::Task task_l = node.Spawn( embb::tasks::Task task_l = node.Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_l, &ScanFunctor::Action), base::MakeFunction(functor_l, &ScanFunctor::Action),
policy_)); policy_));
mtapi::Task task_r = node.Spawn( embb::tasks::Task task_r = node.Spawn(
mtapi::Action( embb::tasks::Action(
base::MakeFunction(functor_r, &ScanFunctor::Action), base::MakeFunction(functor_r, &ScanFunctor::Action),
policy_)); policy_));
// Wait for tasks to complete: // Wait for tasks to complete:
...@@ -131,7 +131,7 @@ class ScanFunctor { ...@@ -131,7 +131,7 @@ class ScanFunctor {
private: private:
static const int LEFT = 1; static const int LEFT = 1;
static const int RIGHT = 2; static const int RIGHT = 2;
const embb::mtapi::ExecutionPolicy& policy_; const embb::tasks::ExecutionPolicy& policy_;
size_t chunk_first_; size_t chunk_first_;
size_t chunk_last_; size_t chunk_last_;
RAIOut output_iterator_; RAIOut output_iterator_;
...@@ -168,7 +168,7 @@ typename ScanFunction, typename TransformationFunction> ...@@ -168,7 +168,7 @@ typename ScanFunction, typename TransformationFunction>
void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator, void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator,
ReturnType neutral, ScanFunction scan, ReturnType neutral, ScanFunction scan,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size, size_t block_size,
std::random_access_iterator_tag) { std::random_access_iterator_tag) {
typedef typename std::iterator_traits<RAIIn>::difference_type difference_type; typedef typename std::iterator_traits<RAIIn>::difference_type difference_type;
...@@ -199,15 +199,14 @@ void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator, ...@@ -199,15 +199,14 @@ void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator,
// it creates the tree. // it creates the tree.
typedef ScanFunctor<RAIIn, RAIOut, ReturnType, ScanFunction, typedef ScanFunctor<RAIIn, RAIOut, ReturnType, ScanFunction,
TransformationFunction> Functor; TransformationFunction> Functor;
mtapi::Node& node = mtapi::Node::GetInstance(); embb::tasks::Node& node = embb::tasks::Node::GetInstance();
BlockSizePartitioner<RAIIn> partitioner_down(first, last, block_size); BlockSizePartitioner<RAIIn> partitioner_down(first, last, block_size);
Functor functor_down(0, partitioner_down.Size() - 1, output_iterator, Functor functor_down(0, partitioner_down.Size() - 1, output_iterator,
neutral, scan, transformation, policy, partitioner_down, neutral, scan, transformation, policy, partitioner_down,
values, 0, true); values, 0, true);
mtapi::Task task_down = node.Spawn(mtapi::Action(base::MakeFunction( embb::tasks::Task task_down = node.Spawn(embb::tasks::Action(
functor_down, &Functor::Action), base::MakeFunction(functor_down, &Functor::Action), policy));
policy));
task_down.Wait(MTAPI_INFINITE); task_down.Wait(MTAPI_INFINITE);
// Second pass. Gives to each leaf the part of the prefix missing // Second pass. Gives to each leaf the part of the prefix missing
...@@ -215,9 +214,8 @@ void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator, ...@@ -215,9 +214,8 @@ void ScanIteratorCheck(RAIIn first, RAIIn last, RAIOut output_iterator,
Functor functor_up(0, partitioner_up.Size() - 1, output_iterator, Functor functor_up(0, partitioner_up.Size() - 1, output_iterator,
neutral, scan, transformation, policy, partitioner_up, neutral, scan, transformation, policy, partitioner_up,
values, 0, false); values, 0, false);
mtapi::Task task_up = node.Spawn(mtapi::Action(base::MakeFunction( embb::tasks::Task task_up = node.Spawn(embb::tasks::Action(
functor_up, &Functor::Action), base::MakeFunction(functor_up, &Functor::Action), policy));
policy));
task_up.Wait(MTAPI_INFINITE); task_up.Wait(MTAPI_INFINITE);
} }
...@@ -227,7 +225,7 @@ template<typename RAIIn, typename RAIOut, typename ReturnType, ...@@ -227,7 +225,7 @@ template<typename RAIIn, typename RAIOut, typename ReturnType,
typename ScanFunction, typename TransformationFunction> typename ScanFunction, typename TransformationFunction>
void Scan(RAIIn first, RAIIn last, RAIOut output_iterator, ReturnType neutral, void Scan(RAIIn first, RAIIn last, RAIOut output_iterator, ReturnType neutral,
ScanFunction scan, TransformationFunction transformation, ScanFunction scan, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, size_t block_size) { const embb::tasks::ExecutionPolicy& policy, size_t block_size) {
typedef typename std::iterator_traits<RAIIn>::iterator_category category; typedef typename std::iterator_traits<RAIIn>::iterator_category category;
internal::ScanIteratorCheck(first, last, output_iterator, neutral, internal::ScanIteratorCheck(first, last, output_iterator, neutral,
scan, transformation, policy, block_size, category()); scan, transformation, policy, block_size, category());
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#define EMBB_ALGORITHMS_INVOKE_H_ #define EMBB_ALGORITHMS_INVOKE_H_
#include <embb/base/function.h> #include <embb/base/function.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
namespace embb { namespace embb {
namespace algorithms { namespace algorithms {
...@@ -89,15 +89,16 @@ template<typename Function> ...@@ -89,15 +89,16 @@ template<typename Function>
class TaskWrapper { class TaskWrapper {
public: public:
/** /**
* Wraps the function into an mtapi::Action and spawns an mtapi::Task. * Wraps the function into an embb::tasks::Action and spawns an
* embb::tasks::Task.
*/ */
explicit TaskWrapper( explicit TaskWrapper(
Function function, Function function,
const embb::mtapi::ExecutionPolicy& policy) const embb::tasks::ExecutionPolicy& policy)
: function_(function), task_() { : function_(function), task_() {
mtapi::Action action(embb::base::MakeFunction(*this, &TaskWrapper::Run), embb::tasks::Action action(embb::base::MakeFunction(*this, &TaskWrapper::Run),
policy); policy);
task_ = mtapi::Node::GetInstance().Spawn(action); task_ = embb::tasks::Node::GetInstance().Spawn(action);
} }
/** /**
...@@ -109,9 +110,9 @@ class TaskWrapper { ...@@ -109,9 +110,9 @@ class TaskWrapper {
private: private:
Function function_; Function function_;
mtapi::Task task_; embb::tasks::Task task_;
void Run(embb::mtapi::TaskContext&) { void Run(embb::tasks::TaskContext&) {
function_(); function_();
} }
}; };
...@@ -120,7 +121,7 @@ class TaskWrapper { ...@@ -120,7 +121,7 @@ class TaskWrapper {
template<typename Function1> template<typename Function1>
void Invoke( void Invoke(
Function1 func1, Function1 func1,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
} }
...@@ -128,7 +129,7 @@ template<typename Function1, typename Function2> ...@@ -128,7 +129,7 @@ template<typename Function1, typename Function2>
void Invoke( void Invoke(
Function1 func1, Function1 func1,
Function2 func2, Function2 func2,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
} }
...@@ -138,7 +139,7 @@ void Invoke( ...@@ -138,7 +139,7 @@ void Invoke(
Function1 func1, Function1 func1,
Function2 func2, Function2 func2,
Function3 func3, Function3 func3,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -151,7 +152,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -151,7 +152,7 @@ template<typename Function1, typename Function2, typename Function3,
Function2 func2, Function2 func2,
Function3 func3, Function3 func3,
Function4 func4, Function4 func4,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -166,7 +167,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -166,7 +167,7 @@ template<typename Function1, typename Function2, typename Function3,
Function3 func3, Function3 func3,
Function4 func4, Function4 func4,
Function5 func5, Function5 func5,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -183,7 +184,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -183,7 +184,7 @@ template<typename Function1, typename Function2, typename Function3,
Function4 func4, Function4 func4,
Function5 func5, Function5 func5,
Function6 func6, Function6 func6,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -203,7 +204,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -203,7 +204,7 @@ template<typename Function1, typename Function2, typename Function3,
Function5 func5, Function5 func5,
Function6 func6, Function6 func6,
Function7 func7, Function7 func7,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -225,7 +226,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -225,7 +226,7 @@ template<typename Function1, typename Function2, typename Function3,
Function6 func6, Function6 func6,
Function7 func7, Function7 func7,
Function8 func8, Function8 func8,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -249,7 +250,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -249,7 +250,7 @@ template<typename Function1, typename Function2, typename Function3,
Function7 func7, Function7 func7,
Function8 func8, Function8 func8,
Function9 func9, Function9 func9,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -276,7 +277,7 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -276,7 +277,7 @@ template<typename Function1, typename Function2, typename Function3,
Function8 func8, Function8 func8,
Function9 func9, Function9 func9,
Function10 func10, Function10 func10,
const embb::mtapi::ExecutionPolicy& policy) { const embb::tasks::ExecutionPolicy& policy) {
internal::TaskWrapper<Function1> wrap1(func1, policy); internal::TaskWrapper<Function1> wrap1(func1, policy);
internal::TaskWrapper<Function2> wrap2(func2, policy); internal::TaskWrapper<Function2> wrap2(func2, policy);
internal::TaskWrapper<Function3> wrap3(func3, policy); internal::TaskWrapper<Function3> wrap3(func3, policy);
...@@ -292,21 +293,21 @@ template<typename Function1, typename Function2, typename Function3, ...@@ -292,21 +293,21 @@ template<typename Function1, typename Function2, typename Function3,
template<typename Function1> template<typename Function1>
void Invoke( void Invoke(
Function1 func1) { Function1 func1) {
Invoke(func1, embb::mtapi::ExecutionPolicy()); Invoke(func1, embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2> template<typename Function1, typename Function2>
void Invoke( void Invoke(
Function1 func1, Function1 func1,
Function2 func2) { Function2 func2) {
Invoke(func1, func2, embb::mtapi::ExecutionPolicy()); Invoke(func1, func2, embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3> template<typename Function1, typename Function2, typename Function3>
void Invoke( void Invoke(
Function1 func1, Function1 func1,
Function2 func2, Function2 func2,
Function3 func3) { Function3 func3) {
Invoke(func1, func2, func3, embb::mtapi::ExecutionPolicy()); Invoke(func1, func2, func3, embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -316,7 +317,7 @@ void Invoke( ...@@ -316,7 +317,7 @@ void Invoke(
Function2 func2, Function2 func2,
Function3 func3, Function3 func3,
Function4 func4) { Function4 func4) {
Invoke(func1, func2, func3, func4, embb::mtapi::ExecutionPolicy()); Invoke(func1, func2, func3, func4, embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -327,7 +328,7 @@ void Invoke( ...@@ -327,7 +328,7 @@ void Invoke(
Function3 func3, Function3 func3,
Function4 func4, Function4 func4,
Function5 func5) { Function5 func5) {
Invoke(func1, func2, func3, func4, func5, embb::mtapi::ExecutionPolicy()); Invoke(func1, func2, func3, func4, func5, embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -340,7 +341,7 @@ void Invoke( ...@@ -340,7 +341,7 @@ void Invoke(
Function5 func5, Function5 func5,
Function6 func6) { Function6 func6) {
Invoke(func1, func2, func3, func4, func5, func6, Invoke(func1, func2, func3, func4, func5, func6,
embb::mtapi::ExecutionPolicy()); embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -355,7 +356,7 @@ void Invoke( ...@@ -355,7 +356,7 @@ void Invoke(
Function6 func6, Function6 func6,
Function7 func7) { Function7 func7) {
Invoke(func1, func2, func3, func4, func5, func6, func7, Invoke(func1, func2, func3, func4, func5, func6, func7,
embb::mtapi::ExecutionPolicy()); embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -371,7 +372,7 @@ void Invoke( ...@@ -371,7 +372,7 @@ void Invoke(
Function7 func7, Function7 func7,
Function8 func8) { Function8 func8) {
Invoke(func1, func2, func3, func4, func5, func6, func7, func8, Invoke(func1, func2, func3, func4, func5, func6, func7, func8,
embb::mtapi::ExecutionPolicy()); embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -388,7 +389,7 @@ void Invoke( ...@@ -388,7 +389,7 @@ void Invoke(
Function8 func8, Function8 func8,
Function9 func9) { Function9 func9) {
Invoke(func1, func2, func3, func4, func5, func6, func7, func8, func9, Invoke(func1, func2, func3, func4, func5, func6, func7, func8, func9,
embb::mtapi::ExecutionPolicy()); embb::tasks::ExecutionPolicy());
} }
template<typename Function1, typename Function2, typename Function3, template<typename Function1, typename Function2, typename Function3,
...@@ -407,7 +408,7 @@ void Invoke( ...@@ -407,7 +408,7 @@ void Invoke(
Function9 func9, Function9 func9,
Function10 func10) { Function10 func10) {
Invoke(func1, func2, func3, func4, func5, func6, func7, func8, func9, func10, Invoke(func1, func2, func3, func4, func5, func6, func7, func8, func9, func10,
embb::mtapi::ExecutionPolicy()); embb::tasks::ExecutionPolicy());
} }
#endif // else DOXYGEN #endif // else DOXYGEN
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#define EMBB_ALGORITHMS_MERGE_SORT_H_ #define EMBB_ALGORITHMS_MERGE_SORT_H_
#include <functional> #include <functional>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <embb/base/memory_allocation.h> #include <embb/base/memory_allocation.h>
namespace embb { namespace embb {
...@@ -149,7 +149,7 @@ void MergeSort( ...@@ -149,7 +149,7 @@ void MergeSort(
RAI last, RAI last,
RAITemp temporary_first, RAITemp temporary_first,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -161,7 +161,7 @@ void MergeSortAllocate( ...@@ -161,7 +161,7 @@ void MergeSortAllocate(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
) { ) {
typedef base::Allocation Alloc; typedef base::Allocation Alloc;
...@@ -200,7 +200,7 @@ void MergeSortAllocate( ...@@ -200,7 +200,7 @@ void MergeSortAllocate(
) { ) {
MergeSortAllocate(first, last, MergeSortAllocate(first, last,
std::less<typename std::iterator_traits<RAI>::value_type>(), std::less<typename std::iterator_traits<RAI>::value_type>(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -212,7 +212,7 @@ void MergeSortAllocate( ...@@ -212,7 +212,7 @@ void MergeSortAllocate(
RAI last, RAI last,
ComparisonFunction comparison ComparisonFunction comparison
) { ) {
MergeSortAllocate(first, last, comparison, embb::mtapi::ExecutionPolicy(), 0); MergeSortAllocate(first, last, comparison, embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -223,7 +223,7 @@ void MergeSortAllocate( ...@@ -223,7 +223,7 @@ void MergeSortAllocate(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
MergeSortAllocate(first, last, comparison, policy, 0); MergeSortAllocate(first, last, comparison, policy, 0);
} }
...@@ -239,7 +239,7 @@ void MergeSort( ...@@ -239,7 +239,7 @@ void MergeSort(
) { ) {
MergeSort(first, last, temporary_first, MergeSort(first, last, temporary_first,
std::less<typename std::iterator_traits<RAI>::value_type>(), std::less<typename std::iterator_traits<RAI>::value_type>(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -253,7 +253,7 @@ void MergeSort( ...@@ -253,7 +253,7 @@ void MergeSort(
ComparisonFunction comparison ComparisonFunction comparison
) { ) {
MergeSort(first, last, temporary_first, comparison, MergeSort(first, last, temporary_first, comparison,
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -265,7 +265,7 @@ void MergeSort( ...@@ -265,7 +265,7 @@ void MergeSort(
RAI last, RAI last,
RAITemp temporary_first, RAITemp temporary_first,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
MergeSort(first, last, temporary_first, comparison, policy, 0); MergeSort(first, last, temporary_first, comparison, policy, 0);
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#define EMBB_ALGORITHMS_QUICK_SORT_H_ #define EMBB_ALGORITHMS_QUICK_SORT_H_
#include <functional> #include <functional>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
namespace embb { namespace embb {
namespace algorithms { namespace algorithms {
...@@ -72,7 +72,7 @@ void QuickSort( ...@@ -72,7 +72,7 @@ void QuickSort(
\c a appears before an element \c b in the sorted range if \c a appears before an element \c b in the sorted range if
<tt>comparison(a, b) == true</tt>. The default value uses the <tt>comparison(a, b) == true</tt>. The default value uses the
less-than relation. */ less-than relation. */
const embb::mtapi::ExecutionPolicy& policy = embb::mtapi::ExecutionPolicy(), const embb::tasks::ExecutionPolicy& policy = embb::tasks::ExecutionPolicy(),
/**< [IN] embb::mtapi::ExecutionPolicy for the quick sort algorithm */ /**< [IN] embb::mtapi::ExecutionPolicy for the quick sort algorithm */
size_t block_size = 0 size_t block_size = 0
/**< [IN] Lower bound for partitioning the range of elements into blocks that /**< [IN] Lower bound for partitioning the range of elements into blocks that
...@@ -95,7 +95,7 @@ void QuickSort( ...@@ -95,7 +95,7 @@ void QuickSort(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -109,7 +109,7 @@ void QuickSort( ...@@ -109,7 +109,7 @@ void QuickSort(
) { ) {
QuickSort(first, last, QuickSort(first, last,
std::less<typename std::iterator_traits<RAI>::value_type>(), std::less<typename std::iterator_traits<RAI>::value_type>(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -121,7 +121,7 @@ void QuickSort( ...@@ -121,7 +121,7 @@ void QuickSort(
RAI last, RAI last,
ComparisonFunction comparison ComparisonFunction comparison
) { ) {
QuickSort(first, last, comparison, embb::mtapi::ExecutionPolicy(), 0); QuickSort(first, last, comparison, embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -132,7 +132,7 @@ void QuickSort( ...@@ -132,7 +132,7 @@ void QuickSort(
RAI first, RAI first,
RAI last, RAI last,
ComparisonFunction comparison, ComparisonFunction comparison,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
QuickSort(first, last, comparison, policy, 0); QuickSort(first, last, comparison, policy, 0);
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_REDUCE_H_ #ifndef EMBB_ALGORITHMS_REDUCE_H_
#define EMBB_ALGORITHMS_REDUCE_H_ #define EMBB_ALGORITHMS_REDUCE_H_
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <embb/algorithms/identity.h> #include <embb/algorithms/identity.h>
namespace embb { namespace embb {
...@@ -113,7 +113,7 @@ ReturnType Reduce( ...@@ -113,7 +113,7 @@ ReturnType Reduce(
ReturnType neutral, ReturnType neutral,
ReductionFunction reduction, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -128,7 +128,7 @@ ReturnType Reduce( ...@@ -128,7 +128,7 @@ ReturnType Reduce(
ReductionFunction reduction ReductionFunction reduction
) { ) {
return Reduce(first, last, neutral, reduction, Identity(), return Reduce(first, last, neutral, reduction, Identity(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -144,7 +144,7 @@ ReturnType Reduce( ...@@ -144,7 +144,7 @@ ReturnType Reduce(
TransformationFunction transformation TransformationFunction transformation
) { ) {
return Reduce(first, last, neutral, reduction, transformation, return Reduce(first, last, neutral, reduction, transformation,
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -158,7 +158,7 @@ ReturnType Reduce( ...@@ -158,7 +158,7 @@ ReturnType Reduce(
ReturnType neutral, ReturnType neutral,
ReductionFunction reduction, ReductionFunction reduction,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
return Reduce(first, last, neutral, reduction, transformation, policy, 0); return Reduce(first, last, neutral, reduction, transformation, policy, 0);
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#ifndef EMBB_ALGORITHMS_SCAN_H_ #ifndef EMBB_ALGORITHMS_SCAN_H_
#define EMBB_ALGORITHMS_SCAN_H_ #define EMBB_ALGORITHMS_SCAN_H_
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <embb/algorithms/identity.h> #include <embb/algorithms/identity.h>
namespace embb { namespace embb {
...@@ -121,7 +121,7 @@ void Scan( ...@@ -121,7 +121,7 @@ void Scan(
ReturnType neutral, ReturnType neutral,
ScanFunction scan, ScanFunction scan,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy, const embb::tasks::ExecutionPolicy& policy,
size_t block_size size_t block_size
); );
...@@ -138,7 +138,7 @@ void Scan( ...@@ -138,7 +138,7 @@ void Scan(
ScanFunction scan ScanFunction scan
) { ) {
Scan(first, last, output_iterator, neutral, scan, Identity(), Scan(first, last, output_iterator, neutral, scan, Identity(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -155,7 +155,7 @@ void Scan( ...@@ -155,7 +155,7 @@ void Scan(
TransformationFunction transformation TransformationFunction transformation
) { ) {
Scan(first, last, output_iterator, neutral, scan, transformation, Scan(first, last, output_iterator, neutral, scan, transformation,
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
} }
/** /**
...@@ -170,7 +170,7 @@ void Scan( ...@@ -170,7 +170,7 @@ void Scan(
ReturnType neutral, ReturnType neutral,
ScanFunction scan, ScanFunction scan,
TransformationFunction transformation, TransformationFunction transformation,
const embb::mtapi::ExecutionPolicy& policy const embb::tasks::ExecutionPolicy& policy
) { ) {
Scan(first, last, output_iterator, neutral, scan, transformation, policy, 0); Scan(first, last, output_iterator, neutral, scan, transformation, policy, 0);
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <count_test.h> #include <count_test.h>
#include <embb/algorithms/count.h> #include <embb/algorithms/count.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <deque> #include <deque>
#include <vector> #include <vector>
#include <functional> #include <functional>
...@@ -122,7 +122,7 @@ void CountTest::TestBlockSizes() { ...@@ -122,7 +122,7 @@ void CountTest::TestBlockSizes() {
void CountTest::TestPolicy() { void CountTest::TestPolicy() {
using embb::algorithms::Count; using embb::algorithms::Count;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
int a[] = { 10, 20, 30, 30, 20, 10, 10, 20, 20, 20 }; int a[] = { 10, 20, 30, 30, 20, 10, 10, 20, 20, 20 };
std::vector<int> vector(a, a + (sizeof a / sizeof a[0])); std::vector<int> vector(a, a + (sizeof a / sizeof a[0]));
PT_EXPECT_EQ(Count(vector.begin(), vector.end(), 10, ExecutionPolicy()), 3); PT_EXPECT_EQ(Count(vector.begin(), vector.end(), 10, ExecutionPolicy()), 3);
...@@ -134,7 +134,7 @@ void CountTest::TestPolicy() { ...@@ -134,7 +134,7 @@ void CountTest::TestPolicy() {
void CountTest::StressTest() { void CountTest::StressTest() {
using embb::algorithms::Count; using embb::algorithms::Count;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() *10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() * 10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
large_vector[i] = static_cast<int>(0); large_vector[i] = static_cast<int>(0);
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <for_each_test.h> #include <for_each_test.h>
#include <embb/algorithms/for_each.h> #include <embb/algorithms/for_each.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <vector> #include <vector>
#include <deque> #include <deque>
#include <sstream> #include <sstream>
...@@ -166,7 +166,7 @@ void ForEachTest::TestRanges() { ...@@ -166,7 +166,7 @@ void ForEachTest::TestRanges() {
void ForEachTest::TestBlockSizes() { void ForEachTest::TestBlockSizes() {
using embb::algorithms::ForEach; using embb::algorithms::ForEach;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
std::vector<int> vector(count); std::vector<int> vector(count);
...@@ -186,7 +186,7 @@ void ForEachTest::TestBlockSizes() { ...@@ -186,7 +186,7 @@ void ForEachTest::TestBlockSizes() {
void ForEachTest::TestPolicy() { void ForEachTest::TestPolicy() {
using embb::algorithms::ForEach; using embb::algorithms::ForEach;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
std::vector<int> vector(count); std::vector<int> vector(count);
...@@ -240,8 +240,8 @@ void ForEachTest::TestPolicy() { ...@@ -240,8 +240,8 @@ void ForEachTest::TestPolicy() {
void ForEachTest::StressTest() { void ForEachTest::StressTest() {
using embb::algorithms::ForEach; using embb::algorithms::ForEach;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() *10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() * 10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
large_vector[i] = static_cast<int>((i + 2) % 1000); large_vector[i] = static_cast<int>((i + 2) % 1000);
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
*/ */
#include <partest/partest.h> #include <partest/partest.h>
#include <embb/mtapi/mtapi.h> #include <embb/tasks/tasks.h>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
...@@ -66,7 +66,7 @@ int compute1_() { ...@@ -66,7 +66,7 @@ int compute1_() {
} }
PT_MAIN("Algorithms") { PT_MAIN("Algorithms") {
embb::mtapi::Node::Initialize(THIS_DOMAIN_ID, THIS_NODE_ID); embb::tasks::Node::Initialize(THIS_DOMAIN_ID, THIS_NODE_ID);
PT_RUN(PartitionerTest); PT_RUN(PartitionerTest);
PT_RUN(ForEachTest); PT_RUN(ForEachTest);
...@@ -78,7 +78,7 @@ PT_MAIN("Algorithms") { ...@@ -78,7 +78,7 @@ PT_MAIN("Algorithms") {
PT_RUN(MergeSortTest); PT_RUN(MergeSortTest);
PT_RUN(InvokeTest); PT_RUN(InvokeTest);
embb::mtapi::Node::Finalize(); embb::tasks::Node::Finalize();
PT_EXPECT(embb_get_bytes_allocated() == 0); PT_EXPECT(embb_get_bytes_allocated() == 0);
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <merge_sort_test.h> #include <merge_sort_test.h>
#include <embb/algorithms/merge_sort.h> #include <embb/algorithms/merge_sort.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <vector> #include <vector>
#include <deque> #include <deque>
#include <sstream> #include <sstream>
...@@ -50,7 +50,7 @@ MergeSortTest::MergeSortTest() { ...@@ -50,7 +50,7 @@ MergeSortTest::MergeSortTest() {
void MergeSortTest::TestDataStructures() { void MergeSortTest::TestDataStructures() {
using embb::algorithms::MergeSortAllocate; using embb::algorithms::MergeSortAllocate;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
int array[kCountSize]; int array[kCountSize];
std::vector<int> vector(kCountSize); std::vector<int> vector(kCountSize);
std::deque<int> deque(kCountSize); std::deque<int> deque(kCountSize);
...@@ -75,7 +75,7 @@ void MergeSortTest::TestDataStructures() { ...@@ -75,7 +75,7 @@ void MergeSortTest::TestDataStructures() {
void MergeSortTest::TestFunctionPointers() { void MergeSortTest::TestFunctionPointers() {
using embb::algorithms::MergeSortAllocate; using embb::algorithms::MergeSortAllocate;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
std::vector<int> vector(kCountSize); std::vector<int> vector(kCountSize);
for (size_t i = kCountSize - 1; i > 0; i--) { for (size_t i = kCountSize - 1; i > 0; i--) {
...@@ -158,7 +158,7 @@ void MergeSortTest::TestRanges() { ...@@ -158,7 +158,7 @@ void MergeSortTest::TestRanges() {
void MergeSortTest::TestBlockSizes() { void MergeSortTest::TestBlockSizes() {
using embb::algorithms::MergeSortAllocate; using embb::algorithms::MergeSortAllocate;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
std::vector<int> vector(count); std::vector<int> vector(count);
...@@ -181,7 +181,7 @@ void MergeSortTest::TestBlockSizes() { ...@@ -181,7 +181,7 @@ void MergeSortTest::TestBlockSizes() {
void MergeSortTest::TestPolicy() { void MergeSortTest::TestPolicy() {
using embb::algorithms::MergeSortAllocate; using embb::algorithms::MergeSortAllocate;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
std::vector<int> vector(count); std::vector<int> vector(count);
...@@ -242,7 +242,7 @@ void MergeSortTest::TestPolicy() { ...@@ -242,7 +242,7 @@ void MergeSortTest::TestPolicy() {
void MergeSortTest::StressTest() { void MergeSortTest::StressTest() {
using embb::algorithms::MergeSortAllocate; using embb::algorithms::MergeSortAllocate;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() * 10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() * 10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
std::vector<int> vector_copy(count); std::vector<int> vector_copy(count);
for (size_t i = count - 1; i > 0; i--) { for (size_t i = count - 1; i > 0; i--) {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <quick_sort_test.h> #include <quick_sort_test.h>
#include <embb/algorithms/quick_sort.h> #include <embb/algorithms/quick_sort.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <vector> #include <vector>
#include <deque> #include <deque>
#include <sstream> #include <sstream>
...@@ -54,7 +54,7 @@ QuickSortTest::QuickSortTest() { ...@@ -54,7 +54,7 @@ QuickSortTest::QuickSortTest() {
void QuickSortTest::TestDataStructures() { void QuickSortTest::TestDataStructures() {
using embb::algorithms::QuickSort; using embb::algorithms::QuickSort;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
int array[kCountSize]; int array[kCountSize];
std::vector<int> vector(kCountSize); std::vector<int> vector(kCountSize);
...@@ -163,7 +163,7 @@ void QuickSortTest::TestRanges() { ...@@ -163,7 +163,7 @@ void QuickSortTest::TestRanges() {
void QuickSortTest::TestBlockSizes() { void QuickSortTest::TestBlockSizes() {
using embb::algorithms::QuickSort; using embb::algorithms::QuickSort;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
...@@ -187,7 +187,7 @@ void QuickSortTest::TestBlockSizes() { ...@@ -187,7 +187,7 @@ void QuickSortTest::TestBlockSizes() {
void QuickSortTest::TestPolicy() { void QuickSortTest::TestPolicy() {
using embb::algorithms::QuickSort; using embb::algorithms::QuickSort;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
std::vector<int> vector(count); std::vector<int> vector(count);
...@@ -248,7 +248,7 @@ void QuickSortTest::TestPolicy() { ...@@ -248,7 +248,7 @@ void QuickSortTest::TestPolicy() {
void QuickSortTest::StressTest() { void QuickSortTest::StressTest() {
using embb::algorithms::QuickSort; using embb::algorithms::QuickSort;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() *10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() * 10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
std::vector<int> vector_copy(count); std::vector<int> vector_copy(count);
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <reduce_test.h> #include <reduce_test.h>
#include <embb/algorithms/reduce.h> #include <embb/algorithms/reduce.h>
#include <embb/mtapi/execution_policy.h> #include <embb/tasks/execution_policy.h>
#include <deque> #include <deque>
#include <vector> #include <vector>
#include <functional> #include <functional>
...@@ -163,7 +163,7 @@ void ReduceTest::TestBlockSizes() { ...@@ -163,7 +163,7 @@ void ReduceTest::TestBlockSizes() {
void ReduceTest::TestPolicy() { void ReduceTest::TestPolicy() {
using embb::algorithms::Reduce; using embb::algorithms::Reduce;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
using embb::algorithms::Identity; using embb::algorithms::Identity;
size_t count = 4; size_t count = 4;
int sum = 0; int sum = 0;
...@@ -210,9 +210,9 @@ void ReduceTest::TestPolicy() { ...@@ -210,9 +210,9 @@ void ReduceTest::TestPolicy() {
void ReduceTest::StressTest() { void ReduceTest::StressTest() {
using embb::algorithms::Reduce; using embb::algorithms::Reduce;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
using embb::algorithms::Identity; using embb::algorithms::Identity;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() *10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() * 10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
mtapi_int32_t expected = 0; mtapi_int32_t expected = 0;
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
......
...@@ -228,7 +228,7 @@ void ScanTest::TestRanges() { ...@@ -228,7 +228,7 @@ void ScanTest::TestRanges() {
void ScanTest::TestBlockSizes() { void ScanTest::TestBlockSizes() {
using embb::algorithms::Scan; using embb::algorithms::Scan;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
using embb::algorithms::Identity; using embb::algorithms::Identity;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
...@@ -253,7 +253,7 @@ void ScanTest::TestBlockSizes() { ...@@ -253,7 +253,7 @@ void ScanTest::TestBlockSizes() {
void ScanTest::TestPolicy() { void ScanTest::TestPolicy() {
using embb::algorithms::Scan; using embb::algorithms::Scan;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
using embb::algorithms::Identity; using embb::algorithms::Identity;
size_t count = 4; size_t count = 4;
std::vector<int> init(count); std::vector<int> init(count);
...@@ -324,8 +324,8 @@ void ScanTest::TestPolicy() { ...@@ -324,8 +324,8 @@ void ScanTest::TestPolicy() {
void ScanTest::StressTest() { void ScanTest::StressTest() {
using embb::algorithms::Scan; using embb::algorithms::Scan;
using embb::algorithms::Identity; using embb::algorithms::Identity;
using embb::mtapi::ExecutionPolicy; using embb::tasks::ExecutionPolicy;
size_t count = embb::mtapi::Node::GetInstance().GetCoreCount() *10; size_t count = embb::tasks::Node::GetInstance().GetCoreCount() *10;
std::vector<int> large_vector(count); std::vector<int> large_vector(count);
std::vector<int> large_vector_output(count); std::vector<int> large_vector_output(count);
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
......
...@@ -136,7 +136,7 @@ void ZipIteratorTest::TestZipScan() { ...@@ -136,7 +136,7 @@ void ZipIteratorTest::TestZipScan() {
Scan(embb::algorithms::Zip(vectorA.begin(), vectorB.begin()), Scan(embb::algorithms::Zip(vectorA.begin(), vectorB.begin()),
embb::algorithms::Zip(vectorA.end(), vectorB.end()), embb::algorithms::Zip(vectorA.end(), vectorB.end()),
vectorOut.begin(), 0, std::plus<int>(), DotProductFunctor(), vectorOut.begin(), 0, std::plus<int>(), DotProductFunctor(),
embb::mtapi::ExecutionPolicy(), 0); embb::tasks::ExecutionPolicy(), 0);
long sum = 0; long sum = 0;
for (size_t i = 0; i < kCountSize; i++) { for (size_t i = 0; i < kCountSize; i++) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment