Using Intel Concurrency Checker in practice is one question ...

    Picture 11
    Over the past six months, I have been actively suggesting to “feel” Intel Concurrency Checker, both directly from the Intel affiliate program, and indirectly, for example, in the blog of Sergey Villanov ( here ). For a long time I refused this tempting offer. And recently, I gave up. Under cat - my experience using this tool. I must say right away that the tool left me completely at a loss. Why? I'll tell you now. I will answer in advance the question of what this post does on the Intel blog. I think it's better to comment on the company's products here, and not on a personal blog.



    So, the official page on the Intel website says:

    Intel Concurrency Checker for evaluating multi-core processor performance. Use the Intel Concurrency Checker tool to evaluate how well your application’s performance scales in a multi-core processor system.

    It seems to sound tempting. Easy to download Having tormented myself for several hours with a broken download link, I was already completely desperate to get the program. The fact is that the standard download link for some reason did not work for me (there was a blank page as in the first picture).

    Then a colleague suggested opening the source code of the page and already in it try to find the download link. Fortunately, such a half-hacker method allowed me to get this program. To my surprise, I downloaded not a distribution, but a java application. I also had to download Java myself. Okay, downloaded, launched.

    “What should I check for multitasking?”, I thought, and launched Starcraft 2 :-). No, don’t think that I immediately wanted to play. The fact is that in order to evaluate the application in Concurrency Checker, this application must be started and allowed to work for 30 seconds. Concurrency Checker at this time considers CPU usage, cores usage, etc. So, according to the results of measuring Starcraft 2, I got the following picture.
    Picture 12
    Although the nameplate suggests that Starcraft 2 is a multi-core application,the instruction for Concurrency Checker in Russian still does not hurt.

    In the developers of Starcraft 2, no one doubted. Therefore, it is interesting to evaluate your application, for example, (yeah) PVS-Studio static code analyzer . Since PVS-Studio works as an extension module (plug-in) for Microsoft Visual Studio, you actually need to evaluate the work of this environment.
    Picture 14
    The result was expected.
    Picture 15
    As expected, the processor utilization percentage averaged 1.61%, since the Visual Studio environment itself practically did not work. Indeed, the PVS-Studio.exe code analysis module is a separate application that runs for each analyzed file (with its own set of parameters).

    Maybe if you run only the PVS-Studio.exe analysis module itself (for example, to run internal tests), the result will be unexpected?
    Picture 16
    No, the result is again expected. PVS-Studio.exe analysis module is a single-threaded application without any parallelism. This is absolutely logical and understandable, since in the analyzer parallelism is achieved by analyzing several files in parallel, that is, by running several versions of PVS-Studio.exe in parallel. And, of course, the Concurrency Checker “does not recognize” this configuration and shows that everything is bad.

    Ok, let's give the tool a simpler task. Let's check how efficiently several cores are used in the 7z archiver.
    Picture 17
    The tablet shows that 7z is very cool with several cores. But I have a question! Can't you see the same thing from Task Manager?
    Picture 18
    It seems to be seen ... So for me, frankly, it remains a mystery who needs the Intel Concurrency Checker program. And that's why:
    1. Whether multiple cores are used or not, you can always look in the Task Manager.
    2. The team of programmers who develops a particular project always knows without any tools how their code deals with parallelism. If no one has ever "parallelized" the code, then there is no where to get support for several cores.
    3. For a more powerful analysis of concurrency and bottlenecking, you need more other tools like Intel VTune - everyone also understands.

    By the way, the program allows you to save the measurement log in Intel and get a specialist comment. But there is also some confusion. In the case of our PVS-Studio analyzer, if I send the Visual Studio measurement log, it will be a wrong measurement. If I send a log of measurements of the analysis module itself, I already know that it is single-threaded. It’s not clear ...

    True, I couldn’t send any logs, because in the “Send Report” section of the site I received the same white picture as in the first picture.

    My questions for this program are related to the fact that the current version has the number as much as 3.5! What is surprising, since what can be developed in it is not clear. Moreover, I already thought that she appeared as soon as 3.5 became. But no, in 2008, for example, there was version 2.1 of this tool. So it has a rather large life cycle (surprisingly).

    My vision for this program is this. Marketers from Intel came up with a cool idea - an easy assessment of the level of use of several cores in the program. Came to the programmers, asked to do. Programmers have done, since arguing is more expensive. As a result, the product is there, it works, but who needs it and why is it not clear? Maybe marketers to draw beautiful graphs about the level of use of the cores?

    PS It would seem, where does Intel? Unlike Channel One, on which no one ever criticizes himself, it is useful in technology companies to get criticism from a person with a straight face. And maybe Intel will correct the positioning of this program, saying why it is needed. Or it may turn out that she is not really needed :-).

    Also popular now: