Even Faster Sorting in C#

My earlier Faster Sorting in C# blog described a Parallel Merge Sort algorithm, which scaled well from 4-cores to 26-cores, running from 4X faster to 20X faster respectively than the standard C# Linq.AsParallel().OrderBy. In this blog, I’ll describe an even faster Parallel Merge Sort implementation – by another 2X. Performance of the New Approach C# […]

Read more "Even Faster Sorting in C#"

To In-Place or To Not-In-Place

What Is It? Computing constantly provides space-time trade-offs. To make an algorithm faster, more space can be used. Or, if space is at a premium, then a slower and more space efficient algorithm can be used. This kind of a trade-off occurs in every aspect of computing, such as software development and chip design. In […]

Read more "To In-Place or To Not-In-Place"

Parallel Standard Deviation

Standard deviation is a core statistical algorithm used to measure variability of a data set. It is used in data science extensively, to provide useful information about the data. The computation itself uses summation twice within the algorithm: once to compute the mean (average) of the data set, and another to sum the square of […]

Read more "Parallel Standard Deviation"

Memory Access

Computer system memory is thought of as RAM – Random Access Memory. Originally, this meant accessing any random location took the same amount of time. This is true of certain kinds of memory types, such as Static RAM – SRAM. In this section we’ll discuss how the current computer system memory has significantly deviated from […]

Read more "Memory Access"

Git by Task

This blog is a slightly different kind of a cheat sheet. It is based on common tasks that we do using git command line. Hopefully, this blog will reduce your memorization overload. To Clone a Repository git clone https://repositoryName.git grab the repository.git part from the git web UI for cloning a repository. This command will […]

Read more "Git by Task"

Parallel LSD Radix Sort

I’ve taken several attempts at parallelizing the LSD Radix Sort algorithm. This blog provides the key concepts and details about the latest attempt, which has succeeded and is beginning to pay off dividends of higher performance. Performance Summary The following table shows performance of three variations of the LSD Radix Sort on two different multi-core […]

Read more "Parallel LSD Radix Sort"