Commit 8bd99b38 authored by Robert Maynard's avatar Robert Maynard
Browse files

Cleanup the documentation for VTK-m

parent 3a36b28a
Welcome to vtkm design and hackathon.
## VTK-m ##
Resources:
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 core’s full potential.
EAVL: https://github.com/jsmeredith/EAVL
DAX: https://github.com/Kitware/DaxToolkit
PISTON: http://viz.lanl.gov/projects/PISTON.html
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 [http://public.kitware.com/gitweb?p=vtkm.git](http://public.kitware.com/gitweb?p=vtkm.git)
VTK-m dependencies are:
+ [CMake 3.0](http://www.cmake.org/download/)
+ [Boost 1.52.0](http://www.boost.org) or greater
+ [Cuda Toolkit 6+](https://developer.nvidia.com/cuda-toolkit) or [Thrust 1.7+](https://thrust.github.com)
```
git clone git://public.kitware.com/vtkm.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](http://m.vtk.org/index.php/Contributing_to_VTK-m)
### Design Decisions ###
A quick list of where the primary classes that will go into VTKM.
High level classes:
+ vtkm::vtkAllocators [ dax ]
+ vtkm::vtkMappedDataSets [ dax ]
+ vtkm::Filters [ eavl ]
+ pistons halo finder
+ vtkm::Mutators [ eavl ] + additive fields
+ vtkm::OpenGLInterop [ dax + piston ]
Mid level:
+ vtkm::ArrayHandle [dax]
+ dynamic info from eavl
+ vtkm::CellSet [eavl]
+ Includes the Explicit and Implicit versions
+ vtkm::DataSet [eavl]
+ Holds a Coordinate field
+ Holds a collection of CellSets
+ Holds a collection of array handles as fields
Low level:
+ vtkm::DeviceAdapter [dax]
+ vtkm::DeviceAdapterGeneral [dax]
+ vtkm::TopologyMap [eavl]
+ vtkm::WorkletConcept [ eavl + dax ]
A quick list of what the final design of vtkm should look like:
Code Layout:
```
vtkm/
cont/
datamodel/
filters/
- vtkm::cont::ArrayHandle
- vtkm::cont::CellSet
- vtkm::cont::DataSet
interop/
- OpenGL interop classes
- VTK interop classes
cuda/
filters/
- vtkm::filter::ThresholdFilter
- vtkm::filter::ContourFilter
- Mutators?
exec/
worklets/
cuda/
worklets/
- vtkm::worklet::WorkletMapField
- vtkm::worklet::WorkletMapCell
```
Poster & Presentation:
Things that we want to do.
Things that we are going to do.
What would we call it?
dynamic vs templates interfacing.
The pull between insitu and general purpose library, where we want
high performance
foundation / groundwork / experimental work
What are the different layers that each project fills
[dax] - [eavl]
[filter] - []
[worklet] -
Todo:
1. Dynamic Arrays with tuple(s)
2. Sum of a cell set.
3. [Rob] Create the basic layout with and get the basic concrete array handle
to compile with nothing else.
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment