Editorials

Centralized Data in Parallel

Centralized Data in Parallel
I was reading Kevin Kline’s article “CPU in Flux” in the September 2011 edition of “Database Trends and Applications. Kevin touched on a topic I have had on my backburner for some time now, Multiple CPU systems.

The main thrust of his article is that CPU manufacturers have changed course in order to get more power out of the same amount of silicon space. Instead of making a CPU run faster, or process bigger chunks of data, they have found creating more CPUs on the same wafer to be a better way of growing the capacity of a CPU.

According to Kevin, this technique produces more computational capability without the same increase in power consumption and heat used by making the CPU run faster.

The biggest issue with this kind of design is that many programmers don’t know how to write software that can be broken up into smaller pieces, executed in parallel, and bring together the final results of the different processes.

So, having more cores in a CPU provides little benefit to a single program…it simply allows more programs to perform concurrently on the same machine. A program with a single execution path will not perform any faster on a machine with multiple cores than on a machine with a single core.

Products such as the Parallel Data Warehouse from Microsoft have taken some of the burden off the software developer by providing an infrastructure that already takes advantage of multiple CPUs, Cores, and even Machines…breaking up the work according to the best source of locating and/or processing data.

Microsoft’s Parallel Data Warehouse is data bound, fully dependent on Microsoft SQL Server in order to run. Other products, such as Appistry’s “ayrris”, have taken a different approach. Appistry provides a Grid/Cloud infrastructure allowing you to wrap you already existing Dot Net, Java, or C++ code in their “Fabric”, pretty much as is, or using an Adapter pattern.

The Appistry Fabric handles the parallelism. Now, instead of having a single point of entry into your application, you call your application through the Appistry Fabric. The Fabric will handle the multiple threading for you. Very quickly you can take what was once a single threaded application and make it perform as a multiple threaded application. Of course there are a lot of other features built into the product.

To be fair, Microsoft, Oracle, and others have their own similar solutions. Writing Parallel applications for Azure is supported nicely with Dot Net 4.0 parallel classes. The difference is that you are more involved with the creation, distribution and destruction of your parallel tasks. Tools such as Appistry syrris handle all the task assignment on your behalf. In fact, it may not even be running on the same server, let alone the same CPU.

Why not share with us how the explosion of multiple core CPUs has changed your world? Send your comments or other questions to btaylor@sswug.org.

Cheers,

Ben

$$SWYNK$$

Featured Article(s)
Enterprise Security Intelligence to Drive Better Data Risk Management Decisions
With accurate intelligence on the sensitive data they use in their environment, companies can take a more comprehensive approach to security based on a complete view of their sensitive data risk posture.

Featured Script
sp_quick_count
This script itself is very basic but is useful when attached to a query shortcut with SQL Query Analyzer 2000. Once the sp i… (read more)