Client Server’s Michael Oliver talks to Octeract’s founders Nikos Kazazakis and Gabriel Lau about how they’re changing the way raw data is turned into decisions.
Michael Oliver : You two have known each other a long time?
Nikos Kazazakis : Yes, we have. We actually met eight years ago where we did our PhD in the same office. We've been friends ever since. When I had the idea to start Octeract, my first action was to recruit the smartest guy I know.
Gabriel Lau : Certainly the way Nikos pitched at the time, I thought that was a great opportunity to introduce something that could potentially be revolutionary and also something super interesting and try and commercialise that at the time.
MO : What does Octeract do?
NK : We build the next generation tools that people use to convert raw data into decisions. We hear a lot about data science and how people use it to convert data to insights. We can use data science to get probabilities about things that are happening and see trends. However, what most people don't realise is that there is a step missing.
MO : What is that step?
NK : The scientific field that actually converts insights and numbers to actionable decisions is called mathematical optimisation. While we've seen the big difference fundamental technologies like Python or Machine Learning have made over the last 20 years, that kind of change has not happened with mathematical optimisation – it’s still a very manual, laborious, experience-heavy process that can take months to years to just figure out. This is the problem we are solving.
MO : How are you doing that?
NK : We have multiple angles of attack when it comes to creating a streamlined process. In my PhD, I worked on a new solver technology for mathematical optimisation problems. This, for the first time allowed us to harness the power of the cloud to get better solutions faster. In technical terms, these are massively parallel algorithms for mixed integer and nonlinear problems. And in layman's terms, these mixed integer, nonlinear problems are decision making problems. A good example is, say, we have a factory. We can create math and use math to describe the machines, how they operate, connect them to environmental conditions, add constraints about schedule and so on. Data science can give us trends, but what if we want to use this information to actually operate the factory? That’s the question we’re looking to answer.
MO : What are you working on to address that issue?
NK : In the last two years, we've built a very unique optimisation solver. It uses a technology called MPI to seamlessly find thousands of processors in the cloud and solve very difficult optimisation problems. But solving is only one piece of that automation puzzle, which leads me to our second innovation: a new programming language and a compiler that interprets and compiles that language. It's a program we're calling The Reformulator.
MO : How does it work?
NK : The Reformulator enables people to generate mathematics automatically. Reformulation is actually a very time-consuming task and it has to be done by an expert. It's not uncommon for people to spend three weeks to two months reformulating a single model to another form. The Reformulator basically automates this so people can save two month iterations just by using that technology. And by the way, there's no machine learning in this. This is all mathematical goodness.
MO : Is this the first of its kind?
NK : It's unique, there is no product we are aware of that can do these kinds of manipulation. And in fact we are very certain because if it existed we could have used it for development.
GL : People found that formulating a model and sending it to a solver just doesn't work. You have to go back and tweak it, modify the math, do all of these tricks. It also just happens that we were already building this because it's a fundamental part of what makes our solver work so well. And also it's a fundamental part of how we were so efficient, as Nikos was saying earlier, in terms of catching up to get the solver to a state that's competitive with the rest. So it's taking that model that we already had, fitting it into what the market data was telling us and realising that there was a gap and opportunity.
MO : What kind of tech stack do you use at Octeract?
GL : We use a lot of C++ because everything we do is high-performance, including symbolic manipulation. We use a bit of C interacting with Fortran to write interfaces to third party code written in Fortran. We also use a lot of third party software that does very specific calculations. So we use some open source optimisation solvers as part of to solve some sub problems, our solver generates in order to do its magic. So we use things like IPOPT, CBC, CLP and so on.