Teleconference 2018-07-11
Attendees: Ken Moreland (SNL), Abhishek Yenpure (UO/SNL), Dave Pugmire (ORNL), Matt Letter (SNL), Robert Maynard (Kitware), Allie Vacanti (Kitware), Berk Geveci (Kitware), Haochang Liu (Kitware), Hank Childs (UO), Ollie Lo (LANL)
Policy for granting developer access
- What is a non member able to do?
- Can they submit an MR request (but not merge it)?
- That sounds fine for introductory behavior
- Is the difference that Developers can merge their own MR?
- Should be some vetting process, right?
- Maybe say you can be a developer after some prescribed number of assisted merges (2? 3?)
- Hank: we should be as inclusive as possible.
- We should reach back to anyone who sends such a request
- Rob: Is there a way to get their email?
- Could open issue and use notifications on tracker
Apologies for somewhat unstable merges at the end of June.
- ECP milestone deadlines pushed us to accept some merges that we would normally have waited on.
- We are still working through some issues of recursive function calls on CUDA
- With that, let's be more vigilant about ECP deadlines.
Upcoming ECP Milestones
- Better Dynamic Types
- Doesn't look like it will completely done by end of September
- Rendering Topological Entities
- OpenMP
Dave: Mark Kim is making good progress on finishing up the rendering entities. Pushing to one of Matt Larsen's branches. Need to work merging that back to master.
Ken: working on not requiring a device adapter tag for using a Dispatcher. Will use TryExecute under the covers to find a valid one. Mostly this cleans up the code quite a bit. It increases the use of vtkm::cont::Algorithm quite a bit. Added a way to pass vtkm::cont::ExecutionObjectBase classes to arguments that automatically get converted to the device the algorithm is actually run on.
There are a few instances where a worklet is tied to a specific device because it is holding some device specific structures (usually array portals). Usually this is easily fixed by passing arrays to Invoke with WholeArray* arguments. Sometimes you have to build ExecObject arguments, which is a little more complicated because you have to create dual control/execution objects. The biggest change so far is with particle advection integrators and evaluators, which I am working on right now.
Rob suggested adding an ExecutionSignature tag that passes the device adapter tag to the worklet operator. That way you could make compiler specializations for a particular device.
Matt Letter: working on getting the user's guide to compile.
Matt Letter: in review of atomic array merge request.
Abhishek: working on point merge feature. Find all points that are coincident or within a certain threshold and merge them together.
Rob: can pass pointers to Invoke. They get automatically converted to references to be passed to transport. Also fixed an issue where all transports assumed a const object, which precluded doing something like a PrepareForOutput.
Rob: fix a bug with the color table where you could not specify to which device it would go to.
Allie: fixed some issues with dashboards. CUDA 32-bit ids are working again. New worklet that is generating wavelets.
Haochang: adding warp by vector and warp by scalar. Also working with bug diy with CUDA and VTK.