Minutes from 112th OpenVDB TSC meeting, November 9th, 2021, (EDT)

Attendees: *Ken* M., *Jeff* L., *Andre* P, *Nick* A., *Dan* B.,
*Rich* J.

Additional Attendees: JT Nelson (Blender), Johannes Meng (Intel),
Greg Hurst (United Therapeutics), Kyle Wardlow (United Therapeutics)

Regrets:

Agenda:

1) Confirm Quorum
2) Secretary
3) Forum
4) 9.0 Release Retrospective
5) TAC Discussion about CI
6) evalMinMax (PR1219)
7) Critical Bugs
8) Explicit Template Instantiation
9) Agenda and 8.2
10) Next meeting


1) Confirm Quorum

Quorum is present.

2) Secretary

Secretary is Dan Bailey.

3) Forum

Question about memory use of point position attributes in point data grid. Dan to reply.

4) 9.0 Release Retrospective

Was a successful, but intense release. PRs should be merged sooner so that we have more time to
stabilize things before a hard deadline. Andre had some feedback around step 7 of the release
process. Dan to look at re-wording this to make it clearer as it wasn't obvious that this CI may
not be kicked off if the branch was already up-to-date.

There were also issues related to the documentation and the website. It was pointed out that the
link for the OpenVDB documentation has changed and along with anyone that had previously bookmarked
the old link, Google is still displaying search results that point at the old page which is stuck
at version 8.0.1. Nick highlighted PR1071 that attempts to publish documentation to the
openvdb-website repo directly. Needs admin privileges to test, Dan to take a look.

5) TAC Discussion about CI

Ken raised the bottleneck we experienced in our CI with the TAC and put forward our suggestion that
the ASWF could pay for wider machines on GitHub Actions. The general feeling from the TAC was that
we should aim to tackle this by moving CI functionality out into nightly or weekly jobs and
introducing caching. The TSC remains of the opinion that as the OpenVDB project has been growing
with the introduction of AX and NanoVDB, it is becoming intractable to build with just two threads.
Dan and Nick to revisit CI and look at what can be done to improve the situation, adding caching
and potentially refactoring the jobs a little to improve the throughput, then will re-assess and
potentially go back to the TAC again.

6) evalMinMax (PR1219)

Brief summary about the issues with previously single-threaded methods being made parallel. Use of
TBB can result in deadlocks if there is a lock being held when nested parallelism is invoked. This
is an issue with user code, but only shows up when a method is made parallel. For this PR, the
solution is to deprecate the old Tree::evalMinMax() and leave it as the original single-threaded
implementation, but introduce the new tools method with a parallel flag.

There is a distinct difference between Tree::activeVoxelCount() and Tree::evalMinMax() in that the
former is operating only on the topology of the tree and not the values itself. Any method that is
operating on the values should aim to be moved out of the tree and into new tools.

7) Critical Bugs

Ken proposes a critical bugs section in the change notes to eliminate cases where non-critical bugs
are deemed as reason to upgrade. However, some disagreement amongst the TSC on how people react to
bugs being fixed, in some cases people look for bugs that directly affect them before deciding to
upgrade. No consensus on this change.

8) Explicit Template Instantiation

Jeff originally reported some issues with this feature on Clang14 which were put down as not
requiring to be addressed for the v9.0 release, but has since found issues when using Clang7 and
particularly with mixing GCC9 and Clang7 and on Mac. Dan to attempt to reproduce and look for a
fix.

There is still a fairly significant performance cost and memory usage from purely instantiating the
Grid and Tree classes.

9) Agenda and 8.2

Ken requests that people don't wait for him to reach out for agenda items. Next week wish to discuss
an 8.2 release, the roadmap (please all review the document) and for us to return to the topic of
languishing PRs.

https://docs.google.com/document/d/1F1hmGnS1kIMobnfgpTJ6SYSrEPhC2B0WQAlt-idAo5w

10) Next meeting

Next meeting is November 16th, 2021. 1pm-2pm EST (GMT-5).
