SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
VivaMP - a tool for OpenMP
Author: Evgeniy Ryzhkov

Date: 20.11.2009

At present, Viva64 and VivaMP software products are included in PVS-Studio as parts of it and are no
longer distributed as separate applications. Please use PVS-Studio program to obtain the necessary
possibilities of code verification.


Abstract
The tool for programmers VivaMP is intended for helping OpenMP-based parallel software developers.
The article gives a brief description of the program product.


OpenMP parallel programming technology: advantages and
disadvantages
The modern processor (whether in a desktop or in a laptop) has several cores. Most often there are two
cores and more rarely three or four. But very soon even eight cores in a usual desktop computer will be
a common thing. That's why the most progressive software developers start thinking right now how to
make their programs parallel. That is how to load all the available processor's cores. And although it
would be an absolutely correct solution to develop a new parallel version of the program product, it is
actually the existing sequential version that is usually "parallelized". There are many different parallel
programming technologies but we are interested first of all in OpenMP technology as the most
promising for systems with common memory, that is the most promising for paralleling programs
intended for desktop computers. It allows you to make the existing program parallel by rewriting its
separate sections. All this seems (and actually is) very attractive to developers but here we face a
problem. Support of OpenMP technology is implemented in existing developing means so that it is very
easy to make errors which are not diagnosed [1]. Because of this developing OpenMP-solutions
becomes even more complicated.


A tool for supporting OpenMP-solution developers
To make the process of developing OpenMP-solutions less complicated OOO "Program Verification
Systems" creating program products in the sphere of code analysis has developed the program product
VivaMP (http://www.viva64.com/vivamp-tool/).

VivaMP is a C/C++ code analyzer intended for searching errors in existing OpenMP-programs and for
simplifying the process of developing new OpenMP-programs. If there are errors in a parallel program
which cannot be diagnosed by the compiler VivaMP will find them. After that the developer can easily
correct these errors using the Help system embedded into VivaMP.

Technically, VivaMP tool is implemented as an add-in module (AddIn) for Visual Studio 2005/2008
(figure 1).
Figure 1 - VivaMP tool is embedded into Microsoft Visual Studio 2005/2008 environment

After testing a separate file, project or whole solution the analyzer prints the list of potential errors the
developer should look through into Error List. You can get information on each error in the Help system
integrating into MSDN.

VivaMP tool allows you to:

    •   find old errors in existing OpenMP-solutions;
    •   detect errors in new OpenMP-solutions being developed;
    •   get information on correcting errors in the Help system;
    •   increase performance of OpenMP-based solutions;
•   investigate most of the possible errors in OpenMP-solutions using both the documentation and
        the demo-program ParallelSample attached to the VivaMP distribution kit.

The stated ways of using VivaMP make this tool useful both for first-time OpenMP-programmers and
their more experienced colleagues.


Advantages of static analysis over other methods of searching parallel
errors
VivaMP tool is a static code analyzer. This means that unlike dynamic analyzers it doesn't require
launching the program being tested to detect errors, and the result of the static analyzer's work doesn't
depend on the execution environment. Static analysis allows you to test the code which receives control
rarely or which is executed when processing rare errors.

Verification of parallel programs with the help of static analysis method is considered to be difficult and
ineffective as it is impossible to detect errors occurring when different program parts interact. But in
case of OpenMP technology you can effectively use static analysis. It is because of OpenMP technology's
"local" character. As a rule, parallel code in programs is gathered in one place and this helps perform
detailed static analysis for detecting errors. To learn more about this subject see the article "Testing
parallel programs" [2].


Conclusion
If you develop parallel programs using OpenMP technology you need to get acquainted with VivaMP
tool (http://www.viva64.com/vivamp-tool/). It will help you make development of OpenMP-solutions
much simpler and quicker.


References
    1. Alexey Kolosov, Evgeniy Ryzhkov, Andrey Karpov. 32 OpenMP Traps For C++ Developers.
       http://www.viva64.com/art-3-2-1023467288.html
    2. Andrey Karpov. Testing parallel programs. http://www.viva64.com/art-3-2-548461019.html

Contenu connexe

Tendances

Monkey talk
Monkey talkMonkey talk
Monkey talk
ISsoft
 

Tendances (20)

vREST for a new user
vREST for a new uservREST for a new user
vREST for a new user
 
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
 
What is the importance of tools in automated ui testing
What is the importance of tools in automated ui testingWhat is the importance of tools in automated ui testing
What is the importance of tools in automated ui testing
 
Debugging and optimization of multi-thread OpenMP-programs
Debugging and optimization of multi-thread OpenMP-programsDebugging and optimization of multi-thread OpenMP-programs
Debugging and optimization of multi-thread OpenMP-programs
 
Case study: QTP to Selenium migration
Case study: QTP to Selenium migrationCase study: QTP to Selenium migration
Case study: QTP to Selenium migration
 
Starwest 2012 Making The Most Of Test Automation In An Agile Project
Starwest 2012   Making The Most Of Test Automation In An Agile ProjectStarwest 2012   Making The Most Of Test Automation In An Agile Project
Starwest 2012 Making The Most Of Test Automation In An Agile Project
 
Selenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | EdurekaSelenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | Edureka
 
Automation
AutomationAutomation
Automation
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
 
Why Automate
Why AutomateWhy Automate
Why Automate
 
Measure performance of the application using open source performance testing...
Measure performance of the  application using open source performance testing...Measure performance of the  application using open source performance testing...
Measure performance of the application using open source performance testing...
 
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in EclipseEclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
Mobile Application Test automation using MonkeyTalk Tool
Mobile Application Test automation using MonkeyTalk ToolMobile Application Test automation using MonkeyTalk Tool
Mobile Application Test automation using MonkeyTalk Tool
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
test
testtest
test
 
Test Automation Tool comparison – HP UFT/QTP vs. Selenium
Test Automation Tool comparison –  HP UFT/QTP vs. SeleniumTest Automation Tool comparison –  HP UFT/QTP vs. Selenium
Test Automation Tool comparison – HP UFT/QTP vs. Selenium
 
Choosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for YouChoosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for You
 
Monkey talk
Monkey talkMonkey talk
Monkey talk
 

En vedette

En vedette (14)

Parallel programs to multi-processor computers!
Parallel programs to multi-processor computers!Parallel programs to multi-processor computers!
Parallel programs to multi-processor computers!
 
Lesson 21. Pattern 13. Data alignment
Lesson 21. Pattern 13. Data alignmentLesson 21. Pattern 13. Data alignment
Lesson 21. Pattern 13. Data alignment
 
Description of VivaVisualCode
Description of VivaVisualCodeDescription of VivaVisualCode
Description of VivaVisualCode
 
PVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applicationsPVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applications
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Changes in programmer tools' infrastructure
Changes in programmer tools' infrastructureChanges in programmer tools' infrastructure
Changes in programmer tools' infrastructure
 
PVS-Studio vs Chromium
PVS-Studio vs ChromiumPVS-Studio vs Chromium
PVS-Studio vs Chromium
 
How VivaCore library appeared
How VivaCore library appearedHow VivaCore library appeared
How VivaCore library appeared
 
Lesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchangeLesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchange
 
Analysis of the Ultimate Toolbox project
Analysis of the Ultimate Toolbox projectAnalysis of the Ultimate Toolbox project
Analysis of the Ultimate Toolbox project
 
Lesson 16. Pattern 8. Memsize-types in unions
Lesson 16. Pattern 8. Memsize-types in unionsLesson 16. Pattern 8. Memsize-types in unions
Lesson 16. Pattern 8. Memsize-types in unions
 
Introduction into the problems of developing parallel programs
Introduction into the problems of developing parallel programsIntroduction into the problems of developing parallel programs
Introduction into the problems of developing parallel programs
 
Optimization in the world of 64-bit errors
Optimization  in the world of 64-bit errorsOptimization  in the world of 64-bit errors
Optimization in the world of 64-bit errors
 
The use of the code analysis library OpenC++: modifications, improvements, er...
The use of the code analysis library OpenC++: modifications, improvements, er...The use of the code analysis library OpenC++: modifications, improvements, er...
The use of the code analysis library OpenC++: modifications, improvements, er...
 

Similaire à VivaMP - a tool for OpenMP

Similaire à VivaMP - a tool for OpenMP (20)

OpenMP
OpenMPOpenMP
OpenMP
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzer
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzer
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ code
 
Parallel Lint
Parallel LintParallel Lint
Parallel Lint
 
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
 
Codename one
Codename oneCodename one
Codename one
 
VivaMP, system of detecting errors in the code of parallel C++ programs using...
VivaMP, system of detecting errors in the code of parallel C++ programs using...VivaMP, system of detecting errors in the code of parallel C++ programs using...
VivaMP, system of detecting errors in the code of parallel C++ programs using...
 
mydevops.pptx
mydevops.pptxmydevops.pptx
mydevops.pptx
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ code
 
Review Paper on Online Java Compiler
Review Paper on Online Java CompilerReview Paper on Online Java Compiler
Review Paper on Online Java Compiler
 
Class notes(week 10) on applet programming
Class notes(week 10) on applet programmingClass notes(week 10) on applet programming
Class notes(week 10) on applet programming
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for Linux
 
Comparing PVS-Studio with other code analyzers
Comparing PVS-Studio with other code analyzersComparing PVS-Studio with other code analyzers
Comparing PVS-Studio with other code analyzers
 
Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhaya
 
Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis tool
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
What's the Difference Between Static Analysis and Compiler Warnings?
What's the Difference Between Static Analysis and Compiler Warnings?What's the Difference Between Static Analysis and Compiler Warnings?
What's the Difference Between Static Analysis and Compiler Warnings?
 
Maven.pptx
Maven.pptxMaven.pptx
Maven.pptx
 
An ideal static analyzer, or why ideals are unachievable
An ideal static analyzer, or why ideals are unachievableAn ideal static analyzer, or why ideals are unachievable
An ideal static analyzer, or why ideals are unachievable
 

Dernier

Dernier (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

VivaMP - a tool for OpenMP

  • 1. VivaMP - a tool for OpenMP Author: Evgeniy Ryzhkov Date: 20.11.2009 At present, Viva64 and VivaMP software products are included in PVS-Studio as parts of it and are no longer distributed as separate applications. Please use PVS-Studio program to obtain the necessary possibilities of code verification. Abstract The tool for programmers VivaMP is intended for helping OpenMP-based parallel software developers. The article gives a brief description of the program product. OpenMP parallel programming technology: advantages and disadvantages The modern processor (whether in a desktop or in a laptop) has several cores. Most often there are two cores and more rarely three or four. But very soon even eight cores in a usual desktop computer will be a common thing. That's why the most progressive software developers start thinking right now how to make their programs parallel. That is how to load all the available processor's cores. And although it would be an absolutely correct solution to develop a new parallel version of the program product, it is actually the existing sequential version that is usually "parallelized". There are many different parallel programming technologies but we are interested first of all in OpenMP technology as the most promising for systems with common memory, that is the most promising for paralleling programs intended for desktop computers. It allows you to make the existing program parallel by rewriting its separate sections. All this seems (and actually is) very attractive to developers but here we face a problem. Support of OpenMP technology is implemented in existing developing means so that it is very easy to make errors which are not diagnosed [1]. Because of this developing OpenMP-solutions becomes even more complicated. A tool for supporting OpenMP-solution developers To make the process of developing OpenMP-solutions less complicated OOO "Program Verification Systems" creating program products in the sphere of code analysis has developed the program product VivaMP (http://www.viva64.com/vivamp-tool/). VivaMP is a C/C++ code analyzer intended for searching errors in existing OpenMP-programs and for simplifying the process of developing new OpenMP-programs. If there are errors in a parallel program which cannot be diagnosed by the compiler VivaMP will find them. After that the developer can easily correct these errors using the Help system embedded into VivaMP. Technically, VivaMP tool is implemented as an add-in module (AddIn) for Visual Studio 2005/2008 (figure 1).
  • 2.
  • 3. Figure 1 - VivaMP tool is embedded into Microsoft Visual Studio 2005/2008 environment After testing a separate file, project or whole solution the analyzer prints the list of potential errors the developer should look through into Error List. You can get information on each error in the Help system integrating into MSDN. VivaMP tool allows you to: • find old errors in existing OpenMP-solutions; • detect errors in new OpenMP-solutions being developed; • get information on correcting errors in the Help system; • increase performance of OpenMP-based solutions;
  • 4. investigate most of the possible errors in OpenMP-solutions using both the documentation and the demo-program ParallelSample attached to the VivaMP distribution kit. The stated ways of using VivaMP make this tool useful both for first-time OpenMP-programmers and their more experienced colleagues. Advantages of static analysis over other methods of searching parallel errors VivaMP tool is a static code analyzer. This means that unlike dynamic analyzers it doesn't require launching the program being tested to detect errors, and the result of the static analyzer's work doesn't depend on the execution environment. Static analysis allows you to test the code which receives control rarely or which is executed when processing rare errors. Verification of parallel programs with the help of static analysis method is considered to be difficult and ineffective as it is impossible to detect errors occurring when different program parts interact. But in case of OpenMP technology you can effectively use static analysis. It is because of OpenMP technology's "local" character. As a rule, parallel code in programs is gathered in one place and this helps perform detailed static analysis for detecting errors. To learn more about this subject see the article "Testing parallel programs" [2]. Conclusion If you develop parallel programs using OpenMP technology you need to get acquainted with VivaMP tool (http://www.viva64.com/vivamp-tool/). It will help you make development of OpenMP-solutions much simpler and quicker. References 1. Alexey Kolosov, Evgeniy Ryzhkov, Andrey Karpov. 32 OpenMP Traps For C++ Developers. http://www.viva64.com/art-3-2-1023467288.html 2. Andrey Karpov. Testing parallel programs. http://www.viva64.com/art-3-2-548461019.html