The Power of Performance

 

Slow software is costing you money, time, battery life and many times, your customers. Most of the software that powers the world is wasting countless computer cycles (time and energy) unnecessarily. I have been focused on efficient software for more than 30 years and for the last ten years I have dedicated 100% of my time to optimizing code. The positive results seen by my optimization services include increasing battery life, improving usability, cutting costs such as cloud service bills, and opening up new possibilities with improved speed.

Why People Use Inefficient Software:

  • They are unaware that the software is inefficient

  • It is part of an open source library or tool

  • They do not have on-site expertise to optimize the code

  • They think optimizing would be too costly or risky

  • They think optimization involves shortcuts or loss of quality

EXPERTISE
 
ALGORITHM SIMPLIFICATION

 

In order to write code effectively, you must balance many variables and assumptions in your head. Often these assumptions cause you to look past simpler solutions or outright errors in the logic. Things like early exiting from loops, reduction of excess math precision or unnecessary floating point operations, or just making better use of the target platform capabilities can yield substantial performance improvements.


 

SIMD (Single Instruction Multiple Data)

 


Compiler vendors give the false impression that turning on maximum optimization or auto-vectorization is sufficient to make your C or C++ code run as fast as possible; this is rarely the case. I'm able to craft efficient SIMD in cases where the compiler has no clue how to do it (e.g. anything with a conditional statement in the main loop). This can net you a 2-16x speedup of your critical functions. Today's compilers are very good at instruction scheduling, but not at algorithm interpretation. You know your data better than the computer, but the C language doesn't always allow you to express it in a way that the compiler can use. By creating SIMD intrinsics, I overcome the limitation of the auto-vectorizer, yet take advantage of the instruction scheduler.

BITS, BYTES AND PIXELS

 
 
I've been writing my own imaging codecs since 1989. My experience with data compression, pixel format conversion and optimized memory access patterns of images can often provide new, non-obvious ways of improving your imaging pipeline. I have also written my own set of popular format imaging codecs with no licensing issues that can outperform open source libraries. These have helped solve performance issues with multiple clients over the years.
 

In an initial free consultation, I can quickly determine how much I can optimize your company's software. After our first consultation, you can decide what area to focus on and we can get started immediately. Positive results can be seen in as little as a few hours. The type of code that I normally optimize is native code (C, C++, ASM). Feel free to contact me via email or Skype.

WIN-WIN PROPOSITION