Go to file
Kenneth Moreland c16236ce69 Use ArrayRangeCompute without specifying a device
Most uses of ArrayRangeCompute just want to get the range of the data
and probably don't have a particular device in mind. Thus, it is better
to use a TryExecute internally use whatever devices are available.

Note that when using TryExecute, the calling code is expected to be able
to support all devices. That might not always be the case. Thus, I am
experimenting a bit with how we incorporate this in a library. The
advantage of having the code compiled in a library is that you only have
to compile it once and the calling code does not need to worry about
CUDA, etc.

However, because ArrayRangeCompute is templated, we can only pre-compile
some subset of array handle types. The most common are compiled into the
code (matching all the predefined ArrayHandles as well as some special
cases). If the code wants to use some other type, it has to include
ArrayRangeCompute.hxx. The only place where this is necessary is a test
that intentially trys to find the range on an uncommon type.

If array portals were to support virtual methods, then we should be able
to modify this code so that we could precompile for all array handle
types.
2017-03-09 13:18:36 -05:00
CMake Use ArrayRangeCompute without specifying a device 2017-03-09 13:18:36 -05:00
data Add in support for Git LFS to vtk-m. 2017-01-19 14:20:14 -05:00
docs Remove exports for header-only functions/methods 2016-11-15 22:22:13 -07:00
examples examples: ensure cleanup occurs before main ends. 2017-02-15 10:32:20 -08:00
Utilities/Git Add ability to get VTK-m version from git 2017-01-26 10:02:04 -07:00
vtkm Use ArrayRangeCompute without specifying a device 2017-03-09 13:18:36 -05:00
.gitattributes Add in support for Git LFS to vtk-m. 2017-01-19 14:20:14 -05:00
CMakeLists.txt Merge branch 'use_usage_requirements' into 'master' 2017-01-27 17:36:16 -05:00
CONTRIBUTING.md Add a contributing guide to vtk-m. 2015-07-29 17:33:30 -04:00
CTestConfig.cmake Switch over to uploading by https as that is required by cdash. 2016-02-23 14:03:52 -05:00
CTestCustom.cmake.in Lossen the CTestCustom regexes 2016-03-18 13:46:31 -04:00
LICENSE.txt Add license exception to version.txt 2017-01-26 11:02:51 -07:00
README.md Update the documentation to reflect we don't require boost. 2016-10-21 08:41:22 -04:00
version.txt Add warning if git version disagrees with version.txt 2017-01-26 10:08:45 -07:00

VTK-m

One of the biggest recent changes in high-performance computing is the increasing use of accelerators. Accelerators contain processing cores that independently are inferior to a core in a typical CPU, but these cores are replicated and grouped such that their aggregate execution provides a very high computation rate at a much lower power. Current and future CPU processors also require much more explicit parallelism. Each successive version of the hardware packs more cores into each processor, and technologies like hyperthreading and vector operations require even more parallel processing to leverage each cores full potential.

VTK-m is a toolkit of scientific visualization algorithms for emerging processor architectures. VTK-m supports the fine-grained concurrency for data analysis and visualization algorithms required to drive extreme scale computing by providing abstract models for data and execution that can be applied to a variety of algorithms across many different processor architectures.

Getting VTK-m

The VTK-m repository is located at https://gitlab.kitware.com/vtk/vtk-m

VTK-m required dependencies are:

VTK-m optional dependencies are:

git clone https://gitlab.kitware.com/vtk/vtk-m.git vtkm
mkdir vtkm-build
cd vtkm-build
cmake-gui ../vtkm

A detailed walk-through of installing and building VTK-m can be found on our Contributing page