I have been remiss in my blogging duties, I apologize, been a little busy lately…
OK first things first, I mentioned a while back that we were going to do a technology demo in Q4/2006. We have decided to push back the demo until sometime in Q1/2007. So stay tuned, we’re still going to announce the technology shortly. Once I know the date I’ll post it.
Everything is working beautifully by the way. In the almost 8 years since we started D-Wave I’ve only celebrated once (last week), when the whole system was working beginning to end. Quite a good feeling to see such a complicated thing come together like that.
For those of you who will want to use our machines, we’re converging on a programming environment that is alot more flexible and general than the one we’d originally developed as a proof of concept interface to the hardware. The new programming environment includes a declarative language that captures NP. In this framework, a programmer states what the solutions to their NP problems look like in first order logic, and our software compiles this “declaration” down to the machine language of our solver system. Declarative languages may be familiar to some of you (prolog) but don’t worry ours is easier to use, more flexible and works much better.
The big advantage of using a declarative programming language for our systems is that the actual mode of operation of these machines will be unfamiliar to most coders, and we’re trying to make interacting with them as easy and transparent as possible.
For example let’s say you want to code a biotech application (such as molecular geometric pattern matching) which requires the solution of a maximum clique problem. In order to use our machine to solve the clique part, instead of presenting a set of steps representative of some algorithm (in c or java for example), you just state what it means to be a maximum clique in first order logic. Then our software compiles that statement to the guts of the machine. Whenever you call that piece of code you get back the answer you need.
The idea is that you won’t need to know anything about how our systems work to use them–you just need to be able to state what properties the solution you’re looking for has.