Vir's blog — go fast with readable code!

there's too much unused parallelism on a single core

My vision for an interdisciplinary RSE institute: how to actually help scientists

28 Apr 2026

Today I attended a talk by Dr. Florian Mannseicher on FutuRSI—an “initiative […] to conceptualise a German research software institution”. The discussion around critical challenges and concrete needs facing the research software community resonated with me—particularly because I discussed many of these same issues—still unresolved today—in 2020 in “Software Engineering as Scientific Infrastructure”. I believe FutuRSI should be the place to solve what I wrote about back then. I’ll elaborate in this post. Since 2020 our ability to talk about these issues has improved. “Research Software Engineering” (RSE) has become a widely used term. There are conferences on RSE. But the main problem has not been addressed—in my opinion.

Read on …

Virtual Trip Report: WG21 Kona 2025

13 Nov 2025

After the CD (committee draft) is out, WG21 is in bug fixing mode. Consider NB comments as the tickets that force us to consider a resolution and provide an answer. Such issues can either be design issues or wording issues (where wording does not match stated design intent). Besides NB comments, many library issues had been filed and prioritized independently, which led to several categorized as must/should fix before the standard is finalized.

Read on …

The story of regularity and std::simd

16 Nov 2023

In this post I will talk about regularity and why std::regular<std::simd<int>> needs to be false in order to preserve regularity at the level where it matters: equational reasoning. The issue of regularity came up repeatedly when discussing the design of std::simd for C++26. (It also came up in 2017 for std::experimental::simd.) My goal for this post is the exploration of options and their consequences. There’s a lot more to be said, but this post is already too long. In any case, when talking about regularity, we need start with “Elements of Programming”, the book that introduced the concept:

A type is regular if and only if its basis includes equality, assignment, destructor, default constructor, copy constructor, total ordering, and underlying type. […]

Algorithms are abstract when they can be used with different models satisfying the same requirements, such as associativity. Code optimization depends on equational reasoning; unless types are known to be regular, few optimizations can be performed.

Alexander Stepanov, Paul McJones — Elements of Programming (EoP)
Read on …

Data-Structure Vectorization

29 Jul 2021

One of the major benefits of type-based vectorization is data-structure vectorization. I’ll introduce and hopefully motivate the pattern in this post.

Read on …

Software Engineering as Scientific Infrastructure

11 May 2020

A “brain dump” …

Read on …