Multithreaded: Summation with Minimal Synchronization

Until now, I've used two strategies to summate a std::vector. First, I did the whole math in one thread…

Multithreaded: Summation of a Vector

My goal is to sum up all elements of a vector. I used in the last post a single thread. In this post,…

Single Threaded: Summation of a Vector

What is the fastest way to add the elements of a std::vector? This a question that I will pursue in the…

Thread-Safe Initialization of a Singleton

There are a lot of issues with the singleton pattern. I'm aware of that. But the singleton pattern is…

Ongoing Optimization: Relaxed Semantics with CppMem

With the relaxed semantics, we have no synchronizations and ordering constraints on atomic operations. Relaxed…

Ongoing Optimization: A Data Race with CppMem

But we can improve and further improve the acquire-release semantics of the last post. Why should x be…

Ongoing Optimization: Acquire-Release Semantics with CppMem

With the acquire-release semantics, we break the sequential consistency. In the acquire-release semantics,…

Ongoing Optimization: Sequential Consistency with CppMem

With atomic data types, you can tailor your program to your needs and optimize it. But now we are in…

Ongoing Optimization: Locks and Volatile with CppMem

The easiest way to solve the undefined behaviour in the post Ongoing Optimization: Unsynchronized access…

Ongoing Optimization

Now it's time to put the theory into practice. The job is relatively easy. A small program should undergo…