May 27th, 2008

straight to hell

Motorcycle - Donorcycle. As in, a frequent source of organ donors.

#5. Cut and Paste

What It Means:
Also called an "Open and Close" or a "Peek and Shriek," this is when a surgeon opens up a patient for surgery, discovers nothing can be done to avert the inevitable, and sews them back up immediately. Or, if they feel like it, practice surgical technique for a while.

When It's Used:
Generally, this is encoded as "C&P," "CNP" or something similar, so that the head of the department knows what happened but the to-be-aggrieved family doesn't. Typically this happens with very old people, those with suddenly aggravated chronic health problems, or people with inoperable cancer, soon resulting in a "healthy tumor" (aka a dead patient).
  • Current Music
    12 Stones - Broken (
  • Tags

Highly scalable data structures for 32+ core concurrency.

Most large CPU shared memory hardware systems support very fast concurrent reads but are speed limited to "1-cache-miss-per-write" or "1-memory-bus-update-per-write," so it is important to avoid all CPUs writing to the same location. Even with reader-writer lock, it is not possible to scale past the 50-100 CPU range. Multi-core processing is an increasing industry trend with almost all hardware manufacturers now exploring the possibilities. Azul is making production hardware with 768 cores, Sun's Rock is around 64, and even x86 based commodity hardware is expanding the number of cores it uses. Thus the problem of lock contention is becoming a pressing one for developers looking to write performant code.

Dr Cliff Click, a distinguished engineer at Azul Systems, gave a talk (slides here) at this year’s JavaOne describing a set of techniques that have allowed him to get quite some way towards a scalable, non-blocking coding style in Java. In very broad terms his approach implements a non-blocking algorithm such that stopping one particular thread does not stop global progress.


Click has implemented two examples (Bit Vector and Hash Table) with the code available on SourceForge and is working on a third (a FIFO queue). To take one example in slightly more detail, the hash table is an array of Key Value pairs with the keys in even slots and values in odd slots. Each word is Compared and Swept separately but the state machine spans both words and during copy includes words from both arrays. The hash table implementation supports concurrent insert, remove test and resize and passes the Java Compatibility Kit (JCK) for ConcurrentHashMap. On Azul’s hardware it obtains linear scaling to 768 CPUs with more than a billion reads/second simultaneous with more than 10 million updates/second.
  • Current Music
    Centicore - One Bullet
  • Tags