The Best of 2011
The most popular articles of last year from Dr. Dobb's, plus some additional pieces picked out for your thoughtful consideration by our staff
View ArticleLanguage of the Month: JRuby
Ahead-of-time compilation, metaprogramming Java objects, real threads, and the ability to call Java directly from Ruby code are all ways in which JRuby improves on the standard Ruby distribution.
View ArticleLinked Lists Are, Like, So Last Century
Give up your sequential linked lists in favor of tree structures for all of your unordered data when processing that data in parallel.
View ArticleBooting an Intel Architecture System, Part II: Advanced Initialization
Once the processor is running and memory has been initialized, timers and devices must be started up and a memory map laid out. Only then, can the OS be loaded.
View ArticleLow-Cost, Low-Power Servers Begin Their Ascent
As the cloud is quickly demonstrating, small, seemingly underpowered servers are quite enough for most development tasks. Buying one of these low-cost, low-power units makes clear how much...
View ArticleWelcome to the Parallel Jungle!
Herb Sutter dives into the repercussions of parallel's reach from mobile devices, to the desktop, to clusters, and at the highest level of granularity to the cloud. This welter of different...
View ArticleRebuilding the Tower of Hanoi
Sometimes seemingly serial computations may be coded with parallel algorithms if you can figure out how to present the final results in the proper order.
View ArticleThe Need to Rewrite Established Algorithms
Parallel architectures, like other hardware advances before them, require us to rewrite algorithms and data structures especially the old standbys that have served us well
View ArticleProject of the Month: TestNG
Not every coder uses xUnit frameworks for testing. Many prefer TestNG, which gets around xUnit limitations, supports testing at multiple levels (unit, functional, integration, end-to-end), and greatly...
View ArticleHot-Rodding Windows and Linux App Performance with CUDA-Based Plugins
Adding GPU capabilities to existing Windows and Linux apps can be done simply using plugins and the built-in support found in CUDA. This easy form of dynamic loading enables CUDA to be used selectively...
View ArticleMastering Threads on MacOS X
The MacOS X platform has four thread solutions two of which are obsolete as of version 10.7. Your choices are now POSIX threads or Cocoa's NSThread class. Here's how they compare and how to get...
View ArticleIf Small Tasks Are the New Program Unit for a Multicore World, When Will We...
The right way to write multithreading code keeps evolving. If only we could keep up!
View ArticleWaiting for One-Off Events with Futures
The maintainer of the Boost Thread library explains the C++ language feature called futures, which enables threads to synchronize on the occurrence of specific events
View ArticleWhen Tasks Replace Objects
Suppose that tasks were to become the new objects from which programs are assembled. How would programming change?
View ArticlePLINQ: Parallel Queries in .NET
LINQ queries execute when you iterate over results, and they execute sequentially. With PLINQ, the iterations are performed in parallel, as tasks are scheduled on threads running in the .NET Framework...
View ArticleC Finally Gets A New Standard
Tom Plum explores the new additions to C in a series of articles, starting with language-level atomic operations and thread primitives.
View ArticleIntel's 50+ core MIC architecture: HPC on a Card or Massive Co-Processor?
Will Intel’s Knights Corner chips function as co-processors like GPUs, or will they be stand-alone many-core Linux systems? The two approaches present very different performance profiles.
View ArticleBenchmarking Block-Swapping Algorithms
Algorithms for swapping blocks of data appear simple, but vary widely in their performance profiles. Choosing the right one can be crucial to good performance.
View ArticleEasy GPU Parallelism with OpenACC
An emerging standard uses pragmas to move parallel computations in C/C++ and Fortran to the GPU
View ArticleWriting a Bi-Endian Compiler
The techniques for writing a Bi-Endian compiler for porting byte order-sensitive applications. Plus, a look at its application and benchmarks for its performance.
View Article