Whew - an exciting and tiring week is over. We had hundreds of employees stop by our TechFest booth to ask questions, talk about their team's optimization or modeling problems, look at our demos, or simply hear more about Solver Foundation. A big thanks to my teammates Lengning, Lucas, and Lin for doing such a great job this last week.
OML - our declarative language for specifying optimization problems - was received with great interest. Microsoft France's experience using Solver Foundation to schedule TechDays really "worked" as an example. Even our simple quadratic programming example in Excel opened a lot of eyes. There several questions about data binding (and there have been some recent threads in our forums), so I think I'd like to devote a couple of posts to that. Lastly, I was surprised to get several inquiries into our nonlinear unconstrained optimizer - that's an area I will devote some time to that as well.
I will be attending a couple of conferences over the next several months, but for now it's back to work on the next version of Solver Foundation.
Another busy day - we spoke with literally hundreds of Microsoft employees about Solver Foundation at TechFest '09. Microsoft is a huge company, so we got a chance to talk to people from many different parts of the company with varying backgrounds. Some are intimately familiar with optimization, others are not. So part of the challenge is to try to "meet people where they are at" and talk about Solver Foundation in a way that makes sense for them, without trivializing it or making it sound like magic beans. If you had the opportunity to come by our booth tomorrow, you'd get a few cool demos, and a variation on the following "pitch". Depending on what you wanted to talk about we could talk more about how to model real problems, or maybe the API, or maybe some of the solvers that we're developing. Or maybe the stock market, or how it sucked to lose the Sonics. If people leave with a good idea of what we're about and can think of some situations where Solver Foundation could help, I'm happy. Anyway, here's goes:
People and businesses need to be able to juggle different priorities and constraints to make good decisions. Examples include production planning, scheduling projects, configuring IT systems, advertising online. Microsoft Solver Foundation is a managed code platform for planning, scheduling, configuration, and optimization. Solver Foundation lets you easily describe your problem, get it solved, and connect it to your application.
It has three main layers: • Modeling and Programming: the modeler lets you describe optimization problems declaratively: "what", not "how". You can do it in code, or in our Excel add-in. • Solver Foundation Services: a full-featured .Net library that can be accessed from Visual Studio, C#, VB, ASP.Net, Silverlight. It transparently handles parallelism & multiple cores. It provides a rich object model, events, and data binding. • Solvers: we provide a bunch of solvers that cover a wide range of optimization problems including: LP, QP, constraint, MIP, nonlinear unconstrained. We feature an open, extensible architecture that lets plug-in third party solvers if you so choose.
Solver Foundation is developed in conjunction with researchers in Redmond and Cambridge, and is a great example of Microsoft Research innovation. We recently released our 1.1 version and you can check out solverfoundation.com to download our free Express version!
TechFest Day 1 was a blast. Tuesday is the "public day" where the press, partners, and academics are invited to check out a limited set of TechFest demos, including Solver Foundation. Me, Lengning and two of our colleagues from Microsoft Research manned the booth. A bit about our booth setup - we have one side of a booth, the other side is occupied by a research team from India working on some very cool security stuff. We have a desktop and two laptops, and we are rocking three monitors - five screens total. That's a lot of demo real estate!
Rick Rashid and Craig Mundie toured first but we did not have the chance to talk to them - maybe later in the week. Everyone else started filing in around 10:00. We had a great crowd and it was kind of a festive atmosphere. I had a bit of time to walk around and see some of the other demos, and had a lot of fun hearing from the researchers and trying stuff out. But the highlight for me was getting to talk about Solver Foundation with the press, with colleagues, with partners, and acedemics. I had some great exchanges with folks who didn't know a lot about optimization but were totally "hooked" by the end of our chat. We demoed a bunch of the samples that come with Solver Foundation, walked people through the architecture and brainstormed about possible applications.
Tomorrow and Thursday, TechFest is open for Microsoft employees, and I anticipate lots of good conversations, and hopefully the chance to see some old friends. Check out the TechFest website for info about the demos, posters (here is ours), and links. In the meantime, I will be clicking around to see if I got quoted anywhere ;)
Update: here's a screenshot from one of our demos. In the foreground can see a WPF application for server load distribution; in the background you can see the Excel 2007 Solver Foundation add-in.
Microsoft TechFest 2009 kicks off next week here in Redmond, and I am pleased to be representing Solver Foundation along with my teammate Lengning. If you don't work for Microsoft, then you may not have had much exposure to TechFest. TechFest is important from Microsoft's perspective because it shows off the innovations that Microsoft Research continues to pump out. For me, "it's personal": I've been attending TechFest as a curious employee for years, but this is the first time that I get to be in the booth, talking about the stuff I work on.
On Monday, Lengning and I will be setting up our booth and preparing for the week. On Tuesday, researchers from academia and the press will be reviewing some of the demos, including Solver Foundation. Wednesday and Thursday the full floor will be opened up to Microsoft employees. Friday I take a nap ;) It's kind of a festive atmosphere, and a geek's dream. Lots of cool hardware, deep algorithms, and interesting problems. Tuesday is going to be interesting because it will be the first time that I will be talking with the press about Solver Foundation. I will be faced with the challenge of trying to explain Solver Foundation in a nontechnical way without resorting to facile generalities or buzzwords. It's a very good thing to be forced to do that once in awhile! Maybe I'll post my best and worst soundbite of the week here, who knows...
I'll be posting some of my impressions and experiences from TechFest over the next week. I hope to see some coverage of Solver Foundation out there on the web too. If you're a Microsoft employee then drop by our booth on Wednesday or Thursday of next weeks for some cool demos and conversation. If you're not, I'll try to give you a flavor of TechFest via this blog.
Microsoft Solver Foundation version 1.1 has been released and the Express version can be downloaded for free here. 1.1 is a big deal because of the introduction of our solver plug-in model. This allows new or existing 3rd party solvers to interface with Solver Foundation Services (SFS) directly - meaning that existing OML models, C#, or other .Net application code will work without changes. As improvements in solver technology emerge, your application code will benefit without a single line of code being changed. We did not just throw the plug-in model over the wall - we have partnered with some of the top names in the field to provide certified plug-ins. The Gurobi MIP solver is included in this release as the default MIP solver (recent, independent benchmarks for Gurobi are available here). We also provide a Mosek partner wrapper. In addition, we provide reference plug-ins (with source code) for CPLEX, Mosek, Xpress-MP, and lp_solve. If you have one of these solvers, it's very easy to drop in the plug-in and get the benefits of Solver Foundation Services: declarative modeling, transparent parallelism, a fully-featured .Net API.
We have also made a number of other improvements. Solver Foundation now supports SOS2 (special ordered sets) - an ordered set of non-negative decisions where at most two consecutive values are nonzero. There is a complete description of the syntax with examples in the Excel Programming Primer document (Appendix 4). We're shipping a number of new examples, including more data binding and ASP.Net samples. Finally, we've improved the performance across the board. In particular, I am proud to say that the performance of our interior-point solvers has improved by 20%, with bigger gains for some problems.
Give it a try and let me know what you think. Post on the Solver Foundation forum with questions or comments, we want to hear from you. 2009 will be a big year for Solver Foundation and it's great to kick it off with this release.