asherliu / thrust

Automatically exported from code.google.com/p/thrust
Apache License 2.0
0 stars 0 forks source link

Document subtle differences between thrust & STL semantics #388

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Here's a non-exhaustive list:

for_each_n's existence
for_each's return type
zip_iterator equality

Original issue reported on code.google.com by jaredhoberock on 6 Oct 2011 at 11:15

GoogleCodeExporter commented 8 years ago
purpose of host_vector, device_vector and {omp,cuda,cpp}::vector
existence of wrapped references
existence of device_ptr
reduce requires associativity and commutativity (std::accumulate does not)

could also mention that the *current* implementations of some algos requires 
data types to have default constructors and trivial copy constructors

Original comment by wnbell on 6 Oct 2011 at 11:31

GoogleCodeExporter commented 8 years ago
host/cpp algorithms have parallel semantics, but *current* implementation is 
serial

Original comment by jaredhoberock on 6 Oct 2011 at 11:35

GoogleCodeExporter commented 8 years ago
presence of thrust::minimum and thrust::maximum

Original comment by wnbell on 11 Oct 2011 at 12:47

GoogleCodeExporter commented 8 years ago
presence of key-value algorithms (e.g. sort_by_key)
generalization of some algorithms to accept stencil sequences

Original comment by wnbell on 12 Oct 2011 at 1:47

GoogleCodeExporter commented 8 years ago
presence of stable_partition_copy

Original comment by jaredhoberock on 13 Oct 2011 at 7:14

GoogleCodeExporter commented 8 years ago
interpretation of get_temporary_buffer's result

Original comment by jaredhoberock on 18 Oct 2011 at 6:52

GoogleCodeExporter commented 8 years ago
what thrust::detail means

Original comment by jaredhoberock on 28 Oct 2011 at 12:41

GoogleCodeExporter commented 8 years ago
existence of reduce() and inner_product() variants with implicit initial values 
(zero)

Original comment by wnbell on 8 Nov 2011 at 10:51

GoogleCodeExporter commented 8 years ago
what an experimental namespace implies

Original comment by jaredhoberock on 23 Jan 2012 at 11:00

GoogleCodeExporter commented 8 years ago
non existence of non-parallel-friendly data structures such as map, list, etc.

Original comment by jaredhoberock on 7 Feb 2012 at 12:12

GoogleCodeExporter commented 8 years ago
I've added a page which captures most of the important differences:

http://code.google.com/p/thrust/wiki/ThrustVersusStandardLibrary

The other details should probably be noted in the more fine-grained doxygen 
documentation. I've added an issue to do them in 1.7.

Original comment by jaredhoberock on 7 Feb 2012 at 10:57