17#include <hibf/misc/divide_and_ceil.hpp>
22template <
typename algorithm_t>
23void do_parallel(algorithm_t && worker,
size_t const num_records,
size_t const threads)
25 size_t const chunk_size = seqan::hibf::divide_and_ceil(num_records, threads * threads);
26 size_t const number_of_chunks = seqan::hibf::divide_and_ceil(num_records, chunk_size);
28#pragma omp parallel for schedule(dynamic) num_threads(threads)
29 for (
size_t i = 0; i < number_of_chunks; ++i)
31 size_t const start = chunk_size * i;
32 size_t const extent = i == (number_of_chunks - 1) ? num_records - i * chunk_size : chunk_size;