Here are my notes from the second day of ISMP. (Here are my day 1 notes.) I spent the whole day going to IPM talks:
Meszaros: Unfortunately I missed the plenary talk by Friedrich Eisenbrand due to microbrews. I attended an IPM session after that - first up was Csaba Meszaros - interesting to hear from him because BPMPD has been such an impressive code for so many years. His talk was about recent improvements in BPMPD. BPMPD has been in continuous development for 15 years or so. His recent work appears to focus on a) QCQP b) exploiting "hypersparsity". He is using a primal-dual log barrier method - not a primal-dual HSD method as we at Solver Foundation have chosen for our SOCP solver. So his handling of starting points and infeasibility detection is different. He went into the tradeoffs between using augmented and normal systems for the search direction, which affect both performance and numerical stability. He has implemented both and has logic on top to determine which to use. He also talked about QCQP presolve, which often whittles down the size of "real" models substantially. An interesting bit of trivia: he showed a table that compared lines of code in various modules, "then and now":
2009 1981 Ordering 5700 155 Cholesky 2825 100 Backsolve 820 45
Jacek Gondzio talked about the use of indirect methods (such as preconditioned conjugate gradient) in IPM. This hasn't worked out well in the past because such methods are not able to solve the systems to the accuracy required by IPM search directions. And the problem is still not solved, but for his new approach he did show some impressive results for dense problems. The title of my talk was Interior Point Methods in Solver Foundation. I gave an overview of where IPM sits in the Solver Foundation stack, discussed our user and solver models. (And why different user and solver models are necessary - the "user model" serves Solver Foundation Services as well as programmers, whereas the solver model is structured so as to attain the most numerically stable, high performance solver possible. Separation of concerns!) Then I gave a high-level overview of our solution approach, and talked about a couple of implementation issues including handling of free variables, equality constraints, etc. Lastly I talked about some numerical stability issues. I got nice feedback from people afterwards and there was a lot of curiosity about who is using our stuff and what is next.