In this post I want to share with you how type traits can be an asset to C++ template code. Given that tsimd is based on a core template over a collection of values stored in a SIMD register, there's plenty of motivation for finding ways to keep the interface and implementation easy to use and difficult … Continue reading Building a C++ SIMD Abstraction (4/N) – Type Traits Are Your Friend
Howdy everyone out there! After a bit of a hiatus from writing, CppCast recently had Jonathan Boccara on as a guest to talk about blogging which has inspired me to get back to expository writing again. Recent developments in OSPRay since the summer have marked several deep changes and additions of our infrastructure, including some rewrites … Continue reading Building a C++ SIMD abstraction (1/N) – Motivation
It's all in title: I argue that the use of a plain pointer should be avoided as I believe they are generally harmful. Before an army of disagreeing C++ programmers come at me angry with torches and pitchforks, I want to preface this with saying that I primarily care about C++ interfaces. What I mean is if … Continue reading Plain Pointers Considered Harmful
This is the final of my 3 part series looking at thread parallelism, specifically at existing solutions providing a generic parallel-for abstraction. In case you missed it, have a look at Part 1 and Part 2. This post is going to briefly look at performance of my last post's parallel_for() wrapper inside OSPRay. I do recognize … Continue reading Thread Parallelism (Part 3): A Very Brief Look at Performance
Last week I wrote about how you should think about using an existing solution for a tasking system before you embark on building one. If you have not read that post yet, I encourage you to do so and watch the associated talk which helped inspire it from Sean Parent ("no synchronization primitives"). In this post, … Continue reading Thread Parallelism (Part 2): A Simple Parallel-For Wrapper
Seriously, it's probably not your best use of your time...