Commit Graph

5620 Commits

Author SHA1 Message Date
Kenneth Moreland
7aa043b0da Add necessary tokens to OpenMP device algorithms 2020-02-25 09:39:28 -07:00
Kenneth Moreland
b2fdf236e7 Fix deadlocks in device adapters and low level tests
The new Token functionality makes it easy for a thread to deadlock
itself if it does not detach a token after it is done.
2020-02-25 09:39:27 -07:00
Kenneth Moreland
ad0a53af71 Convert execution preparation to use tokens
Marked the old versions of PrepareFor* that do not use tokens as
deprecated and moved all of the code to use the new versions that
require a token. This makes the scope of the execution object more
explicit so that it will be kept while in use and can potentially be
reclaimed afterward.
2020-02-25 09:39:19 -07:00
Kenneth Moreland
642b59f4fd Allow a token to attach to an ArrayHandle multiple times
When a single `ArrayHandle` is given to multiple arguments of a worklet
dispatch, the `PrepareFor*` methods will be called multiple times with
the same token. If one of them is a `PrepareForInPlace` or
`PrepareForOutput`, then the two requests will deadlock. To prevent
this, allow the `PrepareFor*` to happen if the same token was used
previously.
2020-02-25 07:41:40 -07:00
Kenneth Moreland
76ce9c87f0 Support using Token calling PrepareForExecution in ExecutionObject
The old version of ExecutionObject (that only takes a device) is still
supported, but you will get a deprecated warning if that is what is
defined.

Supporing this also included sending vtkm::cont::Token through the
vtkm::cont::arg::Transport mechanism, which was a change that propogated
through a lot of code.
2020-02-25 07:41:39 -07:00
Kenneth Moreland
ef3f544a67 Add ability to attach token to general ArrayHandle
Duplicated the new versions of PrepareFor* methods from the basic
ArrayHandle that take a token in addition to the other arguments. The
ArrayHandle attaches itself to the token and will not allow operaitons
that make the returned portal invalid until the token goes out of scope.

Later the old versions will be deprecated.
2020-02-25 07:41:37 -07:00
Kenneth Moreland
5f44f3727c Add ability to attach token to standard ArrayHandle
Added new versions of PrepareFor* methods that take a token in addition
to the other arguments. The ArrayHandle attaches itself to the token and
will not allow operations that make the returned portal invalid until
the token goes out of scope.

Later the old versions will be deprecated.
2020-02-25 07:41:36 -07:00
Kenneth Moreland
a49fa83035 Add Token 2020-02-25 07:41:36 -07:00
Kenneth Moreland
47249ee3c0 Merge branch 'master' into oruebel/vtk-m-cleanup/contourtreeaugmented 2020-02-24 20:53:47 -07:00
Oliver Ruebel
392854ee35 Replace C-tyle casts with C++ style 2020-02-24 11:19:37 -08:00
Robert Maynard
a5e8ed4580 Merge topic 'allow_multiple_compilations_of_image_connectivity_filter'
576ff5ec8 ImageConnectivity didn't support multiple TU's compiling it

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1971
2020-02-21 16:18:24 -05:00
Robert Maynard
576ff5ec87 ImageConnectivity didn't support multiple TU's compiling it 2020-02-21 13:01:51 -05:00
Matt Larsen
33a154337a add deprecation 2020-02-18 09:51:56 -08:00
Matt Larsen
a7363c283c alter interface of scalar renderer result 2020-02-18 09:45:31 -08:00
Matt Larsen
5fc77cb585 warnings and store depth separately 2020-02-18 07:25:00 -08:00
Matt Larsen
aa468f5c00 more warning fixes 2020-02-17 20:09:51 -08:00
Matt Larsen
0943784c22 fix warning 2020-02-17 19:53:54 -08:00
Matt Larsen
094758e55a make result public? 2020-02-17 19:50:40 -08:00
Matt Larsen
458be65e9b fix logic error 2020-02-17 19:06:28 -08:00
Matt Larsen
b4b7519584 let there be scalar things 2020-02-17 19:00:09 -08:00
Matt Larsen
2123a56ab3 Merge topic 'change_lagrangian_output_structuredgrid'
e68b283e8 Delete commented, unused class variables
4d358e5b2 Remove coordinates from class member variable list
e6647efaf Fix condition to populate coordinate variables
2e2a847f5 Change Lagrangian output format to structured grid

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1945
2020-02-12 16:20:19 -05:00
Kenneth Moreland
3d421ff589 Merge topic 'deprecate-old-topology-worklets'
f7709a8db Mark deprecated superclasses of WorkletMapTopology with VTKM_DEPRECATED

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1955
2020-02-11 12:16:15 -05:00
Robert Maynard
6a62b7f2e4 Merge topic '450_openmp_scaling'
1f61c500e Remove non-atomic ops from BitField unit test.
5565848d9 Use a dynamic strategy for openmp 1D scheduling.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1925
2020-02-11 12:12:47 -05:00
Matt Larsen
1fc064dcf8 create scalar renderer 2020-02-09 08:57:32 -08:00
mclarsen
9e77a8b4cd add files for a scalar renderer 2020-02-07 20:30:55 -08:00
mclarsen
d4305c0435 remove unused variable 2020-02-07 15:16:09 -08:00
Kenneth Moreland
f7709a8dba Mark deprecated superclasses of WorkletMapTopology with VTKM_DEPRECATED 2020-02-06 20:30:21 -06:00
Oliver Ruebel
230ef15e4b Fix layout of array definition in unit test 2020-01-30 16:45:59 -08:00
Oliver Ruebel
712ae1063b Fix memory bug in contour tree unit test 2020-01-30 16:41:08 -08:00
Oliver Ruebel
4501afb24d Iprove array style in test 2020-01-30 14:13:44 -08:00
Oliver Ruebel
3f9988253b Remove completed TODO items 2020-01-30 01:16:38 -08:00
Oliver Ruebel
45e9684d97 Improve layout of arrays in unit test 2020-01-30 01:14:29 -08:00
Oliver Ruebel
0a897aa947 Improve layout of arrays in unit test 2020-01-30 01:06:43 -08:00
Oliver Ruebel
d2be26690d UnitTest make contour tree and regular structure. Add tests 2020-01-30 00:47:50 -08:00
Oliver Ruebel
7526d953dd UnitTest ContourTree.Init 2020-01-29 17:06:45 -08:00
Oliver Ruebel
7de023c443 UnitTest that Join and Split tree are being built correctly 2020-01-29 16:52:39 -08:00
Oliver Ruebel
a8d30882c4 UnitTest that arrays are being released after Join/Split tree compute 2020-01-29 15:16:29 -08:00
Oliver Ruebel
9262fd78ca Add test for splitTree.SetStarts and splitTree.BuildRegularChains 2020-01-29 14:33:29 -08:00
Oliver Ruebel
7b803eff1f Add test for joinTree.Initialise and splitTree.Initialise 2020-01-29 13:45:59 -08:00
Oliver Ruebel
9c115ec6a3 Fix bug in ActiveGraph DebugPrint 2020-01-29 12:30:18 -08:00
Oliver Ruebel
e95bb3a14d Add asserts for Active graph constructor 2020-01-29 12:07:48 -08:00
Oliver Ruebel
77ec47aa37 Rename namespace in attempt to fix Windows built 2020-01-29 12:00:34 -08:00
Oliver Ruebel
40bd949b52 Attempt to fix namespace built issue on Windows 2020-01-29 09:53:44 -08:00
Robert Maynard
36161b42c7 Renamed to SchedulingRange to follow VTK-m naming convention 2020-01-29 10:39:41 -05:00
Oliver Ruebel
fdabf794c1 Add setup to allow us to test the main steps of the contour tree 2020-01-28 16:04:29 -08:00
Sudhanshu Sane
e68b283e8b Delete commented, unused class variables 2020-01-28 10:27:58 -08:00
Robert Maynard
40c0c0fefd Allow for easier overloads of scheduling_range
This is needed to support custom types that need 3D scheduling
or to call custom methods to get the 1D scheduling size
2020-01-28 11:17:42 -05:00
Sudhanshu Sane
4d358e5b29 Remove coordinates from class member variable list 2020-01-28 02:05:10 -08:00
Sudhanshu Sane
e6647efaf0 Fix condition to populate coordinate variables 2020-01-27 21:12:23 -08:00
Oliver Ruebel
2134acd9e6 Unit test different augmentation settings. Fix parameter warning 2020-01-27 14:17:39 -08:00
Oliver Ruebel
787b6519ab Fix shadowing parameter warning in HyperArcSuperNodeComperator 2020-01-27 13:26:02 -08:00
Oliver Ruebel
446f046133 Place ContourTreeBlockData in an approbriate namespace 2020-01-27 13:22:26 -08:00
Oliver Ruebel
d1d7b56411 Update docs for ContourTreeUniformAugmented worklet 2020-01-27 03:13:26 -08:00
Oliver Ruebel
f70b63f805 Add Doxygen-style docs for the ContourTreeUnfiformAugemented filter 2020-01-27 02:57:02 -08:00
Oliver Ruebel
56df1b9b32 Renamed ActiveGraph.nSupernodes, nHypernodes member var for VTKm style compliance 2020-01-23 18:48:20 -08:00
Oliver Ruebel
3f84635c75 Renamed ActiveGraph.activeEdges, activeVertices, superID, hyperID member var for VTKm style compliance 2020-01-23 18:36:47 -08:00
Oliver Ruebel
31e2fc559d Renamed ActiveGraph.edgeMear. edgeFare, and edgeSorter member var for VTKm style compliance 2020-01-23 18:17:58 -08:00
Oliver Ruebel
a67c2db6b7 Renamed ActiveGraph.outdegree and ActiveGraph.firstEdge member var for VTKm style compliance 2020-01-23 18:07:14 -08:00
Oliver Ruebel
09a4eeeaf6 Renamed globalIndex member var for VTKm style compliance 2020-01-23 17:48:31 -08:00
Oliver Ruebel
c7f8f9393b Renamed isJoinGraph member var for VTKm style compliance 2020-01-23 17:43:26 -08:00
Oliver Ruebel
db1104a258 Renamed ContourTreeMaker.contourTree for compliance with VTKm style 2020-01-23 17:33:58 -08:00
Oliver Ruebel
e08667552d Updated names in ContourTreeMaker for compliance with VTKm 2020-01-23 17:20:31 -08:00
Oliver Ruebel
70f0b96bd8 Update names in ContourTree.h to comply with VTKm style 2020-01-23 11:32:33 -08:00
Oliver Ruebel
7ced203f6a Update names in MergeTree (and matching names in other classes) to comply with VTKm style 2020-01-23 10:46:56 -08:00
Oliver Ruebel
6bfd119220 Update var/func names in all of activegraph to comply with VTKm style 2020-01-23 03:44:25 -08:00
Oliver Ruebel
4de9647688 Update var/func names in all of contourtreemaker to comply with VTKm style 2020-01-23 03:30:22 -08:00
Oliver Ruebel
bea6997d58 Update var/func names in all of mesh_dem_meshtypes to comply with VTKm style 2020-01-23 03:21:01 -08:00
Oliver Ruebel
fed9c792ca Update func/var names in Mesh_DEM_Triangulation for VTKm style 2020-01-23 01:51:03 -08:00
Oliver Ruebel
8d25b8fa35 Update names of print functions for VTKm syle compliance 2020-01-23 00:56:02 -08:00
Oliver Ruebel
111ee415b0 Updated naming in MultiBlockContourTreeHelper to match VTKm style 2020-01-23 00:39:43 -08:00
Oliver Ruebel
fcaf55e33e Updated naming in SpatialDecomposition to match VTKm style 2020-01-23 00:31:15 -08:00
Oliver Ruebel
56f5b369fa Updated naming in ContourTreeBlockData to match VTKm style 2020-01-23 00:23:25 -08:00
Oliver Ruebel
1fa1410324 Updated names in MeshExtrema to match VTKm style 2020-01-23 00:03:36 -08:00
Oliver Ruebel
fee363232d Updated names in ArrayTransforms.h to fit VTKm style 2020-01-22 23:44:00 -08:00
Oliver Ruebel
3ba516d70e Updated print functionname to VTKm style and remove unused functions 2020-01-22 23:30:44 -08:00
Oliver Ruebel
7598696656 Remove unused constexpr printCols 2020-01-22 23:21:16 -08:00
Oliver Ruebel
ff3e20dcad Update functionnames in contourtree_augmented/Types.h to match VTKm style 2020-01-22 23:15:28 -08:00
Oliver Ruebel
91941444f9 Fix memory leak in distributed parallel contour tree filter 2020-01-22 16:41:52 -08:00
Oliver Ruebel
c51587f011 Moved EulerTour to processcontour folder/namespace 2020-01-22 15:07:30 -08:00
Oliver Ruebel
bdabb282b3 Fix naming of functions/variable in vtkm/worklet/contourtree_augmented/processcontourtree 2020-01-22 14:54:52 -08:00
Kenneth Moreland
ec010d2e8d Merge topic 'no-deprecated-nvcc-vs'
fb01d38a0 Disable deprecated attribute when using nvcc under VS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1949
2020-01-22 17:49:08 -05:00
Oliver Ruebel
236da581e3 Rename include guards to comply with vtk_m_ naming convention 2020-01-22 14:04:11 -08:00
Robert Maynard
dc86ac2077 Avoid a GCC 6.1 compiler regression that occurs when openmp is enabled 2020-01-22 11:06:54 -05:00
Kenneth Moreland
fb01d38a09 Disable deprecated attribute when using nvcc under VS
The nvcc compiler under visual studio seems to give the error `attribute
does not apply to any entity` when you try to use the `[[deprecated]]`
attribute. So disable for this compiler configuration.
2020-01-22 07:52:59 -07:00
Oliver Ruebel
5db7eb6969 Replace use of PPP2 acronym in names to comply with coding style 2020-01-22 01:40:49 -08:00
Oliver Ruebel
43aae4870b Replace tracking of timings in ContourTree with logging 2020-01-22 01:11:45 -08:00
Robert Maynard
579a4bab2f Merge topic 'correct_vtkm_cuda_cellset_host_device_warnings'
3e99b1776 Correct host/device warnings in CellSetPermutation found by VTK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1947
2020-01-21 16:41:17 -05:00
Robert Maynard
3e99b17762 Correct host/device warnings in CellSetPermutation found by VTK 2020-01-21 15:09:48 -05:00
Sudhanshu Sane
2e2a847f55 Change Lagrangian output format to structured grid 2020-01-16 23:54:47 -08:00
Robert Maynard
3f02558fc2 correct warnings in color table 2020-01-16 17:33:22 -05:00
Robert Maynard
f395e084d8 Merge topic 'correct_warnings_from_osx_dashboard'
b9516c116 Correct CellSetStructured compile failures
00235874d Suppress more warning types from thirdparty includes
a52af2d13 Correct double to float warning in CellAspectFrobeniusMetric
cf5ebfb16 Suppress warning about extension use, since all compilers support it
27739660b Add missing constructors/assignment operators
123f8b01a Mark virtual destructors as override where applicable
54118dfca Use noexcept instead of throw() as it was deprecated in c++11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1943
2020-01-15 15:27:18 -05:00
Robert Maynard
b9516c116e Correct CellSetStructured compile failures 2020-01-15 08:24:35 -05:00
Robert Maynard
00235874d7 Suppress more warning types from thirdparty includes 2020-01-14 11:18:22 -05:00
Robert Maynard
a52af2d132 Correct double to float warning in CellAspectFrobeniusMetric 2020-01-14 11:18:22 -05:00
Robert Maynard
cf5ebfb16e Suppress warning about extension use, since all compilers support it 2020-01-14 11:18:22 -05:00
Robert Maynard
27739660b9 Add missing constructors/assignment operators
Having a custom assignment operator means that the compiler
isn't required to generate the implicit copy constructor.
This makes sure they are constructed.
2020-01-14 11:18:22 -05:00
Robert Maynard
123f8b01aa Mark virtual destructors as override where applicable 2020-01-13 15:54:33 -05:00
Robert Maynard
54118dfca0 Use noexcept instead of throw() as it was deprecated in c++11 2020-01-13 10:05:35 -05:00
James
3ef10a6cb4 Merge branch 'Enhance-Testing-With-Data-From-Files' of https://gitlab.kitware.com/jameskress/vtk-m into Enhance-Testing-With-Data-From-Files 2020-01-10 08:07:11 -05:00
Kenneth Moreland
aa59224f28 More testing of long lists
We encountered some issues with `ListIndexOf` for longer lists with
repeated elements. Add some tests for that.
2020-01-09 10:33:49 -07:00
Kenneth Moreland
a5c686214b Merge topic 'no-std-conditional-in-list-operations'
b534bdb1b Remove std::conditional from List.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1940
2020-01-09 12:31:26 -05:00
Kenneth Moreland
b534bdb1ba Remove std::conditional from List.h
The `std::conditional` utility is very convenient, but it unfortunately
means that the compiler has to evaluate both the true and false types
even though one is guaranteed to be thrown out. This is problematic
because it requires the compiler to do a lot more work then necessary.
It is especially dumb when introducing the conditionals to reduce the
number of cases being evaluated, as was much of the case in List.h.
2020-01-09 09:11:26 -07:00
James
6162fdc591 Moving new test code to the Testing.h header. 2020-01-08 14:32:15 -05:00
Allison Vacanti
46b7155bdb Add 64-bit CUDA atomic store. 2020-01-08 10:58:51 -05:00
Allison Vacanti
539f6e5ad7 Port benchmarking framework to Google Benchmark. 2020-01-08 10:58:51 -05:00
Allison Vacanti
39d981bcf9 Shorten names returned by testing's TypeName utility.
Eg:

```
vtkm::Float32                                       -> F32
vtkm::Int64                                         -> I64
vtkm::Vec< vtkm::Float32, 3 >                       -> Vec3f_32
vtkm::Vec< vtkm::Pair< vtkm::Int32, vtkm::Float64 > -> Vec<Pair<I32, F64>>
```

This makes the benchmark names a lot shorter to keep rows tabular
results on
a single line.
2020-01-08 10:58:51 -05:00
James
9d7fc3e6aa Merge branch 'Enhance-Testing-With-Data-From-Files' of https://gitlab.kitware.com/jameskress/vtk-m into Enhance-Testing-With-Data-From-Files 2020-01-08 09:34:42 -05:00
James
10d9f89258 Making the test data path available via a static function call. 2020-01-07 15:56:00 -05:00
Kenneth Moreland
60c57303da Fix name clash of template parameter and field 2020-01-07 07:01:35 -07:00
Kenneth Moreland
4a52a3f7a9 Shorter StorageTag for ArrayHandleZip 2020-01-07 07:01:34 -07:00
Kenneth Moreland
4a626b2e93 Shorter storage tag for ArrayHandleView 2020-01-07 07:01:13 -07:00
Kenneth Moreland
4c8c28d1f1 Shorter storage tag for ArrayHandleReverse
Also discovered that many C++ compilers have trouble giving warnings
for partial specialization of classes marked as deprecated. Fix
the problem by instead deprecating the items in the class.
2020-01-07 07:01:12 -07:00
Kenneth Moreland
bfd21dfae2 Declare StorageTags with VTKM_ALWAYS_EXPORT
This modifier is required on OSX for dynamic_cast to work properly
across libraries.
2020-01-07 07:01:11 -07:00
Kenneth Moreland
1ec716e5d2 Shorten storage tag for ArrayHandlePermutation 2020-01-07 07:01:10 -07:00
Kenneth Moreland
ca0ad1dc22 Shorten storage tag for ArrayHandleIndex 2020-01-07 07:01:10 -07:00
Kenneth Moreland
7bd5802dd8 Shorter storage tag for ArrayHandleGroupVecVariable 2020-01-07 07:01:09 -07:00
Kenneth Moreland
74df1b3857 Shorten storage tag for ArrayHandleGroupVec 2020-01-07 07:01:08 -07:00
Kenneth Moreland
1f5846b49e Shorten storage tag for ArrayHandleCounting 2020-01-07 07:01:07 -07:00
Kenneth Moreland
31898fd887 Shorten tag name for ArrayHandleConstant 2020-01-07 07:01:06 -07:00
Kenneth Moreland
b2f07511fb Shorten storage tags for ArrayHandleConcatenate 2020-01-07 07:01:05 -07:00
Kenneth Moreland
2688fc7d50 Shorten tag name for ArrayHandleCompositeVector 2020-01-07 07:01:05 -07:00
Kenneth Moreland
8516fa7ac6 Shorten tag name for ArrayHandleCartesianProduct 2020-01-07 07:01:04 -07:00
Kenneth Moreland
591d1ba264 Make ArrayHandleUniformPointCoordinates storage type shorter 2020-01-07 07:01:03 -07:00
Kenneth Moreland
944a3c4c14 Make ArrayHandleCast storage type shorter 2020-01-07 07:00:55 -07:00
Robert Maynard
870bd1d170 Removed unnecessary increment and decrement from ZFPDecode
These extra operations caused the pointer to go out of bound and
then back in, but some compilers (gcc 9) would detect and warn
that the pointer had gone out of bounds.
2020-01-01 10:08:35 -05:00
Robert Maynard
f9860b847e Correct warnings found by gcc-9 in vtkm::Particle 2020-01-01 08:46:40 -05:00
Allison Vacanti
07283f74c1 Merge topic 'binary_search_algorithms'
44c4f0838 Add vtkm/Algorithms.h header with device-friendly binary search algorithms.
6d4e37e95 Fix brigand for CUDA 10.2.
84eedc885 Make BinaryOperators/Predicates more flexible.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1920
2019-12-26 10:48:21 -05:00
Robert Maynard
83d4d4e495 ArrayPortalToIterators now compiles with GCC-4.X
The draft C++11 spec that GCC-4.X implemented against had some
defects that made implementing void_t<...> tricky.
2019-12-23 09:47:54 -05:00
Allison Vacanti
88bf38afe2 Add support for ArrayHandleDecorator resizing.
Fixes #428.
2019-12-20 17:03:36 -05:00
Allison Vacanti
5834c28521 Add cont/exec markup to ArrayHandleDecorator docs. 2019-12-20 16:18:09 -05:00
Allison Vacanti
5b1280600d Cleanup reference types when using declval.
When expanding variadic parameter packs in ArrayHandleDecorator
implementations, make sure that the types used are appropriate.
Since std::declval is used to test whether or not a method with
specific arguments exists, it is important that the reference types
are correct to ensure that the detection works as expected.

Portals are always passed to implementation functions as rvalue
references, and array handles are always passed as lvalue refs.
2019-12-20 16:17:30 -05:00
Allison Vacanti
44c4f0838f Add vtkm/Algorithms.h header with device-friendly binary search algorithms. 2019-12-20 12:35:10 -05:00
Allison Vacanti
6d4e37e95c Fix brigand for CUDA 10.2.
There were issues with brigand::all's implementation with the new
cuda compiler.
2019-12-18 15:51:59 -05:00
Allison Vacanti
84eedc8855 Make BinaryOperators/Predicates more flexible.
Allow the argument types to differ. This allows ArrayPortalValueReferences to be used.
2019-12-18 15:51:59 -05:00
Allison Vacanti
813f5a422f Fixup custom portal iterator logic.
The convenience functions `ArrayPortalToIteratorBegin()` and
`ArrayPortalToIteratorEnd()` wouldn't detect specializations of
`ArrayPortalToIterators<PortalType>` since the specializations aren't
visible when the `Begin`/`End` functions are declared.

Since the CUDA iterators rely on a specialization, the convenience
functions would not compile on CUDA.

Now, instead of specializing `ArrayPortalToIterators` to provide custom
iterators for a particular portal, the portal may advertise custom
iterators by defining `IteratorType`, `GetIteratorBegin()`, and
`GetIteratorEnd()`. `ArrayPortalToIterators` will detect such portals
and automatically switch to using the specialized portals.

This eliminates the need for the specializations to be visible to the
convenience functions and allows them to be usable on CUDA.
2019-12-17 15:39:51 -05:00
Allison Vacanti
4e13f7706c Fix markup on ArrayPortalStreaming. 2019-12-17 14:52:47 -05:00
Allison Vacanti
4805f08e1e Add host/device markup to IteratorFromArrayPortal. 2019-12-17 14:52:47 -05:00
Robert Maynard
8c96769e81 Merge topic 'aligned_union_check_handle_gcc_485'
b36846e4b UnitTestVariant uses VTKM_USING_GLIBCXX_4
cbf20ac3b Merge branch 'upstream-diy' into aligned_union_check_handle_gcc_485
ac1a23bee diy 2019-12-17 (bb86e1f7)
201e5c81d Add the gcc 4.8.5 release date to our VTKM_USING_GLIBCXX_4 check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <larsen30@llnl.gov>
Merge-request: !1930
2019-12-17 12:52:04 -05:00
Robert Maynard
b36846e4ba UnitTestVariant uses VTKM_USING_GLIBCXX_4 2019-12-17 12:21:38 -05:00
James
743094ffc9 Adding parser for arguments. 2019-12-17 11:07:47 -05:00
Robert Maynard
cbf20ac3bb Merge branch 'upstream-diy' into aligned_union_check_handle_gcc_485
* upstream-diy:
  diy 2019-12-17 (bb86e1f7)
2019-12-17 10:19:43 -05:00
Robert Maynard
201e5c81d3 Add the gcc 4.8.5 release date to our VTKM_USING_GLIBCXX_4 check 2019-12-17 10:07:56 -05:00
Robert Maynard
07bb45e7a2 Merge topic 'timer_dont_init_devices_with_no_runtime_support'
64e3e8f34 VTK-m Timer now handles when devices fail at runtime

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1927
2019-12-17 09:13:56 -05:00
Sujin Philip
bdbf24d132 Merge topic 'peter-changes'
bf2290c9e Fixed an implicit conversion change warning.
18caed60e Fixed some of the compiler warning from CDash.
d7d7cdd5b Merges with upstream reformated version.
d6cbd8301 Merge with unformated previous state of the remote branch.
9a6dec8bc Refactored control side function call from a VTKM_EXEC function.
ca5f79056 Swapped x and y dimensions when reading in contour trees from text files.
da83076d7 Merge branch 'master' into peter-changes
01c49f139 Wrote some documentation for the CT Height Branch Decomposition code.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1899
2019-12-16 13:52:57 -05:00
Robert Maynard
bc148cc556 Merge topic 'update_check_for_aligned_union'
2e48d98d9 Merge branch 'upstream-diy' into update_check_for_aligned_union
bbd5db31b diy 2019-12-16 (e365b66a)
269261b95 Handle compiling against 4.X versions of libstdc++

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1928
2019-12-16 11:14:15 -05:00
Robert Maynard
2e48d98d94 Merge branch 'upstream-diy' into update_check_for_aligned_union
* upstream-diy:
  diy 2019-12-16 (e365b66a)
2019-12-16 09:49:30 -05:00
Robert Maynard
269261b958 Handle compiling against 4.X versions of libstdc++
Fixes #447
This uses a more robust set of checks to determine if std::aligned_union
and std::is_trivially_copyable exist given the libstdc++ version value
2019-12-16 09:49:12 -05:00
Dave Pugmire
dd9dc19410 Merge topic 'pa_storage'
e4923823b Add comment for extra casts for compiler warnings.
98d4df79a compiler warnings.
a11bc1769 compiler warnings.
5646527b6 cleanup for LCS filter.
29c21cdbc Code cleanup. Update Lagranian filter to use vtkm::Particle
136aba429 Cleanup for streamsurface.
85fc73fc4 Updates for streamline/pathline filter.
33ba234d5 code cleanup
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1854
2019-12-15 21:48:35 -05:00
Dave Pugmire
e4923823bf Add comment for extra casts for compiler warnings. 2019-12-12 13:20:03 -07:00
Robert Maynard
6eddfc3d67 Merge topic 'improve_extract_structured_compile_overhead'
7b53a52e6 ExtractStructured now compiles quicker and with less compiler memory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1922
2019-12-12 11:36:37 -05:00
Robert Maynard
64e3e8f344 VTK-m Timer now handles when devices fail at runtime
A device can fail during startup of vtk-m or mid execution
due to issues such as OOM. Timer needs to be able to handle
these situations gracefully
2019-12-12 09:13:23 -05:00
Robert Maynard
7d47ac3c66 Merge topic 'A21fixes'
31cdaa4ee declared explicitly isSame within a VTKM_OPENMP_SHARED_CONST() construct
b275eab6c fixed indentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1926
2019-12-11 18:10:37 -05:00
Dave Pugmire
98d4df79a4 compiler warnings. 2019-12-11 15:36:23 -07:00
Dave Pugmire
a11bc1769d compiler warnings. 2019-12-11 13:58:59 -07:00
Dave Pugmire
5646527b6b cleanup for LCS filter. 2019-12-11 13:32:40 -07:00
James
b38fadc310 Updates to get test data path. 2019-12-11 14:38:16 -05:00
Silvio Rizzi
31cdaa4eeb declared explicitly isSame within a VTKM_OPENMP_SHARED_CONST() construct 2019-12-11 13:09:40 -06:00
Silvio Rizzi
b275eab6c4 fixed indentation 2019-12-11 13:09:23 -06:00
Dave Pugmire
29c21cdbc4 Code cleanup. Update Lagranian filter to use vtkm::Particle 2019-12-11 11:45:13 -07:00
Allison Vacanti
a28d2a3a06 Merge topic 'intel_fix'
b6b20f086 Use brigand integer sequences on icc.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1923
2019-12-11 13:11:02 -05:00
Allison Vacanti
1f61c500ea Remove non-atomic ops from BitField unit test.
These aren't threadsafe and race on parallel devices.
2019-12-11 13:07:39 -05:00
Allison Vacanti
5565848d91 Use a dynamic strategy for openmp 1D scheduling.
There were issues with the particle advection code where a small number
of work-heavy task invocations were needed. Since we were enforcing a
minimum of 1024 invocations per thread, this effectively serialized
scheduling.

Now the scheduler dynamically adjusts for small thread launches,
allowing finer scheduling.
2019-12-11 13:06:31 -05:00
Dave Pugmire
136aba4297 Cleanup for streamsurface. 2019-12-11 10:13:42 -07:00
Dave Pugmire
85fc73fc4a Updates for streamline/pathline filter. 2019-12-11 10:01:47 -07:00
Kenneth Moreland
2fbcc78a60 Merge topic 'simple-list-template'
4659d69c7 Remove some commented out code
aec75ab1a Suppress CUDA warning about device calling host
851864d0b Work around with Visual Studio 2015 issue
452a2e1c9 Suppress warnings about CUDA host/device mismatch
4fdefe9f1 Suppress some deprecated warnings in visual studio
5cfc14482 Implement old ListTag features with new ListTag implementations
d5fe4046c Remove instances of ListTag in favor of List
92db37623 Convert uses of ListTagBase to List
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1918
2019-12-11 09:43:22 -05:00
Allison Vacanti
b6b20f086e Use brigand integer sequences on icc. 2019-12-11 09:26:15 -05:00
Robert Maynard
7b53a52e6a ExtractStructured now compiles quicker and with less compiler memory
Previously ExtractStructured filter would take ~45sec to compile
with gcc 9.2 and now takes ~15sec.
2019-12-11 08:59:42 -05:00
Kenneth Moreland
4659d69c72 Remove some commented out code 2019-12-10 15:29:46 -07:00
James
7e3178ffe4 Starting to add data directory to unit tests. 2019-12-10 13:56:31 -05:00
Kenneth Moreland
aec75ab1a2 Suppress CUDA warning about device calling host
The destructors of some control side objects (such as CellSet and
ArrayHandle) are defined. These destructors are obviously only compiled
for the control environment (i.e. for CUDA only for the host). However,
not all of the subclasses implemented their own destructors. In CUDA,
when a default destructor is used, it is compiled for both host and
device. This caused a problem as the superclass's destructor was only
compiled for the host and therefore caused a warning.

Fixed the problem by defining an empty destructor to any subclasses that
needed one.

It's weird that I ran into this problem while chaning the List TMP
class, but the solution seems fine.
2019-12-10 09:15:40 -07:00
dpugmire
ef2b97838c code cleanup. 2019-12-10 09:44:01 -05:00
dpugmire
81a655414b compiler warning. 2019-12-10 08:48:17 -05:00
Kenneth Moreland
851864d0b5 Work around with Visual Studio 2015 issue
Was getting the following error:

vtkm/List.h(284): error C2210: 'T' : pack expansions cannot be used as
arguments to non-packed parameters in alias templates

This is probably an issue with the compiler not resolving templated
aliases correctly.
2019-12-09 14:29:13 -07:00
Kenneth Moreland
452a2e1c9c Suppress warnings about CUDA host/device mismatch 2019-12-09 11:06:56 -05:00
Kenneth Moreland
4fdefe9f1c Suppress some deprecated warnings in visual studio 2019-12-09 07:45:40 -07:00
Petar Hristov
bf2290c9ec Fixed an implicit conversion change warning. 2019-12-09 10:59:18 +00:00
Kenneth Moreland
5cfc14482b Implement old ListTag features with new ListTag implementations
This cleans up the code a bit by removing duplication. More importantly,
it makes sure that the old ListTag functions work with both the new
`List` and old `ListTagBase`.
2019-12-08 19:20:34 -07:00
Kenneth Moreland
d5fe4046c5 Remove instances of ListTag in favor of List 2019-12-06 21:32:36 -07:00
Kenneth Moreland
92db376236 Convert uses of ListTagBase to List 2019-12-06 15:37:46 -07:00
dpugmire
961264d16d compiler warnings. 2019-12-06 13:24:59 -05:00
dpugmire
41c03a8bcf Fix for cuda. 2019-12-06 13:05:00 -05:00
Robert Maynard
f89672b71a UnitTestFetchArrayTopologyMapIn now compiles with VS2015
Fixes #445
2019-12-06 09:27:45 -05:00
dpugmire
8054dfdafb Fixes for streamlines. 2019-12-05 15:46:41 -05:00
Kenneth Moreland
34b0bba842 Use C++11 attributes for VTKM_ALWAYS/NEVER_EXPORT
Previously, the `VTKM_ALWAYS_EXPORT` and `VTKM_NEVER_EXPORT` macros
used the gnu-specific `__attribute__` keyword. This change instead
uses the C++11 standard method of using `[[ ]]` as attributes.
Specifically, `__attribute(visibility("---"))` is changed to
`[[gnu::visibility("--")]]`.

The main impetus for this change is that `__attribute__` does not
seem to work with `[[deprecated]]` on GCC compilers. (For sure on
GCC 6. I didn't check all compiler versions.) This change was
recommended from
https://stackoverflow.com/questions/40886628/deprecated-attribute-visibility-default-in-gcc-6-2

This creates a minor backward incompatibility. We have always meant
for these macros to be used before the return type when used with
a function. However, GCC accepted placing `__attribute__` after
the return type. The C++11 `[[ ]]` cannot be placed there, so
some macros might have to be moved. Still, this was a broken
use that happened to work.
2019-12-05 13:55:54 -05:00
Kenneth Moreland
cd302effb3 Update lists in TypeListTag.h
A new header named TypeList.h and the type lists have been redefined in
this new file. All the types have been renamed from `TypeListTag*` to
`TypeList*`. TypeListTag.h has been gutted to provide deprecated
versions of the old type list names.

There were also some other type lists that were changed from using the
old `ListTagBase` to the new `List`.
2019-12-05 11:05:19 -07:00
Kenneth Moreland
6fc883213c Deprecate ListTag operations
The newer List operations should still work on the old ListTags, so make
those changes first to ensure that everything still works as expected if
given an old ListTag.

Next step is to deprecate ListTagBase itself and move all the lists to
the new types.
2019-12-05 11:27:31 -05:00
Robert Maynard
1b6e7f8f04 Merge topic 'dispatcher_base_smarter_invocation_construction'
50d298948 Slightly improve compile times by making less unique temp types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1917
2019-12-05 10:50:57 -05:00
Robert Maynard
8558df11e6 Merge topic 'add_vtkm_prefix_to_some_common_names'
c3f85ef13 Prefixed CACHE_LINE_SIZE and PAGE_SIZE constexpr variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1916
2019-12-05 10:50:07 -05:00
Robert Maynard
fc40c6085b Merge topic 'correct_osx_symbol_linkage_warning'
81fca4dae Correct warnings on OSX caused by differing symbol visibility settings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1913
2019-12-05 10:49:35 -05:00
Petar Hristov
18caed60e3 Fixed some of the compiler warning from CDash. 2019-12-05 13:50:44 +00:00
Robert Maynard
50d2989483 Slightly improve compile times by making less unique temp types
Instead of incrementally building a new Invocation object
for each modified parameter, we construct a single new type
with all the new parameters.

GCC 9.2, Release, Contour Filter:
Master: 1:08.96min, max memory: 1762644 KB
This: 1:04.56min, max memory: 1730376 KB
2019-12-05 08:19:07 -05:00
Robert Maynard
6b7ff4370f Merge topic 'more_function_interface_simplifications'
daa6b0984 Another round of simplifications to FunctionInterface

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1915
2019-12-05 08:17:20 -05:00
Kenneth Moreland
70f6220fa3 Add vtkm::List
`vtkm::List` is meant to replace `vtkm::ListTag`. Rather than
subclassing a base class with a variadic template, all lists expose the
list of types.

`vtkm::ListTag` was originally created before we required C++11 so
supporting variadic templates was problematic. To hide the issue we had,
we made list tags subclass other lists rather than be the list
themselves. It makes for nicer types in the compiler, but hides
important details about what is actually in the type. It also creates
lots of unnecessary new types.

The new `vtkm::List` is in some ways simpler. All lists have to be a
`vtkm::List`. Subclasses are not supported (or rather, they will not
work as expected). All manipulations (such as `vtkm::ListAppend`)
resolve directly back to a `vtkm::List`. Although the types reported by
the compiler will be longer, they will be more specific to the types
being used. Also, the new implimentation should ultimately use fewer
types.
2019-12-04 17:13:56 -07:00
Kenneth Moreland
a6bc1dc764 Merge topic 'array-handle-thread-safety'
5ab0b5bb1 Access ArrayHandle internals in a critical section
b13a08855 Access ArrayHandle internals in a critical section

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1905
2019-12-04 14:42:07 -05:00
Robert Maynard
c3f85ef13c Prefixed CACHE_LINE_SIZE and PAGE_SIZE constexpr variables
Those two names sometimes are used by macros from other libraries
and therefore break VTK-m.
2019-12-04 14:32:51 -05:00
Robert Maynard
daa6b0984b Another round of simplifications to FunctionInterface
Yet more ways that we can reduce the complexity of `FunctionInterface`.
This is another step in figuring out what set of features the replacement
for `FunctionInterface` needs to have.
2019-12-04 14:02:44 -05:00
dpugmire
bdab4a56d2 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into pa_storage 2019-12-04 11:59:14 -05:00
dpugmire
115f0a6ee3 Changes to particle advection worklets. 2019-12-04 11:52:08 -05:00
Kenneth Moreland
9ff1f5d8a9 Merge topic 'deprecation'
f62b50259 Refactor deprecated macros
fec1c4995 Re-enable Visual Studio warning 4996
ed4d0d50c Add VTKM_DEPRECATED macro

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1902
2019-12-04 09:01:17 -05:00
Kenneth Moreland
4211c4c19b Merge topic 'remove-invalid-arrays-from-multiplexer'
5676cd175 Add changelog for ListTagRemoveIf
6feb0c376 Remove invalid arrays when applying policies to fields
4c103e421 Add ListTagRemoveIf

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1901
2019-12-04 08:57:59 -05:00
Robert Maynard
81fca4dae7 Correct warnings on OSX caused by differing symbol visibility settings 2019-12-03 13:24:04 -05:00
Robert Maynard
a9f5279b28 Merge topic 'add_ninja_job_pools'
7fc7c61a9 VTK-m use a jobs pool for compiling large compilation units.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1911
2019-12-03 09:00:22 -05:00
Robert Maynard
65347bf948 Correct warnings found by GCC 9.2 2019-12-02 09:33:35 -05:00
Robert Maynard
d6d40c90d7 Simplify FunctionInterface
This includes removing Exec, and Cont methods that VTK-m is no longer
using. Also we simplify the used methods as much as possible.
2019-12-02 09:33:35 -05:00
Robert Maynard
7fc7c61a9b VTK-m use a jobs pool for compiling large compilation units.
When building with the ninja generator VTK-m now uses a job pool
to help limit the chances of a machine going out of memory
when compiling VTK-m.
2019-11-29 15:49:54 -05:00
Robert Maynard
462aacebb3 Merge topic 'simplify_threshold_implementation'
a92ad22c7 Improve Threshold runtime and compile performance

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1909
2019-11-26 19:48:24 -05:00
Robert Maynard
a92ad22c73 Improve Threshold runtime and compile performance
Using GCC 9.2 the pre change vtkm::filter::Threshold would
take 31.84sec to compile and use 1.1GB of memory. After
these changes the filter takes 24.16sec to compile and
uses 885MB of memory.
2019-11-26 16:53:56 -05:00
Robert Maynard
5ea5e1b37b Merge topic 'vtkm_mark_files_as_not_good_for_unity'
a1af800cc VTK-m now excludes large files from CMake Unity builds

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1907
2019-11-26 12:04:33 -05:00
Robert Maynard
a1af800cc0 VTK-m now excludes large files from CMake Unity builds
CMake 3.16 includes support for unity builds which merge multiple
translation units together automatically for faster builds.
A couple of translation units in VTK-m already require lots of
system memory, and merging them actually decreases compile performance
2019-11-26 11:22:03 -05:00
mclarsen
c021ef1887 remove serial only timers to avoid warnings 2019-11-25 08:38:36 -08:00
peter
9a6dec8bc4 Refactored control side function call from a VTKM_EXEC function. 2019-11-21 10:01:46 +00:00
Kenneth Moreland
5ab0b5bb1d Access ArrayHandle internals in a critical section
Repeat the changes of the previous commit with the specialized
ArrayHandle for basic storage.
2019-11-20 14:42:58 -07:00
Kenneth Moreland
b13a088558 Access ArrayHandle internals in a critical section
When it was originally created, it was assumed that the ArrayHandle
class would be used by a single thread. As the use of VTK-m expands,
that is no longer a safe assumption. To ensure that operations on
ArrayHandle happen correctly, add a mutex to the Internals of
ArrayHandle and require all operations on the Internals lock that mutex.
2019-11-13 10:47:10 -07:00
Kenneth Moreland
033dfe5556 Only workaround incorrect GCC behavior for OpenMP on GCC
There is some behavior of GCC compilers before GCC 9.0 that is
incompatible with the specification of OpenMP 4.0. The workaround was
using the workaround any time a GCC compiler >= 9.0 was used. The proper
behavior is to only use the workaround when the GCC compiler is being
used and the version of the compiler is less than 9.0.

Also, switch to using VTKM_GCC to check for the GCC compiler instead of
__GNUC__. The problem with using __GNUC__ is that many other compilers
pretend to be GCC by defining this macro, but in cases like compiler
workarounds it is not accurate.
2019-11-12 13:50:50 -07:00
Kenneth Moreland
cd30bc5875 Fix compiler warning in Tube worklet
Older GCC compilers were giving warnings in the operator of the
GeneratePoints worklets for tubes because they could not completely
determine that variables were being properly initialized in the first
loop iteration (and therefore initialized for every subsequent
iteration). Fixed that by moving the initialization for the first
iteration outside of the loop.
2019-11-06 17:06:11 -07:00
Kenneth Moreland
f62b50259e Refactor deprecated macros
Previously we relied on CMake's compiler detection module to build the
macros for using the deprecated attribute. However, CMake created macros
for pre-C++14 versions of the feature, which do not work in all cases.
Also, we have the need to be able to suppress deprecation warnings when
we are implementing a deprecated thing. Since we have to query compilers
ourself, we might as well figure out if the deprecated attribute we want
is supported.

Worst case is that we won't support deprecation warnings everywhere we
could. That will not create incorrect code and we can always add that
later.
2019-11-06 14:47:59 -07:00
Kenneth Moreland
fec1c4995d Re-enable Visual Studio warning 4996
Previously, Configure.h.in used a pragma to disable warning 4996 is all
VTK-m code and anything that used it. The reason for this was that the
warning was given for any use of std algorithms such as fill_n that the
Visual Studio team deemed unsafe. Although we could fix it in our code,
it was impossible to work around warnings in other headers as the actual
warning comes from a system header file (xutility) that we have very
little control over. At the time we disabled this warning, we were
getting the warning from a bost header file, and the warning was never
to be fixed (https://svn.boost.org/trac/boost/ticket/11426).

Unfortunately, disabling warning 4996 also disables all warnings about
deprecated items. We want to support warnings for things deprecated in
VTK-m itself, so turning off this warning means we cannot correctly
support VTK-m deprecation.

Fortunately, a lot has changed since then. We no longer boost at all, so
the issue there is no longer our problem. We can thus re-enable the
warning (by removing the pragma). We've managed to avoid using these
"unsafe" functions anyway, so we should be able to cleanly build with
this warning on.
2019-11-06 09:59:00 -07:00
Kenneth Moreland
ed4d0d50c3 Add VTKM_DEPRECATED macro
The `VTKM_DEPRECATED` macro allows us to remove (and usually replace)
features from VTK-m in minor releases while still following the conventions
of semantic versioning. The idea is that when we want to remove or replace
a feature, we first mark the old feature as deprecated. The old feature
will continue to work, but compilers that support it will start to issue a
warning that the use is deprecated and should stop being used. The
deprecated features should remain viable until at least the next major
version. At the next major version, deprecated features from the previous
version may be removed.
2019-11-06 09:58:53 -07:00
Kenneth Moreland
6feb0c3763 Remove invalid arrays when applying policies to fields
Previously when ApplyPolicyFieldOfType was used in cases where not all
of the types matched not all of the storages, those invalid arrays were
replaced with an ArrayHandleDiscard. This unnecessarily increased the
length of the type names used for the resulting ArrayHandleMultiplexer.

Now, ListTagRemoveIf is used to remove any invalid arrays so that the
resulting ArrayHandleMultiplexer only includes the valid arrays.
2019-11-02 11:08:09 -06:00
Kenneth Moreland
4c103e421a Add ListTagRemoveIf
Provides the ability to remove items from a list.
2019-10-31 14:32:17 -06:00
Kenneth Moreland
3b7b21c86d Do not use std::is_trivially_copyable on GCC 4.X
Although GCC 4.8 and 4.9 claim to be C++11 compliant, there are a few
C++11 features they do not support. One of these features is
std::is_trivially_copyable. So on these platforms, do not attempt to use
it. Instead, treat nothing as trivially copyable.
2019-10-30 16:15:44 -06:00
peter
da83076d7f Merge branch 'master' into peter-changes 2019-10-30 09:36:53 +00:00
Kenneth Moreland
7518d0675c Try to fix uninitialized anonymous variable warning
The code from the previous commit was causing one of the dashboards,
which is using gcc-7, to produce the following warning:

In file included from ../testing/UnitTestVariant.cxx:11:0:
../Variant.h: In function 'void {anonymous}::TestCopyDestroy()':
../Variant.h:269:5: warning: '<anonymous>' may be used uninitialized in this function [-Wmaybe-uninitialized]
     this->Storage = std::move(rhs.Storage);
     ^~~~

At best, this warning is not helpful as it does not seem to point to
anything that could be used uninitialized. At worst, it might be a
compiler bug. A Google search finds a few similar bugs although none I
can assert with any confidence of this issue. However, many reported
bugs and issues point to the use of anonymous namespaces. So, I'm going
to attempt to fix the problem by removing anonymous namespaces.
Hopefully it will fix the warning or at least point me to something
concrete that I can fix.
2019-10-27 07:34:06 -06:00
Kenneth Moreland
5b18ffd770 Register Variant as trivially copyable if possible
The Variant template can hold any type. If it is holding a type that is
non-copyable, then it has to make sure that appropriate constructors,
copiers, movers, and destructors are called.

Previously, these were called even the Variant was holding a trivially
copyable class because no harm no foul. If you were holding a trivially
copyable class and did a memcpy, that work work, which should make it
possible to copy between host and device, right?

In theory yes, but in practice no. The problem is that Cuda is
outsmarting the code. It is checking that Variant is not trivially-
copyable by C++ semantics and refusing to push it.

So, change Variant to check to see if all its supported classes are
trivially copyable. If they are, then it use the default constructors,
destructors, movers, and copiers so that C++ recognizes it as trivially
copyable.
2019-10-26 22:53:43 -06:00
Kenneth Moreland
16305bd837 Add tests of ArrayHandleMultiplexer on multiple devices 2019-10-26 13:40:42 -06:00
Sujin Philip
5ca9a4bd5e Fix UnitTestError
The previous changes were incorrect and did not fix the problem.
2019-10-21 10:08:23 -04:00
Sujin Philip
5c13198407 Merge topic 'fix-dashboard-issues'
79f7f8275 Fix UnitTestError failure
901711bff Fix test failure due to floating point issues

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1896
2019-10-17 17:32:32 -04:00
Sujin Philip
79f7f82751 Fix UnitTestError failure
Compiler optimization may remove recursion and other function calls so we
cannot rely on the number of stack frames to be consistent.
2019-10-17 17:30:40 -04:00
Sujin Philip
901711bff4 Fix test failure due to floating point issues
Floating point precision issues are causing the Reduce algorithm of the OpenMP
backend to produce result that is off by more than 0.001.
2019-10-17 17:30:32 -04:00
Robert Maynard
0fccc5f2c4 improve moments algorithm performance 2019-10-17 11:51:05 -04:00
Kenneth Moreland
d3d3e441d7 Merge topic 'cell-metrix-missing-include'
677962f93 Add Matrix.h to cellmetrics include

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Hank <hank@uoregon.edu>
Merge-request: !1892
2019-10-14 17:01:32 -04:00
Robert Maynard
698df3353b Merge topic 'image_median_filters'
d47f7aaa2 Add an ImageMedian filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1890
2019-10-14 16:21:16 -04:00
Robert Maynard
d47f7aaa29 Add an ImageMedian filter 2019-10-14 16:09:44 -04:00
Robert Maynard
23f55ad0ef Merge topic 'algorithm-fill-fixes'
64dede748 Fix Compilation bug with Fill method

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1889
2019-10-14 11:49:23 -04:00
Kenneth Moreland
677962f939 Add Matrix.h to cellmetrics include
This file was using the Matrix class but not including Matrix.h. When I
tried to use the MeshQuality filter in an example that did not include
Matrix.h on its own, I got a compile error.
2019-10-11 00:08:04 -04:00
Dave Pugmire
665f323db0 optimization for mask select for all masks active. 2019-10-10 16:56:26 -04:00
Dave Pugmire
46c4c0e443 First light for streamlines.. 2019-10-10 09:46:29 -04:00
Dave Pugmire
4a7129db01 compiler warnings. 2019-10-10 08:43:39 -04:00
Sujin Philip
48927c6da3 Merge topic 'fix-lcl-dashboard'
0bb8cbf42 Fix CellLocatorUniformBins test
169049143 Merge branch 'upstream-lcl' into fix-lcl-dashboard
e7cf79a93 lcl 2019-10-09 (d7604cbf)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1888
2019-10-10 08:32:29 -04:00
nadavi
64dede7486 Fix Compilation bug with Fill method 2019-10-09 16:07:43 -06:00
Robert Maynard
1de5774d57 Merge topic 'just_infer_execution_signature'
cf2d62fb9 Remove unneeded ExecutionSignatures
c3f0060cc ExecutionSignatures are now optional for simple worklets
1b08521fa Merge branch 'upstream-taotuple'
c6d309566 taotuple 2019-10-08 (0d1e4dfd)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1882
2019-10-09 15:44:36 -04:00
Dave Pugmire
02b0fd51e4 remove cout commands. 2019-10-09 15:37:42 -04:00
Dave Pugmire
3be90354ff compiler warnings, etc. 2019-10-09 15:28:42 -04:00
Robert Maynard
cf2d62fb90 Remove unneeded ExecutionSignatures 2019-10-09 14:56:07 -04:00
Sujin Philip
0bb8cbf420 Fix CellLocatorUniformBins test 2019-10-09 13:55:55 -04:00
Dave Pugmire
d2cdbd66c0 Remove compiler warnings. Move functionality to Bitset class. 2019-10-09 13:31:45 -04:00
Allison Vacanti
c68919fcc9 Merge topic 'msvc2019_intseq_fix'
56b4fa9a3 MSVC 2019 needs a different integer sequence impl, too.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1887
2019-10-09 11:12:08 -04:00
Sujin Philip
169049143c Merge branch 'upstream-lcl' into fix-lcl-dashboard
* upstream-lcl:
  lcl 2019-10-09 (d7604cbf)
2019-10-09 11:05:19 -04:00
Allison Vacanti
56b4fa9a31 MSVC 2019 needs a different integer sequence impl, too. 2019-10-09 10:49:50 -04:00
Dave Pugmire
ddd4451102 fix compiler warnings. 2019-10-09 10:39:49 -04:00