Parallel universe

by Vince "TC" Cavasin

I can still hear the gravelly voice of my Feature Writing prof: "Write whatcha know, kid!" How true those words ring to this day...when I am faced with an impending TBW deadline and not so much as a germ of an idea for a topic.

So today we’ll focus on one of the few things I actually know: parallel processing.

While you can parallelize many kinds of processes, the concept is especially applicable to computer programs. Parallel computers use multiple CPUs to run multiple programs, or, more interestingly, a single program. This can result in significant speed-ups for many kinds of programs. However, seldom does doubling the number of CPUs double the speed, because not all programs lend themselves to parallelization. Sometimes hardware gets in the way too; the connection over which multiple CPUs communicate may not be able to feed them all data fast enough, or there may be a bottlenecks elsewhere. Speedups of 6-7x on 8 CPUs are considered good; 4x on 8 CPUs is more typical.

There are many different parallel architectures. Symmetric MultiProcessors (SMPs) are the most popular today, due to their reliability and ease of programming. Massively Parallel Processors (MPPs), which can support up to thousands of CPUs, are difficult to program and are becoming passe. ccNUMA (cache coherent NonUniform Memory Access...impressive, eh?) machines attempt to combine the easy programming of the SMP with MPP-like scalability, but have attained limited success and may never be viable.

So let’s focus on SMPs. Every major computer vendor markets a line of SMPs now; in fact, for less than $3000, Dell will Fedex you a plug-and-play PowerEdge server with 2 Pentium II CPUs. Think of how many regression variables you could throw at Minitab on that baby!

Typical of low-end SMPs, Dell machines can support up to 4 CPUs. Some PC makers offer support for up to 8 or even 12 Pentiums; however, these run (you guessed it!) Windows NT, which, unsurprisingly, doesn’t work quite as advertised. NT is theoretically capable of supporting up to 32 CPUs, but in reality its performance drops off significantly somewhere between 6 and 12, depending on the application.

Of course the solution to this, as always, is UNIX. Yes, Virginia, there is a market in which Microsoft’s shortcomings actually prevent it from gaining share! Midrange and high-end SMPs are a perhaps the last lucrative and growing market for UNIX.

All the major UNIX vendors offer SMPs. They range in scalability from DEC’s 1-14 CPU AlphaServers to Sun’s 1-64 CPU UltraEnterprise Server. However, the quantity of CPUs isn’t the only factor that determines performance; for example, HP’s V Class, with up to 16 CPUs, blows most of its competitors away by using a higher-performance interconnect and CPU. Obviously, this machine had the benefit of a brilliant market analyst working on it.

So why do you, the aspiring techno-MBA, care? Because even small businesses may require parallel computers to fulfil their server needs. And unlike the minicomputers and mainframes they replace, today’s SMPs are scalable; as your needs grow, you can add CPUs to increase processing power. Most SMPs also support clustering, which hooks together two computers—extending scalability, or providing a backup in case one crashes.

Application-wise, OnLine Transaction Processing (OLTP) and OnLine Analytical Processing (OLAP, aka Data Mining) are technologies that allow companies to gather and analyze transaction data, such as retail sales. OLTP and OLAP are increasingly necessary for larger businesses to maintain competitiveness, and as their databases grow, parallel computers are increasingly necessary to efficiently manipulate them.

If you’re even more technocratically-oriented, parallel computers are also widely used in engineering; for example, auto companies use them to design cars, and to perform virtual crash tests; drug companies use them to design drugs.

Now about the only thing a parallel computer can’t do is supply me with a topic for next week’s column... u