XVis Kickoff Meeting 2014-11-17

From XVis
Jump to navigation Jump to search

Monday, November 17, 2014
ILE France III boardroom, JW Marriott
614 Canal St., New Orleans 70130

8:45 Gather and Introduction
9:00 Emerging Architectures
Existing codes
       What should go into VTK-m, what they want from VTK-m, Possible integration issues.
    PISTON 15 minutes Chris Sewell
    EAVL 15 minutes Jeremy Meredith
    Dax 15 minutes Robert Maynard
VTK-m Logistics 15 minutes Kenneth Moreland
    Missing algorithms
Discussion and Milestones 30 minutes
       1.a Initial VTK-m Design (SNL, Kitware, ORNL, LANL)
10:30 In Situ
Flyweight In Situ 15 minutes Berk Geveci
Flexible Data Models 15 minutes Jeremy Meredith
Early Career Project 30 minutes Hank Childs
       What it provides. What XVis can provide.
Discussion and Milestones 30 minutes
       2.a Expand Data Models (ORNL, Kitware)
       2.b Post Hoc Interaction (Oregon)
12:00 Lunch
1:30 User Studies
Overview of Visualization User Studies 30 minutes Kwan-Liu Ma
       Science behind user studies
       Logistics (DOE requirements, getting/handling subjects, cost)
Discussion and Milestones 30 minutes
       3.a Develop Techniques to be Studied (Davis)
2:30 Proxy Applications
Mini-apps 30 minutes Michael Heroux
       Brief overview of Mantevo
       Requirements of mini-apps
       Difference between mini-apps and proxy apps
       What should a vis mini-app look like?
Empirically Testing Scientific Apps 30 minutes Jeremy Meredith
       Brief overview of Oxbow
       Plans for vis
Discussion and Milestones 30 minutes
       4.a Initial Mini-App Implementation (Sandia, ORNL)
4:00 General Discussions
Differentiating XVis from SDAV 15 minutes
XVis and VTK-m Logos 15 minutes
Breakout Sessions?

Notes

VTK-m

One of the discussions that came up during the talk about EAVL is the use of VTK-m for self contained in situ visualization. EAVL is completely self contained with complete implementations of CUDA and multi-core algorithms, font embedding, and rendering. EAVL can be built with no dependencies making it easy to integrate with other packages such as Boost or Thrust. How far should we go with this concept in VTK-m? Can we bring in third party libraries? Can we have optional dependencies?

The basic iterator/functor idea for algorithm implementation is common across EAVL, PISTON, and Dax. What VTK-m should provide on top of this is performance across all data types. Implementing an algorithm on a regular grid might be straightforward, but how well will that algorithm perform on unstructured, higher order, hierarchical, or multi-dimensional data? VTK-m should also provide search structures. Should that be part of the data types?

Some discussion was given to task parallelism. Should VTK-m find independent operations in a sequence of operations? Should that be a layer on VTK-m? Is that important enough to implement? (Perhaps tasks can be created in more obvious and effective ways in practice, such as through blocks or other coarse data partitions.)

Streaming and distributed processing are important use cases for VTK-m. Streaming will likely take some thought and design. How much does VTK-m need to worry about distributed parallelism? At a minimum it needs to be aware of and support ghost elements. Support beyond that is likely unneeded but can be investigated.

Another important point for VTK-m to succeed is that we need to implement a large enough set of algorithms that makes VTK-m useful to simply take an apply to scientific visualization. Some time was taken to brainstorm on a top 10 common missing algorithms list that we should implement, which quickly grew to more than 10 elements.

User Studies

The studies Kwan-Liu intends to do a primarily qualitative user studies in which collaborators in other science projects evaluate different in situ techniques (e.g. standard rendering vs. explorable images). The challenge with this type of study is in demonstrating the value of the results. This is important both in terms of publishing and reporting back to ASCR. Hank is also considering more quantitative studies in which groups of subjects are measured performing particular tasks.

There was some brief discussion about getting IRB approval. Considering the nature of the study, IRB approval should be a straightforward formality. There was also the suggestion that the more qualitative studies might be exempt from having IRB approval since no formal measurements are taken, but given the nature of the proposed work, our program manager will likely be expecting an IRB review to happen.

Mini-apps

Mike's slides capture well the process of building mini-apps.

One side conversation that happened during this time was a discussion on creating task-centric dataflow networks. It can be the case that our parallel algorithms logically overdecompose the data. This can be particularly problematic for vector instructions that require multiple data elements to stay full. It is good to implement algorithms as asynchronous task launches. This maps well to mluticore architectures as well as mapping well to heterogeneous and multi-GPU architectures.

Differentiating XVis from SDAV

For the most part, XVis and SDAV are significantly different projects, but there is overlap in the VTK-m software. We need to clearly demarcate what types of work we do with each project and be careful not to double report the same work to the two projects.

The following types of work falls under the XVis project:

  • Infrastructure
  • Research
  • Filters

These types of work fall under the SDAV project:

  • Integration
  • Collaboration
  • Filters

Note that filters can fall under either project. Which one that is depends on the nature of the filter and the reason it is created. A filter that is part of the core research or infrastructure should be part of XVis. However, a filter to support a collaboration should be part of SDAV.