Skip to content

C++ Under The Sea 2024 Highlights

Published:

Yesterday I attended C++ Under The Sea, a conference here in the Netherlands - the country of negative elevation, windmills and kruidnoten. It was a short but great conference, featuring various national and international speakers.

In this blog post, I will share some highlights from the talks I attended and my experience at the conference as a volunteer.

Talks

Low-Overhead Logging for Low-latency Applications - Martijn Tersptra:

Exploring Boost.Geometry: A Library Based on Concepts, Traits and Tag Dispatching - Barend Gehrels

This talk introduced a shockingly generic geometry library. It is storage agnostic (works with any vector/point type), coordinate system agnostic (e.g. cartesian/geographic), dimension agnostic, and topological dimension agnostic. The library celebrated its 30th birthday, and it evolved and changed a lot during its lifetime.

I think this could be a great example for testing Hylo’s generic programming and specialization features.

Exploring Boost.Geometry: A Library Based on Concepts, Traits and Tag Dispatching by Barend Gehrels

Cache-friendly data + functional + ranges = ❤️ - Björn Fahller

He is using struct of vectors storage mechanism to store different properties of the same kind of entities. Historically, a struct of vectors instead of a vector containing structs was quite cumbersome to work with, but it has great benefits for cache locality when we are not interested in all properties of the entity at once.

He wrote a library called Columnist that allows us to use this table-like data structure with maximum efficiency using ranges and views.

I am also researching cache-friendly and memory-efficient data structures for Hylo’s compiler, so I really enjoyed this talk.

Arrays, Fusion, CPU vs GPU - Conor Hoekstra

He compared algorithms and their composition in 15 different languages / technologies across CPU and GPU, analyzing convenience and the performance metrics on different dataset sizes.

At some point, he casually mentioned that the results of the average of 50 different computational problems, and he wrote a DSL for generating the proper code for all these technologies, which is quite impressive.

The C++ Execution Model - Bryce Adelstein Lelbach

The C++ Execution Model: Bryce Adelstein Lelbach

Introduction to C++ Reflection - Inbal Levi

constexpr meta_info myMetaInfo = get_member(^ParentType, "ChildStruct");
[:myMetaInfo:] myVar{2}; // Equivalent to ChildStruct myVar{2}

My Experience

I arrived at the hotel the day before the conference. I only realized at 5pm that the hotel check-in closes at 7pm, and I live 2 hours away from Breda, so I packed my backpack in 3 minutes and biked to the train station, just to get informed that the train is not welcoming bikes until 7pm. I biked back home to drop my bike, then run to the station again. By the time I got to Breda centre, I had a list of essential things I left at home, so I planned a running route planned, hitting a store along the way. I love running, it is a viable competitor to public transport for under 5km in the Netherlands. Biking is even better, usually 1.5-2x faster than public transport. I arrived at the hotel at 6:45pm, in perfect timing. Tip: when you are running with two laptops and a full backpack, tighten the straps as much as you can, so the backpack doesn’t bounce around - this makes it much more comfortable.

Next day, I arrived to the venue at the venue at 7:45am, which was a beautiful 15-minute walk from the hotel in the sunrise. Sunrise in Breda 1 Sunrise in Breda 2

I was a volunteer at the conference, which gave a unique experience interacting with many attendees and our great organizers. We helped at the registration desk with Floris Bob, after which we attended the talks and gave heads-up to the speakers whenever they had only 5-10 minutes left and when they were running out of time. There were a lot of things going wrong behind the scenes such as a room being too light and the presentation was illegible, or too dark and people were falling asleep. Nonetheless, we tried to react to issues as quickly as possible, and I think we also collected a great amount of lessons learned for next year.

I really enjoyed the talks, all of them got me thinking and opened my eyes to new possibilities, techniques and technologies. I also met and talked with many people, some of them I knew from my previous C++ On Sea, but I felt the 1 day to be too short to have a proper conversation with everyone I wanted to talk to. The conference sold out fully, and it was a great success, so I hope next year it will be 2-3 days.

I also had the opportunity to meet Conor and Bryce, the hosts of ADSP: The Podcast which I’ve been listening since I started university (2 years ago), and who brought me in to the C++ community, inspiring me to start watching conference talks, read C++ books, and eventually going to conferences in person.

After the conference, we went together with a group of people to a carefully chosen Indian restaurant for Bryce’s wish, then headed over to the hotel’s bar for talking about air travel, US credit cards and tornadoes for a surprisingly long time.

Jan Baart, Floris Bob, Conor Hoekstra, Jonathan Müller, Bryce Adelstein Lelbach and Ambrus Tóth ^ Jan Baart, Floris Bob, Conor Hoekstra, Jonathan Müller, Bryce Adelstein Lelbach and me.

Conclusion

Go to conferences! If you are a student, you can get a student ticket for a lower price or apply as a volunteer which usually comes with a free conference ticket. I would also recommend volunteering or giving a talk / lightning talk of some interesting topic you like.

~ Ambrus Tóth, 2024-10-12