Faster Sorting in C#

Update: A follow on blog Even Faster Sorting in C# is taking shape. C# has several built-in algorithms for sorting arrays, lists and other containers. Array.Sort and List.Sort have many variations for sorting full or partial containers, using an algorithm that runs on a single CPU core. Array.Sort and List.Sort uses a hybrid sorting algorithm […]

Read more "Faster Sorting in C#"

High Performance C#

C# is a wonderfully powerful object oriented language with support for many modern constructs, supporting variety of abstractions, managed environment, numerous libraries, with one of the most enjoyable and productive development environments. At each level of abstraction, as one of my friends reminded me, we can loose performance, such as when going from assembly language […]

Read more "High Performance C#"

High Performance Parallel C#

C# provides a powerful set of algorithms for standard containers, such as array and List, when you add “using System.Linq;” statement to your code. Arrays and List containers gain such functionality as Sort, Equal, Sum, Union, Where, Min, Max, First, Last, and so on. For instance, these make it simple to find the minimum element […]

Read more "High Performance Parallel C#"

Parallel Algorithms in C#

C# is a wonderful programming language, evolving quickly. Microsoft has pushed C# into parallel programming by adding the Task Parallel Library, simplifying development of efficient parallel algorithms.  In this blog I’ll describe the parallel library that I’ve developed, with some excellent preliminary results. Preliminary Performance Results Parallel Sorting is running more than 2X faster than […]

Read more "Parallel Algorithms in C#"

Indianapolis Video Heritage

With the possibility of Amazon choosing Indianapolis for its second headquarters, many have written about the benefits of Indy’s tech scene. I ran across a wonderful article a few days ago in the Indianapolis Monthly which inspired this blog. This article talked about variety of Indianapolis legacies that have shaped and are shaping the city’s […]

Read more "Indianapolis Video Heritage"

Memory Hierarchy Bandwidth

This is a reprint of my Dr. Dobb’s article from May of 2004. Yet, it is still relevant today, with memory bandwidth within the memory hierarchy being critical to reaching full performance potential. Optimization often demands diving into system memory and processor cache. Intel architecture CPUs are made of several parts working together to execute […]

Read more "Memory Hierarchy Bandwidth"

Parallel Merge

This blog is a re-post of my Dr. Dobb’s Journal article in February of 2011. All of the source code, including a working VisualStudio 2022 solution with examples is on GitHub along with the Parallel Merge implementation. Parallel Merge Sort has also been developed. Another resource is a recently published Parallel Algorithms in C++ and […]

Read more "Parallel Merge"

Parallel Merge Sort

This blog is a re-post of my Dr. Dobb’s Journal article from March of 2011. All of the source code, including a working VisualStudio 2022 solution with examples is on GitHub along with Parallel Merge Sort implementation. Another resource is a recently published Parallel Algorithms in C++ and C# Book which describes Parallel Merge Sort […]

Read more "Parallel Merge Sort"

Recursive Multiplier in VHDL

In late 1996 I developed a recursive hardware multiplier, and presented it at the Synopsys User Group conference in 1998. I recently ran across Karatsuba algorithm for fast multiplication, where its recursive application reminded me of my recursive multiplier. I was mainly after increasing performance for fairly small multipliers, ease of pipelining, and not in […]

Read more "Recursive Multiplier in VHDL"