Commit Graph

61 Commits

Author SHA1 Message Date
Kenneth Moreland
56bec1dd7b Replace basic ArrayHandle implementation to use Buffers
This encapsulates a lot of the required memory management into the
Buffer object and related code.

Many now unneeded classes were deleted.
2020-06-25 14:02:26 -06:00
Kenneth Moreland
c84588caf7 Re-add assert to fix deadlock
For some reason, `UnitTestContourTreeUniformAugmentedFilterCUDA` was
deadlocking on some of the dashboards when `VTKM_ASSERT` was changed to
be empty when compiling CUDA kernels (for compiler performance reasons).
Fix this by calling `assert` directly in this case.

For the life of me, I cannot figure out why this would be an issue.
Clearly the `assert` is never actually called or else the test would
error out (unless a special condition in CUDA is causing it to be
hidden). But if you take out the code, something changes to lock up the
kernel.
2020-06-22 17:10:33 -06:00
Oliver Ruebel
66c96a983f Add BRACT for distributed contour tree computation
This merge request is Phase 1 of several to implement the distributed parallel
contour tree in VTKm. This merge requests adds the base outline for the
algorithm. The implementation of the details of the algorithm in the
BoundaryRestrictedAugmentedContourTree.h is currently still missing.
However, these will require a substantial (~3000) lines of additional code.
The goal is to stage the integration process across merge requests to make
the review process simpler.
2020-06-12 11:50:01 -06:00
Oliver Ruebel
1b73b021f6 Add routine for outputing statistics about the hyper structure. Add missing change 2020-03-20 14:04:25 -07:00
Kenneth Moreland
ec34cb56c4 Use new ways to get array portal in control environment
Also fix deadlocks that occur when portals are not destroyed
in time.
2020-02-26 13:10:46 -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
Oliver Ruebel
9c115ec6a3 Fix bug in ActiveGraph DebugPrint 2020-01-29 12:30:18 -08:00
Oliver Ruebel
77ec47aa37 Rename namespace in attempt to fix Windows built 2020-01-29 12:00:34 -08: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
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
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
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
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
Oliver Ruebel
236da581e3 Rename include guards to comply with vtk_m_ naming convention 2020-01-22 14:04:11 -08:00
Petar Hristov
bf2290c9ec Fixed an implicit conversion change warning. 2019-12-09 10:59:18 +00:00
Petar Hristov
18caed60e3 Fixed some of the compiler warning from CDash. 2019-12-05 13:50:44 +00:00
peter
9a6dec8bc4 Refactored control side function call from a VTKM_EXEC function. 2019-11-21 10:01:46 +00:00
Peter
01c49f1397 Wrote some documentation for the CT Height Branch Decomposition code. 2019-09-23 11:00:24 -07:00
Peter
549e7cf08c Added worklet to label triangles taken from an isosurface with their superarc id. 2019-09-19 13:34:21 -07:00
Peter
2ad1ca753f Added contour tree parallel persistence based simplification. 2019-09-19 13:33:47 -07:00
Peter
98105c394d Swapped rows and columns for the contour tree mesh types to make them compatible with the vtkm dimensions ordering. 2019-09-19 13:32:49 -07:00
Allison Vacanti
627cdc99b7 Fix host/device flags.
ArrayHandles don't exist in the execution environment, and functions
that use them must be marked `VTKM_CONT`.
2019-09-12 14:54:44 -04:00
Allison Vacanti
7148ab3425 Fix type conversion warning when size_t differs from vtkm::Id. 2019-09-12 13:56:43 -04:00
Oliver Ruebel
1d9f6b37cf Add support for boundary augmentation for MPI optimization 2019-09-12 12:26:01 -04:00
Sujin Philip
2a1e1dcfd9 Parallel Contour Tree
This work updates Gunther Contour tree work to be parallel.
With contributions from: @oruebel, @dcamp and @sujin.philip.
2019-09-12 12:17:37 -04:00
Allison Vacanti
3eb91af961 Use ArrayGetValue where possible in worklets.
Replace code such as `myArray.GetPortalControl().Get(0)` with
`vtkm::cont::ArrayGetValue(0, myArray)`, which will just retrieve
the single value without transferring the entire contents of
`myArray` to the host. This should prevent memory thrashing.

Also did some general style clean-ups and fixed loops that called
`GetPortalControl` in the loop body.
2019-08-22 16:42:17 -04:00
Robert Maynard
7e04b0511f Move Invoker into vtkm/cont
The Invoker is a control side object that handles the construction
of the relevant worklet dispatcher. Moving it to control makes it
obvious that it isn't an algorithm itself but a way to launch
worklets.
2019-08-01 12:34:27 -04:00
nadavi
fbcea82e78 conslidate the license statement 2019-04-17 10:57:13 -06:00
Robert Maynard
e54cbe85a8 contourtree_augmented doesn't call abort in VTK-m worklets 2019-04-12 13:26:30 -04:00
Robert Maynard
f1056affa7 Move select functions to host only to remove host/device suppressions
We previously had to mark the make_FunctionInterface function as
host/device as it could be used in either place. The ramifications
of this is that each time we launched a worklet any input parameter
had to either suppress cuda exceptions, or had to rely on the
DispatcherBase to suppress the warnings.

By making make_FunctionInterface only host callable ( as it is ),
we can remove all of our unneccesary suppression logic and better
expose real issues with code that is marked host/device but can't
be due to calling things such as std::abort
2019-04-03 12:48:33 -04:00