vtk-m/LICENSE.txt
Thomas Otahal 250888f7af 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 07:28:21 -07:00

83 lines
2.8 KiB
Plaintext

VTKm License Version 1.0
========================================================================
Copyright (c) 2014,
National Technology & Engineering Solutions of Sandia, LLC (NTESS),
Los Alamos National Security, LLC., UT-Battelle, LLC., Kitware Inc.,
University of California Davis
All rights reserved.
Sandia National Laboratories, New Mexico
PO Box 5800
Albuquerque, NM 87185
USA
UT-Battelle
1 Bethel Valley Rd
Oak Ridge, TN 37830
Los Alamos National Security, LLC
105 Central Park Square
Los Alamos, NM 87544
Kitware Inc.
28 Corporate Drive
Clifton Park, NY 12065
USA
University of California, Davis
One Shields Avenue
Davis, CA 95616
USA
Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government
retains certain rights in this software.
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
CMake/FindTBB.cmake
CMake/FindGLEW.cmake
Utilities
vtkm/cont/tbb/internal/parallel_sort.h
vtkm/cont/tbb/internal/parallel_radix_sort_tbb.h
vtkm/cont/tbb/internal/kxsort.h
vtkm/testing/OptionParser.h
vtkm/internal/brigand.hpp
version.txt