Teleconference 2018-07-11

From VTKM
Revision as of 13:43, 11 July 2018 by Kmorel (talk | contribs)
Jump to navigation Jump to search

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.