VTK-m merge requestshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests2021-01-04T11:39:56-05:00https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2332Tests stages with OpenMPI must use privileged docker runner2021-01-04T11:39:56-05:00Robert MaynardTests stages with OpenMPI must use privileged docker runnerhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2271Cell locators not virtual2021-04-08T12:02:54-04:00Kenneth MorelandCell locators not virtualDeprecated the `CellLocator` class and made all methods of the
other `CellLocator` classes non-virtual. General locators can
still use the `CellLocatorGeneral` class, but this class now
only works with a predefined set of locators. (The ...Deprecated the `CellLocator` class and made all methods of the
other `CellLocator` classes non-virtual. General locators can
still use the `CellLocatorGeneral` class, but this class now
only works with a predefined set of locators. (The functionality
to provide a function to select a locator has also been removed.)https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2184Improvements to moving data into ArrayHandle2020-10-27T17:39:56-04:00Kenneth MorelandImprovements to moving data into ArrayHandleWe have made several improvements to adding data into an `ArrayHandle`.
## Moving data from an `std::vector`
For numerous reasons, it is convenient to define data in a `std::vector`
and then wrap that into an `ArrayHandle`. It is often...We have made several improvements to adding data into an `ArrayHandle`.
## Moving data from an `std::vector`
For numerous reasons, it is convenient to define data in a `std::vector`
and then wrap that into an `ArrayHandle`. It is often the case that an
`std::vector` is filled and then becomes unused once it is converted to an
`ArrayHandle`. In this case, what we really want is to pass the data off to
the `ArrayHandle` so that the `ArrayHandle` is now managing the data and
not the `std::vector`.
C++11 has a mechanism to do this: move semantics. You can now pass
variables to functions as an "rvalue" (right-hand value). When something is
passed as an rvalue, it can pull state out of that variable and move it
somewhere else. `std::vector` implements this movement so that an rvalue
can be moved to another `std::vector` without actually copying the data.
`make_ArrayHandle` now also takes advantage of this feature to move rvalue
`std::vector`s.
There is a special form of `make_ArrayHandle` named `make_ArrayHandleMove`
that takes an rvalue. There is also a special overload of
`make_ArrayHandle` itself that handles an rvalue `vector`. (However, using
the explicit move version is better if you want to make sure the data is
actually moved.)
## Make `ArrayHandle` from initalizer list
A common use case for using `std::vector` (particularly in our unit tests)
is to quickly add an initalizer list into an `ArrayHandle`. Now you can
by simply passing an initializer list to `make_ArrayHandle`.
## Deprecated `make_ArrayHandle` with default shallow copy
For historical reasons, passing an `std::vector` or a pointer to
`make_ArrayHandle` does a shallow copy (i.e. `CopyFlag` defaults to `Off`).
Although more efficient, this mode is inherintly unsafe, and making it the
default is asking for trouble.
To combat this, calling `make_ArrayHandle` without a copy flag is
deprecated. In this way, if you wish to do the faster but more unsafe
creation of an `ArrayHandle` you should explicitly express that.
This requried quite a few changes through the VTK-m source (particularly in
the tests).
## Similar changes to `Field`
`vtkm::cont::Field` has a `make_Field` helper function that is similar to
`make_ArrayHandle`. It also features the ability to create fields from
`std::vector`s and C arrays. It also likewise had the same unsafe behavior
by default of not copying from the source of the arrays.
That behavior has similarly been depreciated. You now have to specify a
copy flag.
The ability to construct a `Field` from an initializer list of values has
also been added.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2174reproduce_ci_env now keeps the container src up to date when run2020-12-15T14:38:57-05:00Robert Maynardreproduce_ci_env now keeps the container src up to date when runFixes #543
Instead of having to rebuild the container image, each time
you run an image the current vtk-m source directory is copied
into the containerFixes #543
Instead of having to rebuild the container image, each time
you run an image the current vtk-m source directory is copied
into the containerhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2159Make tests that throw an STL exception fail2020-06-29T15:45:14-04:00Kenneth MorelandMake tests that throw an STL exception failIf a test throws any unexpected exception, the test is supposed to
detect that and fail. For the STL exceptions, the test failed to return
an error code. Fix that.If a test throws any unexpected exception, the test is supposed to
detect that and fail. For the STL exceptions, the test failed to return
an error code. Fix that.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2128United We Stand2020-06-17T12:34:58-04:00Li-Ta LoUnited We StandImplemented a one-pass, Divide and Conqur algorithm to calculate various statistical
moments. Only one call to Reduce is needed.Implemented a one-pass, Divide and Conqur algorithm to calculate various statistical
moments. Only one call to Reduce is needed.Robert MaynardRobert Maynardhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2109Image reader and writer structure2020-06-29T15:45:08-04:00Kenneth MorelandImage reader and writer structureMake several updates to the image readers
* Put the code for image readers and writers in `vtkm_io`.
* Updated the naming conventions to follow VTK-m
* Change the interface to match the VTK file readers/writers
* Simplified how pixel ty...Make several updates to the image readers
* Put the code for image readers and writers in `vtkm_io`.
* Updated the naming conventions to follow VTK-m
* Change the interface to match the VTK file readers/writers
* Simplified how pixel types are selectedhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2092Fix conversion warnings in benchmarks and examples2020-06-29T15:45:13-04:00Kenneth MorelandFix conversion warnings in benchmarks and examplesThese are caused when using 32-bit Id's. Although there are some
benchmarks that test for this, some code in benchmarking and examples is
not covered by them.These are caused when using 32-bit Id's. Although there are some
benchmarks that test for this, some code in benchmarking and examples is
not covered by them.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2091Mark pixel destructors as virtual to fix build error.2020-06-29T15:44:55-04:00Nick ThompsonMark pixel destructors as virtual to fix build error.@nadavi take a look, make sure I didn't do anything stupid here. . . .@nadavi take a look, make sure I didn't do anything stupid here. . . .https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2051Add an asan to our gitlab ci suite2020-06-29T15:45:11-04:00Robert MaynardAdd an asan to our gitlab ci suitehttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1773Refactor MakeTestDataSet into a separate library2019-08-23T17:18:09-04:00Robert MaynardRefactor MakeTestDataSet into a separate libraryInstead of having every test generate the functions inside this
massive file, build them only once.
Build times for clean build with just OpenMP:
- master: 7:55sec
- this: 7:37secInstead of having every test generate the functions inside this
massive file, build them only once.
Build times for clean build with just OpenMP:
- master: 7:55sec
- this: 7:37sechttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1488zfp support more handle types and removal of debug code paths2018-12-24T08:03:03-05:00Robert Maynardzfp support more handle types and removal of debug code pathshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1475Add vtkm::cont::Initialize.2018-12-13T12:02:00-05:00Allison Vacantialliepiper16@gmail.comAdd vtkm::cont::Initialize.Also:
- Removed vtkm::cont::make_DeviceAdapterIdFromName.
- The device names are stored in the runtime tracker and we want
to avoid making a hardcode list of them anywhere.
- Added RuntimeDeviceTracker::GetDeviceAdapterId(nam...Also:
- Removed vtkm::cont::make_DeviceAdapterIdFromName.
- The device names are stored in the runtime tracker and we want
to avoid making a hardcode list of them anywhere.
- Added RuntimeDeviceTracker::GetDeviceAdapterId(name) to replace
this functionality.
- Refactored CMake logic for unit tests
- Since we're now querying the device tracker for the names, they
cannot be all caps.
Closes #320https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1419Remove TryExecute from filters2018-10-25T15:23:51-04:00Kenneth MorelandRemove TryExecute from filtersNow that the dispatcher does its own TryExecute, filters do not need to
do that. This change requires all worklets called by filters to be able
to execute without knowing the device a priori.Now that the dispatcher does its own TryExecute, filters do not need to
do that. This change requires all worklets called by filters to be able
to execute without knowing the device a priori.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1256use openmp 4.02018-06-07T14:36:38-04:00Matt Larsenuse openmp 4.0Its not clear to me why we require openmp 4.5 so I am throwing this at the build systemIts not clear to me why we require openmp 4.5 so I am throwing this at the build systemhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/1048FloatPointReturnType is float if 'T' is < 32bytes instead of being double.2018-01-08T15:42:20-05:00Robert MaynardFloatPointReturnType is float if 'T' is < 32bytes instead of being double.Previously FloatPointReturnType would always be double for types that
are not float, which caused Int8/Int16 types to promote to double instead
of float.Previously FloatPointReturnType would always be double for types that
are not float, which caused Int8/Int16 types to promote to double instead
of float.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/786Properly install all the vtkm serial headers.2017-05-26T11:20:41-04:00Robert MaynardProperly install all the vtkm serial headers.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/695Enable ArrayHandleGroupVecVariable::GetPortalControl()2017-02-16T12:43:34-05:00Kenneth MorelandEnable ArrayHandleGroupVecVariable::GetPortalControl()Previously you could not get an array portal for
ArrayHandleGroupVecVariable in the control environment.
This change allows you to get portals in the control environment.
Also made some changes to printSummary_ArrayHandle that
allows yo...Previously you could not get an array portal for
ArrayHandleGroupVecVariable in the control environment.
This change allows you to get portals in the control environment.
Also made some changes to printSummary_ArrayHandle that
allows you to print ArrayHandleGroupVecVariable and other
arrays with strange values. Also using this to add some
diagnostics to the fancy array handle testing.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/662Make external faces more generic2017-02-16T10:28:59-05:00Kenneth MorelandMake external faces more genericUses the new reduce-by-key worklet and other
features to support all cell sets.
There is plenty of opportunity for optimizing
common special cases (like structured data
and sets with a single type with a single face
size).Uses the new reduce-by-key worklet and other
features to support all cell sets.
There is plenty of opportunity for optimizing
common special cases (like structured data
and sets with a single type with a single face
size).https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/585Refactor vtk-m symbol visibility macros to be on the classes.2016-11-07T10:48:27-05:00Robert MaynardRefactor vtk-m symbol visibility macros to be on the classes.Instead of labeling each method that needs to have visibility
we can label entire classes, this reduces the amount of noise and
potential for mistakes when writing classes.Instead of labeling each method that needs to have visibility
we can label entire classes, this reduces the amount of noise and
potential for mistakes when writing classes.