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.
Each project is different, but will typically involve most of the following
- 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.