Adhoc: a virtual event to explore systems engineering

When?
Our first virtual event will be this April 23rd at 4PM ET / 8PM UTC (gcal).

Where?
The event will be live streamed on Zoom and YouTube. Questions will accepted and moderated through twitter, with #adhoctalks. Be on the lookout for the link!

Who?
We have 4 great speakers lined up. See below.

Who is organizing this?
This is a personal project of Paul Khuong, Samy Al Bahra and Jessica Natoli.

I would be interested in presenting at a later event, maybe under a different theme.
Send an email to pvk@pvk.ca with your topic, abstract, and list of references to pre-read.

Sponsors
Thanks to Backtrace for sponsoring the event.

Four 15 minutes talks, background material to cut to the chase

1. Why mmap is faster than system calls

Speaker
Alexandra (Sasha) Fedorova

Summary
Sasha will share with us her experiences optimizing the MongoDB storage engine for modern fast storage devices. Sasha brings with her a wealth of experience with significant contributions to NUMA, memory allocators, databases and more.

Sasha is a professor at the University of British Columbia and a consultant at MongoDB.

Recommended reading before attending
- Getting storage engines ready for fast storage devices
- Why mmap is faster than system calls


2. Making safe memory reclamation a feature of your memory allocator

Speaker
Jeff Roberson

Summary
Jeff Roberson will share with us his experiences in the design and implementation of a novel safe memory reclamation mechanism that integrates directly into the FreeBSD kernel memory allocator. This is an alternative to RCU and epoch reclamation for many use-cases and is able to achieve 2X-6X better performance!

Jeff has made significant contributions to open-source and is the author of the FreeBSD ULE scheduler.

Recommended reading before attending
- Making Lockless Synchronization Fast: Performance Implications of Memory Reclamation (Hard, McKenney, and Brown, 2006)
- The Slab Allocator: An Object-Caching Kernel Memory Allocator (Bonwick, 1994)
- Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources (Bonwick, 2001)
- subr_smr.c
- smr.h


3. A 15-minute history of task isolation on Linux

Speaker
Matt Fleming

Summary
Many high-performance and real-time scenarios need to run tasks without interruption from either other tasks or the underlying kernel, and task isolation has been a common feature in RTOSes for years. Linux has improved its support for this use case for a long time and each improvement has brought the goal of running userspace tasks without interruption closer to reality. This talk will briskly cover the last 18 years of Linux kernel development relating to task isolation, finishing with the state of the art today and the latest version of the "task_isolation mode" patches on the Linux kernel mailing list. Expect some Linux kernel development history and explanation of kernel internals.

Matt is a senior performance engineer at SuSE and has made several significant contributions including improving Linux kernel scheduler performance by up to 20% for AMD EPYC.

Recommended reading before attending
- https://lore.kernel.org/linux-api/07c25c246c55012981ec0296eee23e68c719333a.camel@marvell.com/">
- LWN: A full task-isolation mode for the kernel
- LWN: Dropping the timer tick — for real this time
- SUSE Linux's Shielding Linux Resources


4. jitmap, an execution engine for bitmap expressions

Speaker
Francois Saint-Jacques

Summary
jitmap is a small library providing an execution engine for logical binary expressions on bitmaps. Some examples where this is relevant:

* In search engines, posting lists (sorted sequences of integers) are encoded with bitmaps. Evaluating a search query (logical expression on keywords) can be implemented with logical expression on bitmaps.
* In columnar databases, selection vectors (index masks) are encoded with bitmaps, the results of predicate on column expressions. The bitmaps are then combined in a final bitmap.
* In stream processing systems with rule engines, e.g. adtech bid requests filtering with campaign rules, bitmaps are used as a first-pass optimization to lower the number of (costly) rules to evaluate on each incoming event.

jitmap compiles logical expressions into native functions with signature void fn(const char**, char*). The functions are optimized to minimize memory transfers via operator fusion and uses the fastest vector instruction set provided by the host.

Francois works full time on R Studio on Apache Arrow and otherwise has worked on columnar database internals for several years now.

Recommended reading before attending
- Bitmap Index Design and Evaluation (Chan and Ioannidis, 1998)
- The "Jamming" section (pp. 8-11) of A catalogue of optimizing transformations (Allen and Cocke, 1971)
- The code itself
- Faster Population Counts Using AVX2 Instructions
- LLVM Tree-Height-Reduction optimization pass