Call for vote on Adjoint ODE Design Doc PR

Dear @Stan_Development_Team ,

I am calling out for a voting procedure starting today (April 12th, 2021) and lasting for two weeks on the adjoint ODE design doc which you can find here. This means that the voting period ends on Monday April the 26th 2021. The final result will then be available on April 27th. Please vote for

  1. reject the design PR in its current form
  2. accept the design PR as is

I would appreciate any rationale for rejecting should you vote for that option. This would help to improve the document for a second run.

I am tagging anyone coming to my mind who have known ODE background or have been involved in some way in this PR so far.

@bbbales2 @betanalpha @Funko_Unko @charlesm93 @rok_cesnovar @syclik @yizhang @stevebronder @Bob_Carpenter

Also tagging @martinmodrak who suggested voting. As I understood we usually go for an “alert” period for a vote for an entire week first… given that I have been calling out for feedback many times on the PR, I am jump-starting this process somewhat. In addition we had a full month during May for an experimental phase of the feature during which I called for feedback on the prototype. As such I think there has been plenty time and visibility of the topic.

I will cross-post this call for vote on discourse, but the process itself should only happen as comments on the PR.

Many thanks everyone!

The PR is accepted if a majority (>50%) of votes go for option 2. Please cast your vote by noting the numeric option 1 or 2 which you prefer. People having been part of this PR are eligible to vote or those reading into the doc and have solid knowledge/experience with ODEs in Stan.


I dunno how we’re doing the votes, but I’m in favor of this.

  1. There is a use case (this scales better with parameters)
  2. It seems like at least a couple people other than @wds15 were able to run this (see here)
  3. There’s no new software dependencies, so if we ever want to deprecate this interface, we just plug in another ODE solver behind the scenes for compatibility
  4. There’s a bunch of work to systemetize the ODE tests here, so if this thing can fit into that testing framework then I am less worried about maintenance (it’ll be going through the same basic tests as all the other solvers + whatever specialized one it needs)
1 Like

Much want to invest on digging deeper into the intricacies myself, I believe crowdsourcing it to capable users is the right thing to do. As to the tension point on specifying solver controls I have some thoughts on alternative approaches but they belong to another thread.

So we should just vote in the PR? @wds15 @martinmodrak

Please post the vote on the PR as a comment.

The prototype has been plugged into the ODE testing framework and it does play nicely with it. However, since there are more controls for the adjoint thing, I will do some adjoint specific tests in addition to the tests done by the framework.

@yizhang At this point it would be great if you could vote, yes. The exposed signature aims to maximize the control given to users and the hope is that we can provide a simpler user interface at a later point once more knowledge & experience has been gained with the function.

(the timing of the vote will allow for inclusion into the next release if accepted)

I’d like to bring everyone’s attention to the voting procedure in place:

Specifically, the procedure is

  1. proposed a vote and contact @SGB. (consider this is done).
  2. SGB appoints someone to run the vote or recommend to the SGB that the vote not happen. (I’ve added to today’s @SGB meeting agenda).
  3. That person sets up the post with the poll, notifies voters, and reports the results after the vote (TBA).

Voting on PR thread is ok though it makes tallying a bit harder.

Since I’ll be voting (for the approval of the PR) it’s only discreet me not involved in step 2 above.


@wds15, I’ll take a look at this soon (by the start of next week). Thanks!

1 Like

Thanks everyone for looking into the design PR for this and casting their vote. The final result is

7 positive votes
1 negative vote

Hence, the majority is in favor of moving forward with the current design as proposed right now.