Most software developers don’t understand numerical computing. Most scientists don’t understand good software development practices. You need someone who can bring the two together to create quality numerical software, software that efficiently produces accurate results, that is maintainable, and that integrates with a larger computing environment.
Our team brings together decades of experience in both scientific computing and mainstream software development. And because we have experience in both camps, we can speak the language of both sides and bring them together.
Accuracy, speed, and trade-offs
Accuracy needs vary tremendously in practice. Some applications need 20 decimal places of precision and some need only one decimal place. Often applications only need a modest amount of accuracy in a final result but need high accuracy in intermediate steps in order to have enough accuracy in the end.
Sometimes speed is the concern. A project needs to compute some things faster without losing accuracy, or may even be willing to trade-off some accuracy for speed. The trade-off can be delicate, and there’s a vital need to quantify the trade-offs, to know exactly how many CPU cycles you can save and exactly how much precision will be sacrificed.
New hardware and new concerns
Just when you think the numerical analysis questions are resolved once and for all, something in the world changes and everything has to be revisited. New hardware comes out and the relative efficiency of various operations changes. Resources that were once abundant are now scarce, and what was expensive is now cheap.
Concerns change over time. Maybe rather than maximizing accuracy or speed you want to minimize energy consumption. Rather than counting ulps or flops you’re counting watts. Our team has experience developing numerical algorithms for novel architectures as well as novel uses of conventional architectures.
Maybe your numerical algorithms are sufficiently accurate and efficient, but you need to convince a third party of this. As far as you know, everything is fine, but you need to convince a customer or a regulator that you know what your worst-case scenarios are and that the worst-case is within tolerance. This can be more difficult than the initial algorithm development, but we can help.
If you would help with your numerical challenges, please call or email to discuss your project.
Trusted consultants to some of the world’s leading companies