An Analogy - Boulder Moving

The SequenceL Approach

Since the innovative SequenceL solution is unlike any other multicore or parallel programming approach, many people find this analogy helps understand this breakthrough technology and the industry-wide problem it solves. Some people think multicore software is simply handled by the OS (operating system), while others think virtualization technology somehow helps with this. Unfortunately it is not that easy – the burden is squarely on developers of the software applications themselves. This analogy helps understand the severe challenge software developers have had to keep up with new multicore and many-core processor evolutions, and the novel approach SequenceL uses to solve them.

Before Multicore

Say I’m a contractor that moves huge boulders. I rent a crane each job…and it’s working great.

1 huge crane to move 1 boulder

Along Came Dual Core Processors…

Next project the crane rental guy shows up with 2 smaller cranes. He explains that combined they can lift a little more than the big crane. But I remind him I only have one boulder to move. He tells me “all you have to do is split the boulder in two.” So I have no choice and hire a mason to find fissures, split it, etc.

2 smaller cranes means have to split boulder

Then Quad Core Processors…

A year later the crane rental guy shows up with 4 smaller cranes. Again, he states that combined these 4 can lift more than the previous 2. But now I have to split the boulder in four! So I hire more masons and spend more time splitting the boulder, trying to evenly balance workload across all cranes.


And it Just Keeps Getting Worse…

Next time the crane rental guy brings 8 smaller cranes! Now I am supposed to split the boulder into eight smaller ones? And next year it could be 32, 64, or 1024! The boulder moving business has become a boulder splitting business!

8 still smaller cranes means now in boulder splitting business instead of moving boulder business

This is exactly the position developers of software have been put in – having to learn to “split boulders” and spend the majority of their time doing that rather than what the customer expects, which is adding new features or solving problems. The software engineering term for this is to parallelize or thread an application, which adds incredible complexity and requires true parallel programming skills previously reserved for only the most demanding HPC applications. This is also why users often don’t notice any real speed up or advances in the software they use on their latest “more powerful” computer, since that work is so difficult or out of their skillset it is often simply not attempted.

The SequenceL Approach

Think back to the Bugs Bunny cartoon and his nemesis Marvin the Martian. You can think of the SequenceL programming language and compiler as Marvin’s ray gun, aka the Illudium PU-36 Space Modulator. The auto-parallelizing compiler turns the boulder into a pile of sand!.

But now the cranes need another component, something like a bucket for each crane, which must be properly loaded and balanced. This critical task is what the SequenceL Runtime Environment does.

Ready for a more technical explanation? If so, go to Why It Works

Get started now for free!