/usr/include/stxxl/bits/algo
NameSizeModeActions
adaptor.h64440644editdlrm
async_schedule.h23450644editdlrm
inmemsort.h20660644editdlrm
intksort.h91840644editdlrm
ksort.h367030644editdlrm
losertree.h76460644editdlrm
random_shuffle.h133570644editdlrm
run_cursor.h30740644editdlrm
scan.h109880644editdlrm
sort.h344360644editdlrm
sort_base.h14180644editdlrm
sort_helper.h49020644editdlrm
stable_ksort.h186050644editdlrm
Edit: /usr/include/stxxl/bits/algo/async_schedule.h (2345B)
/*************************************************************************** * include/stxxl/bits/algo/async_schedule.h * * Part of the STXXL. See http://stxxl.sourceforge.net * * Copyright (C) 2002 Roman Dementiev * Copyright (C) 2009 Andreas Beckmann * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) **************************************************************************/ #ifndef STXXL_ALGO_ASYNC_SCHEDULE_HEADER #define STXXL_ALGO_ASYNC_SCHEDULE_HEADER // Implements the "prudent prefetching" as described in // D. Hutchinson, P. Sanders, J. S. Vitter: Duality between prefetching // and queued writing on parallel disks, 2005 // DOI: 10.1137/S0097539703431573 #include #include #include STXXL_BEGIN_NAMESPACE void compute_prefetch_schedule( const int_type* first, const int_type* last, int_type* out_first, int_type m, int_type D); inline void compute_prefetch_schedule( int_type* first, int_type* last, int_type* out_first, int_type m, int_type D) { compute_prefetch_schedule(static_cast(first), last, out_first, m, D); } template void compute_prefetch_schedule( const RunType& input, int_type* out_first, int_type m, int_type D) { const int_type L = input.size(); simple_vector disks(L); for (int_type i = 0; i < L; ++i) disks[i] = input[i].bid.storage->get_device_id(); compute_prefetch_schedule(disks.begin(), disks.end(), out_first, m, D); } template void compute_prefetch_schedule( BidIteratorType input_begin, BidIteratorType input_end, int_type* out_first, int_type m, int_type D) { const int_type L = input_end - input_begin; simple_vector disks(L); int_type i = 0; for (BidIteratorType it = input_begin; it != input_end; ++it, ++i) disks[i] = it->storage->get_device_id(); compute_prefetch_schedule(disks.begin(), disks.end(), out_first, m, D); } STXXL_END_NAMESPACE #endif // !STXXL_ALGO_ASYNC_SCHEDULE_HEADER // vim: et:ts=4:sw=4