Commit Graph

799 Commits

Author SHA1 Message Date
Dave Pugmire
a4ce505d5f Use std::atomic for this->Done. 2020-11-20 09:25:16 -05:00
Dave Pugmire
c3fa3d43b1 Undo changes to the cmakelists 2020-11-19 15:24:36 -05:00
Dave Pugmire
2fec7a79c3 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into threaded_particleAdvection 2020-11-19 15:23:17 -05:00
Dave Pugmire
5f86dfc941 Code cleanup.... 2020-11-19 14:19:26 -05:00
Dave Pugmire
173c14b086 Add new files to cmakelists 2020-11-19 13:55:27 -05:00
Dave Pugmire
79d840a24f refactor classes. Put in different files. 2020-11-19 13:52:01 -05:00
Dave Pugmire
55f9d24983 Update class inheritance, etc. 2020-11-19 12:42:54 -05:00
Robert Maynard
7eaedfe84b Reduce compiler memory usage by removing auto hxx inclusion
A large portion of the VTK-m filters are now compiled into the
vtkm_filter library. These pre-built filters now don't include
the respective hxx file to remove the amount of template
instantiation users do.

To verify that this removal reduces compiler memory ( and maybe time)
I profiled the compiler while it building filter tests in debug mode.
Here is a selection of results:

```
CleanGrid           10.25s => 9.01s,  901MB => 795MB
ExternalFaces       13.40s => 5.96s, 1122MB => 744MB
ExtractStructured    4.69s => 4.75s,  492MB => 492MB
GradientExplicit    22.97s => 5.88s, 1296MB => 740MB
```
2020-11-19 09:59:25 -05:00
Dave Pugmire
3dc1237881 Fix compile warning. 2020-11-19 09:28:29 -05:00
Dave Pugmire
02e37db863 Fix compile error. 2020-11-18 21:23:06 -05:00
Dave Pugmire
7a4b2ff0c5 Threaded algorithms for particle advection 2020-11-18 17:10:28 -05:00
Vicente Adolfo Bolea Sanchez
f3db116c64 Clip: Split instantiations of its derivated filters
- It explicitly instantiate its concrete templates to
  the supported types.
- It disables implicit template instantations for the
  the supported types.
- Also fix small typo in Contour impl include guards

Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2020-11-11 11:14:10 -05:00
Kenneth Moreland
7d681fb585 Deprecate templated versions of Field::GetRange
Instead, always use precompiled versions of range computing. This means
you won't be able to specify the type. Currently, types are limited to
scalars vecs up to size 4.

The main motivation for this change is to allow you to include Field.h
with a non-device compiler. This is an important feature for our
customers.

I plan in the future to implement a mechanism to pull out a component of
most ArrayHandle's as a single array. This would enable us to support a
precompiled version that can compute the range of arbitrarily sized
Vecs.
2020-11-09 12:28:29 -07:00
Dave Pugmire
f4fdc5e183 MPI testing update. 2020-11-05 16:04:48 -05:00
Dave Pugmire
c0e07e845f remove print statements. 2020-11-05 16:01:55 -05:00
Dave Pugmire
ed790afd8d debug for dashboards 2020-11-05 15:49:38 -05:00
Dave Pugmire
b57ffb30ae Add parallel AMR streamline test. 2020-11-05 15:34:11 -05:00
Dave Pugmire
f93ddfee9d Re-enable the other SL tests. 2020-11-05 14:30:54 -05:00
Dave Pugmire
6663d348b7 Add tests for AMR-like grids for streamline 2020-11-05 14:25:58 -05:00
Dave Pugmire
02f73fce1b Compiler warnings. 2020-11-02 21:39:24 -05:00
Dave Pugmire
f876a2ceec Structured ONLY in LS filter. 2020-11-02 17:44:18 -05:00
Dave Pugmire
4517201676 Fix testing for both SL and PA 2020-11-02 17:35:13 -05:00
Dave Pugmire
fb72ab097b Add tests for all datasetypes for 3D 2020-11-02 17:23:42 -05:00
Dave Pugmire
699dbae5ca compile warning and fix to PA test. 2020-11-02 17:16:37 -05:00
Dave Pugmire
4d6776cd16 Update filter test to use all data types. 2020-11-02 17:07:22 -05:00
Dave Pugmire
c0189982ac Messed up the merge. 2020-11-02 16:31:23 -05:00
Dave Pugmire
a7f049ac1a Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into ghost_streamlines 2020-11-02 16:28:57 -05:00
Dave Pugmire
0bd0b0c5a7 Remove PA tests (moved into SL) 2020-11-02 16:26:14 -05:00
Dave Pugmire
467ad88d06 Move PA tests into Streamline 2020-11-02 16:25:38 -05:00
Dave Pugmire
2a916ebc0f remove debug prints. 2020-10-28 09:11:00 -04:00
Dave Pugmire
722479ea10 Add different dataset types to MPI test. 2020-10-27 22:12:45 -04:00
Dave Pugmire
047bd93d5a Fix compile error 2020-10-27 14:27:34 -04:00
Dave Pugmire
5294bd2045 remove print statements. 2020-10-27 13:54:32 -04:00
Dave Pugmire
098edff0a8 Add multiple dataset types for streamline and pathline. 2020-10-27 13:43:00 -04:00
Dave Pugmire
dedf4d7a7d fix compile error. 2020-10-26 16:36:26 -04:00
Dave Pugmire
c592095f75 fix compile warnings. 2020-10-26 15:59:38 -04:00
Dave Pugmire
e8dc7e0eee Add more dataset types for testing. 2020-10-26 15:49:58 -04:00
Dave Pugmire
dbe9e17882 Add helper functions for generating datasets. 2020-10-26 13:45:47 -04:00
Dave Pugmire
eb76dff8d2 Support for ghost cells in P.A. filter 2020-10-26 12:39:31 -04:00
Kenneth Moreland
0b1c48a3ee Identify number of partitions in filter execution
When you execute a filter, the default behavior is to do the execution
on each partition of the data set independently. This code path is
followed even for non-partitioned data; the `DataSet` is wrapped in a
`PartitionedDataSet` of one partition.

Make performance logging a bit more clear by only giving one scoped log
for a basic `DataSet` and recording the number of partitions executed in
the log.
2020-10-26 09:00:09 -06:00
Dave Pugmire
b041891b5d Fix bad index in a unit test. 2020-10-23 22:46:47 -04:00
Dave Pugmire
6e42c4fe31 remove unused function. 2020-10-23 22:43:56 -04:00
Dave Pugmire
f8fe2e16b4 Add more data set types to filter tests. 2020-10-23 16:19:49 -04:00
Li-Ta Lo
8b6ae4f78c fixed type conversion and typo 2020-10-21 16:32:04 -06:00
Li-Ta Lo
77e1aec50a minor change based on code review 2020-10-21 16:08:06 -06:00
Li-Ta Lo
58436ed2fc Merge branch 'master' into particle_density 2020-10-21 08:48:38 -06:00
Kenneth Moreland
28ecf3636d Change interface of atomic compare and swap
The old atomic compare and swap operations (`vtkm::AtomicCompareAndSwap`
and `vtkm::exec::AtomicArrayExecutionObject::CompareAndSwap`) had an
order of arguments that was confusing. The order of the arguments was
shared pointer (or index), desired value, expected value. Most people
probably assume expected value comes before desired value. And this
order conflicts with the order in the `std` methods, GCC atomics, and
Kokkos.

Change the interface of atomic operations to be patterned off the
`std::atomic_compare_exchange` and `std::atomic<T>::compare_exchange`
methods. First, these methods have a more intuitive order of parameters
(shared pointer, expected, desired). Second, rather than take a value
for the expected and return the actual old value, they take a pointer to
the expected value (or reference in `AtomicArrayExecutionObject`) and
modify this value in the case that it does not match the actual value.
This makes it harder to mix up the expected and desired parameters.
Also, because the methods return a bool indicating whether the value was
changed, there is an additional benefit that compare-exchange loops are
implemented easier.

For example, consider you want to apply the function `MyOp` on a
`sharedValue` atomically. With the old interface, you would have to do
something like this.

```cpp
T oldValue;
T newValue;
do
{
  oldValue = *sharedValue;
  newValue = MyOp(oldValue);
} while (vtkm::AtomicCompareAndSwap(sharedValue, newValue, oldValue) != oldValue);
```

With the new interface, this is simplfied to this.

```cpp
T oldValue = *sharedValue;
while (!vtkm::AtomicCompareExchange(sharedValue, &oldValue, MyOp(oldValue));
```
2020-10-20 08:39:22 -06:00
Li-Ta Lo
f1b27c2b8b removed bad stuff 2020-10-19 17:49:55 -06:00
Li-Ta Lo
e6e0506e1f add a newline 2020-10-19 15:46:08 -06:00
Li-Ta Lo
9c4129bfb1 Neareast Grid Point particle density estimate 2020-10-19 15:29:14 -06:00