README.md 4.48 KB
Newer Older
1
# VTK-m #
2

3 4 5 6 7 8
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.
9

10
You can find out more about the design of VTK-m on the [VTK-m Wiki].
11 12


13
## Learning Resources ##
14

15 16 17
  + A high-level overview is given in the IEEE Vis talk "[VTK-m:
    Accelerating the Visualization Toolkit for Massively Threaded
    Architectures][VTK-m Overview]."
18

19 20 21 22 23 24 25 26 27 28 29
  + The [VTK-m Users Guide] provides extensive documentation. It is broken
    into multiple parts for learning and references at multiple different
    levels.
      + "Part 1: Getting Started" provides the introductory instruction for
        building VTK-m and using its high-level features.
      + "Part 2: Using VTK-m" covers the core fundamental components of
        VTK-m including data model, worklets, and filters.
      + "Part 3: Developing with VTK-m" covers how to develop new worklets
        and filters.
      + "Part 4: Advanced Development" covers topics such as new worklet
        types and custom device adapters.
30

31
  + Community discussion takes place on the [VTK-m users email list].
32

33 34
  + Doxygen-generated nightly reference documentation is available
    [online][VTK-m Doxygen].
35

36

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
## Contributing ##

There are many ways to contribute to [VTK-m], with varying levels of
effort.

  + Ask a question on the [VTK-m users email list].

  + Submit new or add to discussions of a feature requests or bugs on the
    [VTK-m Issue Tracker].

  + Submit a Pull Request to improve [VTK-m]
      + See [CONTRIBUTING.md] for detailed instructions on how to create a
        Pull Request.
      + See the [VTK-m Coding Conventions] that must be followed for
        contributed code.

  + Submit an Issue or Pull Request for the [VTK-m Users Guide]
54 55


56 57 58 59 60 61 62 63 64 65 66 67
## Dependencies ##

VTK-m Requires:

  + C++11 Compiler. VTK-m has been confirmed to work with the following
      + GCC 4.8+
      + Clang 3.3+
      + XCode 5.0+
      + MSVC 2013+
  + [CMake](http://www.cmake.org/download/)
      + CMake 3.3+ (for any build)
      + CMake 3.9+ (for CUDA build)
68

69 70
Optional dependencies are:

71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
  + CUDA Device Adapter
      + [Cuda Toolkit 7+](https://developer.nvidia.com/cuda-toolkit)
  + TBB Device Adapter
      + [TBB](https://www.threadingbuildingblocks.org/)
  + OpenGL Rendering
      + The rendering module contains multiple rendering implementations
        including standalone rendering code. The rendering module also
        includes (optionally built) OpenGL rendering classes.
      + The OpenGL rendering classes require that you have a extension
        binding library and one rendering library. A windowing library is
        not needed expect for some optional tests.
  + Extension Binding
      + [GLEW](http://glew.sourceforge.net/)
  + Rendering Canvas
      + OpenGL Driver (See your GPU/iGPU vendor)
86
  + Windowing/Contexts
87 88 89 90 91
      + EGL (See your GPU/iGPU vendor)
      + [OSMesa](https://www.mesa3d.org/osmesa.html)
      + [GLFW](http://www.glfw.org/)
      + [GLUT](http://freeglut.sourceforge.net/)

92

93
## Building ##
94

95 96 97 98
VTK-m supports all majors platforms (Windows, Linux, OSX), and uses CMake
to generate all the build rules for the project. The VTK-m source code is
available from the [VTK-m download page] or by directly cloning the [VTK-m
git repository].
99 100 101 102 103 104 105 106 107 108

```
$ git clone https://gitlab.kitware.com/vtk/vtk-m.git
$ mkdir vtkm-build
$ cd vtkm-build
$ cmake-gui ../vtk-m
$ make -j<N>
$ make test
```

109 110 111 112 113
A more detailed description of building VTK-m is available in the [VTK-m
Users Guide].


## License ##
114 115 116 117 118

VTK-m is distributed under the OSI-approved BSD 3-clause License.
See [LICENSE.txt](LICENSE.txt) for details.


119 120 121 122 123 124 125 126 127 128 129
[VTK-m]:                    https://gitlab.kitware.com/vtk/vtk-m/
[VTK-m Coding Conventions]: docs/CodingConventions.md
[VTK-m Doxygen]:            http://m.vtk.org/documentation/
[VTK-m download page]:      http://m.vtk.org/index.php/VTK-m_Releases
[VTK-m git repository]:     https://gitlab.kitware.com/vtk/vtk-m/
[VTK-m Issue Tracker]:      https://gitlab.kitware.com/vtk/vtk-m/issues
[VTK-m Overview]:           http://m.vtk.org/images/2/29/VTKmVis2016.pptx 
[VTK-m Users Guide]:        http://m.vtk.org/images/c/c8/VTKmUsersGuide.pdf
[VTK-m users email list]:   http://vtk.org/mailman/listinfo/vtkm
[VTK-m Wiki]:               http://m.vtk.org/
[CONTRIBUTING.md]:          CONTRIBUTING.md