2019-04-16 18:12:37 +00:00
|
|
|
VTKm License Version 1.4
|
2014-02-10 18:59:15 +00:00
|
|
|
========================================================================
|
|
|
|
|
2019-04-16 18:12:37 +00:00
|
|
|
Copyright (c) 2014-2019
|
|
|
|
Kitware Inc.,
|
2017-09-20 21:33:44 +00:00
|
|
|
National Technology & Engineering Solutions of Sandia, LLC (NTESS),
|
2019-04-16 18:12:37 +00:00
|
|
|
UT-Battelle, LLC.,
|
|
|
|
Los Alamos National Security, LLC.,
|
2014-02-10 18:59:15 +00:00
|
|
|
All rights reserved.
|
|
|
|
|
2017-09-20 21:33:44 +00:00
|
|
|
Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government
|
|
|
|
retains certain rights in this software.
|
2014-02-10 18:59:15 +00:00
|
|
|
|
|
|
|
Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National
|
|
|
|
Laboratory (LANL), the U.S. Government retains certain rights in
|
|
|
|
this software.
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
modification, are permitted provided that the following conditions are
|
|
|
|
met:
|
|
|
|
|
|
|
|
* Redistributions of source code must retain the above copyright
|
|
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
|
|
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
|
|
notice, this list of conditions and the following disclaimer in the
|
|
|
|
documentation and/or other materials provided with the
|
|
|
|
distribution.
|
|
|
|
|
|
|
|
* Neither the name of Kitware nor the names of any contributors may
|
|
|
|
be used to endorse or promote products derived from this software
|
|
|
|
without specific prior written permission.
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
|
|
|
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
|
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
|
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
|
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
|
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
|
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
========================================================================
|
|
|
|
|
|
|
|
The following files and directories come from third parties. Check the
|
|
|
|
contents of these for details on the specifics of their respective
|
|
|
|
licenses.
|
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - do not remove this line
|
2015-05-29 14:38:28 +00:00
|
|
|
CMake/FindTBB.cmake
|
2017-01-26 17:02:04 +00:00
|
|
|
Utilities
|
2015-05-29 14:38:28 +00:00
|
|
|
vtkm/cont/tbb/internal/parallel_sort.h
|
CPU parallel radix sorting
Parallel radix sorting will be invoked in DeviceAdapterAlgorthmTBB.h when
the input is ArrayHandle<T, vtkm::cont::StorageTagBasic> where T is one of
the following basic C++ types:
unsigned int
unsigned short int
unsigned long int
unsigned long long int
unsigned char
char16_t
char32_t
wchar_t
char
short
int
long long
signed char
float
double
If a comparison operator is provided, it must be type std::less<T> or std::greater<T>.
Radix sort implementation is Satish parallel radix sort as documented in the
following citation:
Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort.
N. Satish, C. Kim, J. Chhugani, A. D. Nguyen, V. W. Lee, D. Kim, and P. Dubey.
In Proc. SIGMOD, pages 351–362, 2010
Implementation is based on Takuya Akiba's GitHub source code with the following
changes:
- Changed parallel threading from OpenMP to TBB tasks
- Removed pair sorting
- Added minimum threshold for parallel, will instead invoke serial radix sort (kxsort)
- Added std::greater<T> and std::less<T> to interface for descending order sorts
- Added can_use_parallel_radix_sort<T, F>() function to determine if parallel radix sorting
is possible for type T and compare function F (fallback is std::sort() if not possible)
- Added linear scaling of threads used by the algorithm for more stable performance
on machines with lots of available threads (KNL and Haswell)
Added kxsort (serial MSD radix sort by Dinghua Li via GitHub) implementation without modification.
2018-01-10 14:28:21 +00:00
|
|
|
vtkm/cont/tbb/internal/parallel_radix_sort_tbb.h
|
|
|
|
vtkm/cont/tbb/internal/kxsort.h
|
2019-02-10 10:02:57 +00:00
|
|
|
vtkm/thirdparty
|
2017-01-26 17:02:04 +00:00
|
|
|
vtkm/internal/brigand.hpp
|
2017-01-26 18:02:51 +00:00
|
|
|
version.txt
|