Open hkaiser opened 9 years ago
@hkaiser exclusive_scan and inclusive_scan is not checked although these are already implemented.
@taeguk right, thanks for the heads-up. Should be fine now.
@hkaiser It seems that there are only two distributed data structures. (hpx::partitioned_vector
and hpx::unordered_map
). Is it right?
@hkaiser It seems that there are only two distributed data structures. ( hpx::partitioned_vector and hpx::unordered_map ). Is it right?
Yes. hpx::unordered_map
has no iterators implemented yet, however.
@hkaiser According to the issue progress tracker, transform_*_scan have been added with PR #2287 but it looks that only regular scans have been added there. I don't see transform scans in hpx/parallel/segmented_algorithms.
@mcopik Thanks, I fixed the list above.
Actually, copy_n already seems to work: https://github.com/brjsp/hpx/commit/694c72515f06dcc303468511d53ec0ae6825f5d0
Hi @hkaiser: Is the task list is most recent? Can I PR or is the ticket for internal folks?
@tapaswenipathak I think the list above reflects the current state. Please feel free to work on this! Also, please don't hesitate to ask, though - this might be slightly more complex than the average 'run of the mill' ticket. The iterative, non-modifying algorithms (equal
, mismatch
) might be a good starting point.
oh lol, ok. sure. thanks for specifying. 😄
The existing parallel algorithms should be extended to seamlessly work with distributed data structures like
hpx::partitioned_vector
. Unfortunately this requires additional code for each specific algorithms.For more information about the parallel algorithms already implemented see #1141.
Here is the list of algorithms mandated by N4310 which should be ported to the distributed case:
adjacent_difference
(see #2859, #3525)adjacent_find
(see #2859, #3525)all_of
any_of
none_of
(see #2859, #3525)copy
(see #1346)copy_n
copy_if
move
(see #2010)count
count_if
(see #1340)equal
mismatch
exclusive_scan
inclusive_scan
(see #2287)reduce
transform
(see #2725)fill
(#2202)fill_n
find
find_if
find_if_not
(see #2792)find_end
find_first_of
(see #2793)for_each
for_each_n
(see #2725)generate
(see #1968)generate_n
inner_product
inplace_merge
merge
is_heap
is_heap_until
is_partitioned
is_sorted
is_sorted_until
lexicographical_compare
max_element
min_element
minmax_element
(#1968)partial_sort
partial_sort_copy
partition
partition_copy
nth_element
sort
stable_partition
stable_sort
remove
remove_copy
remove_copy_if
remove_if
replace
replace_copy
replace_copy_if
replace_if
reverse
reverse_copy
rotate
rotate_copy
search
search_n
set_difference
set_intersection
set_symmetric_difference
set_union
includes
swap_ranges
uninitialized_copy
uninitialized_copy_n
uninitialized_fill
uninitialized_fill_n
unique
unique_copy
These were added by N4310:
transform_reduce
(see #1333, #2859, #3525)transform_exclusive_scan
transform_inclusive_scan
(see #2725)