Teleconference 2018-07-11

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.

Hank brought up the issue that it can be very prohibitive to attempt to debug issues that happen on a remote dashboard machine that you cannot replicate locally. There was some brainstorming on how to make it easier. Perhaps there could be some combination of docker images and EC2 clouds.