Channels ▼

Stephen Blair-chappell

Dr. Dobb's Bloggers

If It Works -- Use It!

April 30, 2009

I recently spoke at the ACCU ("Association of C and C++ Users") Conference in the UK, with the title of my talk being "Seven Tips To Help Get You Started on Multicore".The first tip was 'don't fix what works', the point being that if you have an application that already runs fast enough and there is no business case for making it faster, then don't invest the time implementing parallelism.

When I next do such an event I'm going to add an additional point "If it works -- use it". My thought being that if you have a technique that makes your application run faster you should use it -- even if the solution is not perfect.

I've just read a paper that discussed the performance gains when using two compiler optimisation switches - O2 and O3. The paper showed that by fiddling with the environment and link order, you could make either O2 or O3 produce the faster code for the given application. The implication was that some benchmarks can be turned upside down by altering some variable of the system or build environment.

It would be easy to use such observations to become skeptical of any benchmarks, worse still, you could stop doing any optimisation work at all. When we get to this point, we have lost the plot!

It's easy to get to what I call a 'relegious position' on such matters. (If you don't know what I mean, try talking to a LINUX developer about the benefit of using Windows -- or vice versa).

Surely if my application in a given environment runs faster, then I should take advantage of that. "If it works -- use it!".

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.