Our website uses cookies to enhance your browsing experience.
Accept
to the top
close form

Fill out the form in 2 simple steps below:

Your contact information:

Step 1
Congratulations! This is your promo code!

Desired license type:

Step 2
Team license
Enterprise license
** By clicking this button you agree to our Privacy Policy statement
close form
Request our prices
New License
License Renewal
--Select currency--
USD
EUR
* By clicking this button you agree to our Privacy Policy statement

close form
Free PVS‑Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

close form
To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

close form
I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

close form
check circle
Message submitted.

Your message has been sent. We will email you at


If you haven't received our response, please do the following:
check your Spam/Junk folder and click the "Not Spam" button for our message.
This way, you won't miss messages from our team in the future.

>
>
One of the Answers to the Question &quo…

One of the Answers to the Question "Who Needs All that Parallelism at All?"

Dec 25 2009
Author:

One can often find discussions on the net that multicore processors, as well as parallelism, are needless, and all this is tricks of one (two or three) companies, which need to sell new processors.

I will not appeal to everyone "loving" parallelism, I will just tell about parallel applications helping software developers.

When multicore processors started to appear, software development tools generally did not support the new possibilities in paralleling. The question is not about paralleling programs done by a developer but about development tools themselves.

The compiler worked as a consecutive application, compiling the user program file by file. The code analyzer processed the source code file by file, trying to find errors in it. The build system (make) executed one task after another.

Luckily for ordinary developers, the creators of development systems realized quite soon how parallelism can help the users of their systems.

In the build system make, a command "-j" (or "-jobs") was added; it allows to execute commands in a parallel way.

Our code analyzer PVS-Studio fully supports work on multicore machines. This means that during work on an eight core machine, the analysis will run on all the cores. Parallelism in the analyzer is implemented due to parallel processing of several files. With this, the developer can always set the used number of cores in the analyzer settings. E.g., on an eight core machine, one can use only six cores for the analysis, and continue work with the two remaining cores without waiting for the tool to finish.

The possibility of first compiling the projects in a parallel way was added to the development environment Microsoft Visual Studio 2005, and later, in 2008 version, the possibility of compiling files separately was added (option /MP). Well, Microsoft Visual C++ 2005 users remember the number of broken copies when IntelliSense module appeared in this version. The topic about disabling IntelliSence has 120 000 views in MSDN forum. That is all because on a single core machine, this technology worked not at its best, and slowed down the work quite seriously. However, with the appearance of multicore machines, all these discussions died away. IntelliSence works on one core and does not disturb anyone.

If, to speed up the compilation, earlier one had to use various outside tools such as MPCL or Incredibuild, now all this is integrated into development tools.

0041_One_of_the_Answers_to_the_Question_Who_Needs_All_that_Parallelism_at_All/image1.png

E.g., this figure of an overloaded machine with eight cores was done right during PVS-Studio analyzer running.

Thus, most developers welcomed the forthcoming of parallelism support in development tools. But why - most, and not all? Just because with the forthcoming of parallel compilation of a large project, one has to drink tea much faster than previously :-) .

Popular related articles


Comments (0)

Next comments next comments
close comment form