Categories
Uncategorized

Multicore Musings

Bob “SmoothSpan” Warfield calls it the “Multicore Crisis”. That’s the situation in which the effects of Moore’s Law have changed: while the doubling of transistors per chip continues, the by-product is no longer faster processor speeds but more cores per chips instead. He illustrates this point with the graph below:

Chart showing Intel Processor Clock speeds from 1970 - 2006, with the curve flattening around 2002 - 2006.
Click the graph to see it on its original page.

Warfield writes:

It’s easy to see from the chart above that relatively little progress has been made since the curve flattens out around 2002. Here we are 5 years later in 2007. The 3GHz chips of 2002 should be running at about 24 GHz, but in fact, Intel’s latest Core 2 Extreme is running at about 3 GHz. Doh! I hate when this happens! In fact, Intel made an announcement in 2003 that they were moving away from trying to increase the clock speed and over to adding more cores. Four cores are available today, and soon there will be 8, 16, 32, or more cores.

(Warfield’s written more in another article, You’ve Already Had a Multicore Crisis and Just Didn’t Realize It!)

The problem with multicore processors is that most software isn’t written to take advantage of it. Jeff “Coding Horror” Atwood demonstrates this in an article where he compares a 3.0GHz dual-core machine against a 2.4GHz quad-core at a number of tasks. In most cases the faster dual-core machine had the better performance. At the end of the article, he wrote:

It’s possible software engineering will eventually advance to the point that clock speed matters less than parallelism. Or eventually it might be irrelevant, if we don’t get to make the choice between faster clock speeds and more CPU cores. But in the meantime, clock speed wins most of the time. More CPU cores isn’t automatically better. Typical users will be better off with the fastest possible dual-core CPU they can afford.

Software — or more accurately, its programmers and architects — are going to have to adjust to this shift in the effects of Moores’ Law. Intel fellow Shekhar Borkar puts it quite well:

The software has to also start following Moore’s law. Software has to double the amount of parallelism that it can support every two years.

This means that programming will have to change. Parallel programming — typically a sidebar course in most undergraduate computer science curricula and a sidebar feature in mainstream programming languages — will have to become a fundamental part of software development. Approaches that lend themselves well to parallelization — Google’s MapReduce is a notable example — will have to become part of our daily lexicon. We’ll have to move from primitive parallel paradigms like the way threading is done in mainstream programming languages to better ways, such as the Erlang model, where you think in terms of isolated processes which pass messages among each other. As a lazy programmer, I hope that some really clever programmers out there will write compilers and interpreters capable of finding parallelizable stuff in my code and do the dirty work for me, but I’ve picked up Programming Erlang just in case that doesn’t work out.

I hope that Adam Beberg, who’s quoted in the O’Reilly Radar article Google’s Folding@Home on the “Multi-Core Crisis”, is right:

Yes we will solve them [the problems arising from the fact that “Many of our economically important algorithms (value > $1 Billion) do not scale above 16-20 cores”], but we have to change our algorithms from what most people are used to and this will take time. The same methods we use for distributed folding also seem to translate to a wide variety of other domains, so I see no hard walls on the horizon. I really do hope we find a wall soon so I can climb it and I’m crossing my fingers for a surprise at a billion.

The current generation of programmers is learning in a world of multi-core, and from what I have seen they have zero if any trouble dealing with it. Once they get some experience, we’ll wonder why this was ever considered hard.


Cross-posted to the Tucows Developer Blog

Categories
Uncategorized

“Hi, I’m a Mac…”

…and here are my fellow platforms and operating systems. The sample below shows just a few; click the image below to see the full set, which concludes with Windows Vista. Possibly not safe for work — male bottomlessness and female toplessness lurk within!

Preview image of the “Hi, I’m a Mac” set
Click the picture to see the full version at full size.

Categories
Uncategorized

iPod Touch: This Thing is Going to Be Huge!

The phone functionality of the iPhone has been the least interesting thing to me, especially given:

  • The “not-yet” availability of iPhone service here in Canada
  • The ridiculously high cost mobile data rates here in Canada
  • The fact that I have a perfectly good phone — a rather nice Motorola KRZR that I got only earlier this year

I care even less about its built-in camera. I’m one of those guys who carries a half-decent point-and-shoot digicam wherever I go, and until phone cameras get better, I’m going to stick with my Lumix.

For me, the really interesting things about the iPhone have been the functions that are currently performed by my trusty Powerbook and iPod nano:

  • Its PDA-like features
  • Audio and video playback
  • WiFi and Safari

The web browser has been of particular interest to me. In the age of Web 2.0/Ajax/web applications/whatever you want to call it, having net access and a browser as fully-featured and good-looking as Safari makes the iPhone the mobile computing platform that tablet computers wish they were.

If only the iPhone didn’t come saddled with the phone (and the commensurate cost)…

iPod Touch on the big screen at the “Beat Goes On” Apple keynote
Photo courtesy of Gizmodo Live.

My wish has been granted! At the “The Beat Goes On” event held today, Steve Jobs announced the iPod Touch, which for all intents and purposes is the iPhone minus the phone and camera. There are two models:

  • An 8GB model selling for US$299
  • A 16GB model selling for US$399

I’m sure you’re going to see lists of its features all over the Web, so I’ll skip that part. Instead, I’ll simply list some thoughts on this nifty new gadget:

  • That pre-emptive Zune price drop looks pretty pathetic now. I’m reminded of Sean Connery’s line from The Untouchables: Microsoft just brought a knife to a gun fight.
  • Early iPhone adopters who got the 4GB might get that IIvx’d feeling. The Mac IIvx is a special computer in Mac lore in that it was a machine that was undone by cost-saving shortcuts and getting discontinued a mere 4 months after its release. People who shelled out US$600 for the 8GB iPhone might be annoyed that a mere 2 months later, the price has been dropped to $399. However, that very special IIvx feeling is for people who bought the 4GB model, which I assume will be discontinued.
  • Remember what Steve Yegge wrote about JavaScript? To referesh your memory:

    “JavaScript is probably the most important language in the world today. Funny, huh? You’d think it would be Java or C++ or something. But I think it just might be JavaScript.”

    Given that the iPod Touch is a very portable Ajax platform and likely to influence the design of other mobile browsers, if JavaScript wasn’t the most important programming language in the world when Steve said so, it is now.

  • Remember the promise of tablet computers? It just got much closer to being fulfilled, if in an unexpected way.
Categories
Uncategorized

Before Phones Had Built-In Contact Lists…

…you either kept a phone list, a Rolodex or if you were really on the cutting edge, you used one of these:

1973 ad for the “Card Callmaker”, a punch-card-driven phone number memory system.
Click the image to see it at full size.
Image courtesy of Miss Fipi Lele.

Categories
Uncategorized

Helvetica, the Shirt

Share your love for the Helvetica typeface with the Helvetica shirt! For the purist, there’s the version set in Helvetica:

“Helvetica” T-shirt set in Helvetica

Those of you who like challenging people or separating the typeface players from the wannabes might prefer the version in Arial:

“Helvetica” T-shirt set in Arial

Into making ironic statements via t-shirts? The Cooper Black version is the one for you:

“Helvetica” T-shirt set in Cooper Black

And if you just want to start a fist-fight with some font nerd, you want the Comic Sans version, which will be available soon:

“Helvetica” T-shirt set in Comic Sans

Categories
Uncategorized

In Case You Were Checking Here to See What Happened to the “Accordion Guy” Blog

“Missing” announcement on a milk carton featuring an accordionI’m experiencing some server issues with my personal blog, The Adventures of Accordion Guy in the 21st Century right now. I’m currently in the process of trying to get a server upgrade and hope to have the ol’ blog up and running soon.

Categories
Uncategorized

Python 3000 Alpha 1 Available Now!

Guido van Rossum’s head on Andre 3000’s body
If there’s an Andre 3000 and a Python 3000,
why not a Guido 3000?

It’s been a long-time topic of discussion in the Python camp: Python 3.0, also known colloquially in the Python community as “Python 3000” or “Py3k”, and today it got a little more real. The first alpha release of Python 3000 is now available for download, just in time for those of you who want to test-pilot it over the Labor day weekend.

(If you’re waiting to get a final version before downloading, you’ve got a fair bit of time. The current best estimate for the release date of that version is August 2008.)

Unlike Perl 6, which is a radical reworking of the language, where every feature is subject to change, the idea behind Python 3000 was correct a specific set of design mistakes. These corrections are large enough that they will break programs written in existing versions of Python, but which provide gains that are enough to make the trade-offs worthwhile.

If you’re curious about Python 3000, here are some links you might want to check out:

Cross-posted to the Tucows Developer Blog.