My musings about the world around me.

CAINE 2015 – Optimizing Performance of C++ Threading Libraries

I have another publication that I decided to do because I have too much free time. It’s for a small conference that happened a couple months back. The paper is on multi-threaded programming in C++. I compare several C++ threading libraries (POSIX threads, Boost threads, OpenMP, c++11 async and c++11 threads) on various computer architectures including a 256-core super computer. The results were rather interesting. The main point of the paper is that my co-author wrote a previous paper that tested threading libraries, but created a test program that wasn’t a very good representation of a multi-threaded program. So he agreed to write a paper with me to augment his research. You can take a look at the research paper here. In a nutshell, you want to have each thread take at least 100ms otherwise the cost of creating a new thread starts to be significant. OpenMP is super-easy to use, but it isn’t as efficient as using your own threads. Check out github for the source code.