We are standing on the cusp of a real sea change in commodity hardware architectures.
Tutorial Details:
Hardware is really just software crystallized early," says Alan C. Kay in his paper "The Early History of Smalltalk" (ACM, 1993). This quote really explains the inspiration for this article. Software developers have always been at the mercy of hardware manufacturers, although we've had a pretty easy ride of it since the inception of the computing industry itself. From then until now, increasing speeds of every single component that goes into the standard Von Neumann architecture have given our software literally free increases in performance.
Why parallelize?
Let's take a step back and examine the factors that have precipitated the advent of parallel computing hardware in all tiers of IT, as opposed to specialized high-end niches. Why would we want hardware that can execute software in true parallel mode? For two reasons: You need an application to run more quickly on a given dataset and/or you need an application to support more end users or a larger dataset.
And if we want a "faster" or "more powerful" application, where powerful means handling more and more users, then we have two options:
1. Increase the power of the system resources
2. Add more resources to the system
If we increase the power of the system resources (i.e., in some semantic sense, replace or extend the system within its original boundaries), then we are scaling the system vertically; for example, replacing a 1-GHz Intel CPU with a 2-GHz version that is pin-compatible, which is a straight swap. If however, we choose to add to the system resources such that we extend beyond the original boundaries of the system, then we are scaling the system horizontally; for example, adding another node to our Oracle 10g RAC cluster to improve overall system performance.
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: Is your code ready for the next wave in commodity computing
View Tutorial: Is your code ready for the next wave in commodity computing
Related
Tutorials:
|