IBM M13 Keyboard

Turn off CAPS LOCK and INS

I am a ten finger typist doing around 5 strokes/second – though I do make a lot of mistakes. I learned the craft on a good old fashioned typewriter. The world has moved; unfortunately, keyboards have not. There are keys left in a modern keyboard that are simply of no use anymore – grim reminders […]

Continue reading…

Synchronized

Synchronisation in .NET– Part 4:
Partitioned Data Structures

In this final instalment of the synchronisation series, we will look at fully scalable solutions to the problem first stated in Part 1 – adding monitoring that is scalable and minimally intrusive. Thus far, we have seen how there is an upper limit on how fast you can access cache lines shared between multiple cores. […]

Continue reading…

Synchronized

Synchronisation in .NET– Part 3:
Spin Locks and Interlocks/Atomics

In the previous instalments (Part 1 and Part 2) of this series, we have drawn some conclusions about both .NET itself and CPU architectures. Here is what we know so far: When there is contention on a single cache line, the lock() method scales very poorly and you get negative scale the moment you leave […]

Continue reading…