Share what you know with millions of people

Focus is the best place to turn what you know into remarkable content
×
0

Parallelization vs. Virtualization: What's the difference?

What is the difference between parallelization and virtualization? I recently heard someone talking about parallelization and virtualization, and would like some clarification on their differences.

Attachments

1
Karl Scott
Principal Consultant, Akili Systems
Posted on Nov. 22, 2010

Parallelization and virtualization are two different animals. Parallellization breaks down a one very complex task (e.g., data mining, weather modeling) into multiple tasks to reduce the time for processing. Parallelization requires multiple CPU cores and specially written software to split the processing tasks and combine the results when each task is completed - not a simple task.

Imagine you are trying to get water from a creek into a large container. If you have one bucket and go back and forth to the creek to fill the large container, that's sequential processing. If you get four people and four buckets and fill the large container, that's parallel processing. The parallel approach yields much faster results. (Assuming the four people work faster than one :-) )

Virtualization gives the appearance that the resources used are real but they actually are not. (Ok, this may be a bit confusing.) I'll use server virtualization as an example. To install a server you need a physical computer and one operating system (e.g., Windows, unix, Linux etc.). Virtualization allows you to install several operating systems on one server (physical computer). Each operating system you install creates a virtual server.

You need a hypervisor (e.g., VMWare software) to make this happen. The job of the hypervisor is to reserve CPU, memory, disk and network resources for each virtual server. It performs a lot of other tasks but I won't complicate the matter.

Why use virtualization? Most applications don't use all of the CPU, memory, disk and network capacity that comes with one physical server - wasted capacity. Installing multiple virtual servers on the one physical server allows you to better utilize server capacity and will subsequently yield a cost savings because you purchase and manage less physical servers.

Just remember that parallelization is about reducing processing times for complex tasks and virtualization is about using resource (server, storage and network) capacity in the best way possible.

My explanation touches the surface of both topics (basic explanation). These are two very complex concepts that play and will continue to play a major role in computing for some time to come.

I hope this helps...

0
Mike Vizard
Editor, Self-Employed
Posted on Oct. 13, 2010
  • Recommended by:

Virtualization creates discrete addressable virtual machine components on top of physical infrastructure.
Parallelism will break application code and/or jobs into pieces that can be simultaneously executed on those virtual components regardless of location. So 100 virtual machines can process various components of an application in parallel. Intel and Microsoft are buildng the dev tools to do this now. IBM and VMware want to provide the orchestration layers. This is hard to do, so it will take a while. But it's coming.
Real challenge will be training developers to think "in parallel" in terms of building applications. Hopefully, tools will automate that process as well someday.

0
Jan Klincewicz
Solutions Architect - Desktop Virtualization - VXI, Cisco Systems
Posted on Nov. 6, 2010
  • Recommended by:

Parallelism (assuming you mean something like "Grid Computing" is actuality considered virtualization by the more open-minded among us.

Because the compute tasks are taking place on an abstract group of resources as opposed to a specific machine,this can fit the loose description.

A hybrid approach comprised of a grid of VMs is also feasible as Mike states above. Platform Computing (http://www.platform.com/) has been in this space for awhile. Essentially (as Mike states) scheduling discrete jobs to be spread out among available or idle resources, as needed.

I agree developers have not been thinking with parallelism in mind, so out current crop of software, though it may take advantages if multiple processors or threads, they remain on a monolithic box (physical or virtual.)

Answer This Question