Algorithm Design and Optimization

Many people think that good algorithm design and optimization are no longer important with processor speeds increasing and memory prices dropping.

In our experience this isn't always true.

Relying on faster processors or more memory to get you out of trouble can have extremely high hidden and downstream costs:

  • Fast processor or large memory requirements limits market size in the packaged software market. Few potential customers will upgrade their computer systems just to use your software.
  • The cost of an embedded system depends to a significant extent on the speed of the processor and the amount of memory used in the design.
  • Qualifcation of a new hardware design to support a faster processor or increased memory is a very expensive process.
  • Fast processors and unnecessary computation are a recipe for high battery consumption in mobile devices.

See also Myths about Algorithm Design and Optimization.

Our Approach

Each project is different, but will typically involve most of the following steps:

  • Understand the processing and data transfer operations, as well as the performance requirements and objectives.
  • Determine the theoretical constraints on performance.
  • Analyze existing code, determining the algorithsm used and where existing bottlenecks lie.
  • Identify relevant time/memory/network/storage tradeoffs.
  • Identify or develop suitable algorithms which meet your requirements.
  • Implement and verify the performance of the algorithms.

Finally, an important part of our work is documentation and knowledge transfer. It's important that your staff not only understand our recommendations, but the reasons behind them.


Albion Research Ltd. is based in Ottawa, Canada. Please contact us for more information about our services.

© Albion Research Ltd. 2008