<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reitzen ad absurdum</title><link>https://reitzen.com/</link><description>Recent content on Reitzen ad absurdum</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 14 Feb 2022 12:00:00 +0000</lastBuildDate><atom:link href="https://reitzen.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Advent of Code 2021, Day 24: Computing with Sets</title><link>https://reitzen.com/post/aoc-2021-24/</link><pubDate>Mon, 14 Feb 2022 12:00:00 +0000</pubDate><guid>https://reitzen.com/post/aoc-2021-24/</guid><description>Day 24 of Advent of Code 2021 naively involves implementing a machine that implements an imaginary assembly language, with a program given as the puzzle input. This must then be executed up to 9^14 times to search for the lowest and highest program inputs that yield a specific result.
Implementing it as an interpreter is computationally infeasible. I did this as a first pass, and it would have taken almost one hundred years of wall clock time to execute.</description></item><item><title>Temporal Fuzzing II: Barriers, CAS and Locks</title><link>https://reitzen.com/post/temporal-fuzzing-02/</link><pubDate>Sun, 11 Jul 2021 00:00:00 +0000</pubDate><guid>https://reitzen.com/post/temporal-fuzzing-02/</guid><description>Part of a Series: Temporal Fuzzing I: Memory Models Temporal Fuzzing II: Barriers, CAS and Locks In Process Memory Models In the previous post, we looked at a simple shared memory concurrency problem. Then we simulated it using Temper, my Clojure library for temporal fuzzing.
In this post, we&amp;rsquo;re going to explore shared memory concurrency more. We&amp;rsquo;ll cover Intel vs ARM, and introduce locks, CAS and memory barriers.</description></item><item><title>Temporal Fuzzing I: Memory Models</title><link>https://reitzen.com/post/temporal-fuzzing-01/</link><pubDate>Thu, 01 Jul 2021 12:00:00 +0000</pubDate><guid>https://reitzen.com/post/temporal-fuzzing-01/</guid><description>Part of a Series: Temporal Fuzzing I: Memory Models Temporal Fuzzing II: Barriers, CAS and Locks Concurrency Reasoning about concurrent execution is hard.
Let&amp;rsquo;s start with some pseudocode. Assume all memory is initialized to 0, and each of these two threads is spawned very close to the other in random order and execute in parallel.
What will each print?
x = 1 print( y ) y = 1 print( x ) Please do take some time to think this through.</description></item></channel></rss>