Articles - Run Time Issues

Generating Graphs with gnuplot, Part 1

The gnuplot package can be used to generate some very slick two and three dimensional graphs. Tools such as IOzone make use of gnuplot to generate three dimensional plots letting you see the relative effect that the size of IO requests has on performance.

How They Built it: the Software of Apollo 11

When Apollo 11’s Lunar Module landed on the Moon 40 years ago today, the software that helped take humans to another celestial body was essentially built using paper-tape rolls and thick cardstock that was punched with special holes.

Five Practical Memory Principles for Coding Programs

Your programs are more reliable and often faster when you code with careful memory techniques. Those advantages come at a low cost, too: the ideas behind the five tips presented below are simple enough to understand on a first reading. Start to practice them today, and you'll soon see pay-offs in the the applications or libraries you write.
1 comments

Home Automation with Linux

Home automation may sound like a science-fiction dream, but in reality it is not only commonplace, but relatively simple to get started, especially with Linux.

Open Source in Cloud Computing Really "Under the Radar"

Clearly, the underlying technology of cloud computing will be based on open source software--that is, if the three cloud infrastructure hopefuls addressing a standing room-only crowd of more than 350 venture capital firms, large company CTOS and CIOs, and other cloud hopefuls--are as successful in their efforts as the show’s judges and audience anticipated.

Take Advantage of Your GPU with Minimum Fuss From Programs

Graphics cards are always becoming faster and able to perform more tasks in parallel. In recent years graphics cards have also gained more "general computing" facilities. Things that were impossible or very difficult, like changing the flow of a program running on the Graphics Processing Unit (GPU) are now easily accomplished. Many of the general computing tasks which are typically handled by the Central Processing Unit (CPU) of the computer ca... [more]

Multiple CPU Cores on Multiple Machines with STL-MPI, Pt. 1

The Message Passing Interface (MPI) allows you to spread a task across many CPU cores on many computers. Tasks are spread out and managed by MPI for you and a rich API is provided to allow the many tasks to communicate when needed.

Anatomy of the Linux Slab Allocator

Good operating system performance depends in part on the operating system's ability to efficiently manage resources. In the old days, heap memory managers were the norm, but performance suffered due to fragmentation and the need for memory reclamation. Today, the Linux kernel uses a method that originated in Solaris but has been used in embedded systems for quite some time, allocating memory as objects based on their size.

C++, the GPU, and Thrust: Sorting Numbers on the GPU

Version 1.0 of Thrust was released in May 2009 and is available under the Apache License version 2.0. There is a NOTICE file which also contains the Boost license and a small paragraph by Hewlett-Packard Company. So it appears there is really a mixture of open source licenses applied to the Thrust library. Thrust is completely implemented in header files, so installation for development consists of downloading the zip file and expanding it somewher... [more]

Firefox to Get Massive JavaScript Performance Boost

Mozilla is leveraging an impressive new optimization technique to bring a big performance boost to the Firefox JavaScript engine. The code was merged today (but is not yet ready to be enabled by default in the nightly builds) and is planned for inclusion in Firefox 3.1, the next incremental update of the open-source web browser.