Software and Hardware Parallelism

Posted on 2005-05-01
Last Modified: 2013-11-08
Can anyone explain me in detail the difference between the software and Hardware parallelism ,and how are they used .how can we implement them .Can i get some good sites to know more about parallelism and  architecture of software and  hardware.
Question by:anumit
    LVL 63

    Expert Comment

    I would check the Linux sites , Bewoulf project and similar for hardware parallelism.

    SW Parralelism is also becoming more popular.

    I hope this helps !

    LVL 9

    Accepted Solution

    SOFTWARE PARALLELISM is concerned with the intrinsic parallelism that can be found in a particular application. It means that, there are some applications which are easily software-parallelized, tipically because they process great amount of data doing the same operations on all of them. For example structural simulations, meteo simulations, audio and video processing process a lot of homogeneous data (finite elements of a structure or meteo environment, audio and video samples), doing the same operations on all of them.

    It is said that in those applications software parallelism is very high, and it means that they are suitable to be executed in highly parallel systems (today's super-computer). If an application have an high software parallelism, doubling the number of computers that execute processing in parallel, results throughput is nearly doubled. It is said that those kind of applications have SCALABILITY: every time parallel hardware is doubled, overall performances nearly double. So, the scalability of an application is the capability of scaling (increasing) throughput with the same factor of hardware scaling(increasing).

    The higher is the software parallelism, the higher is the scalability of an application on a parallel system.

    HARDWARE PARALLELISM is the parallelism of the processing units of a certain hardware (computer or group of computers). So it is a feature of a certain system. First CPUs had no parallelism, later it increased because audio, video and geometric applications became to appear, so there was a need for it. Today's CPUs have an higher grade of parallelism, recently increased with the introduction of special assembly instructions (MMX, SSE, 3DNOW, ... families) intended to be used for multimedia applications. You can see that, when applications (multimedia apps) with a certain grade of software parallelism began to appear, a certain grade of hardware parallelism was introduced in standard CPUs, in order to enhance processing power.

    Graphical Processing Unit used in video cards (ATI Radeon, NVIDIA Ge Force, ...) have to process a lot of homogeneous data (pixels) repeating the same operations (geometric transforms, triangle generation, surface lighting, texturization, ...) on them. In fact they have a very high hardware parallelism.

    On a greater scale, in order to achieve very high processing power, modern super-computers (see are composed by a very high number of quite standard CPUs. It is important to say that only applications with very high grade of software parallelism can take advantage of those kind of systems. If an application has no grade of parallelism, even if the system is composed by thousands of CPUs, the application will use only one of them.


    Author Comment

    Thaxs   lombardp ,SysExpert  for  quick response .Is it possible to do both  hardware and software parallelism parallely on a system .If yes then which program supports this mechanism.Can we do any  experiment  on hardware and software parallelism.Actually i was going through a site where it was mentioned software parellelism is fast and executable easily.
    Please let me know some more information about these mechanisms.
    LVL 9

    Expert Comment

    >> Is it possible to do both  hardware and software parallelism parallely on a system

    In general hardware parallelism can be actually used only if software has a certain grade of parallelism, so we could say that software parallelism must be used together with hardware parallelism.

    If I understand your needs, you would like to do some experiments on parallelism, both hardware and software, with a normal system (one or more Personal Computer).

    Many commercial software implement code parallel-optimized in order to take advantage of intrinsic hardware parallelism in modern CPUs. These software are mainly related to video and audio editing.

    If you look for an " home made " experiment:

    You can experiment hardware parallelism on a single PC using SSE instructions embedded in modern CPU: those instructions are intended for multimedia applications, to process audio and video. A quick experiment can be set up with the GCC compiler, that has specific options for implementing math with SSE parallel instuctions. You can write very simple program and try to compile them with and without the SSE switch.

    Software parallelism can be better tested with a multithreaded application. A very simple application could be to have two long vectors of numbers, and calculate the mean value of each one. The first application should be mono-thread and calculate mean of first vector and then mean of second vector. The second application should be composed by two thread, the first calculates mean of first  vector, the second calculates mean of second vector, in parallel.

    If you look for a more sophisticated test, you should use a

    LVL 9

    Expert Comment

    I entered answers to both the original question and the successive clarification.
    I am still available to provide further clarifications to ANUMIT, if he needs.


    Featured Post

    Maximize Your Threat Intelligence Reporting

    Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

    Join & Write a Comment

    Great sound, comfort and fit, excellent build quality, versatility, compatibility. These are just some of the many reasons for choosing a headset from Sennheiser.
    In the modern office, employees tend to move around the workplace a lot more freely. Conferences, collaborative groups, flexible seating and working from home require a new level of mobility. Technology has not only changed the behavior and the expe…
    In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
    Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

    728 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    23 Experts available now in Live!

    Get 1:1 Help Now