|
|
|||
![]() PVS-Studio Static Code Analyzer for 64-bit and parallel C/C++ code
|
|||
![]() ![]() ![]() ![]() ![]()
02.09.2010
Feeling the new Intel Parallel Studio XE 2011 beta So I've gotten to try the C++ compiler included into Intel Parallel Studio XE 2011 beta at last.»
30.08.2010
Five days for fixing a two-character error, or a myth of almighty technologies aiding software development In this blog, you may often read posts about how this or that software tool or software development technology helps make fewer errors, find them faster and correct them easier.»
30.08.2010
d'Artagnan and Internet, or working on the problem of bad links Friends, it is high time we stopped considering links only in the context of their number and buying/ selling and counting PR of the site they are laid out on.» ![]()
10.09.2010
Regular use of static code analysis in team development The article discusses different levels of using static code analysis technologies in team development and shows how to "move" the process from one level to another.»
22.07.2010
Using PVS-Studio with continuous integration systems This article illustrates techniques required to employ the use of PVS-Studio static code analyzer together with continuous integration systems.»
06.07.2010
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defects in 64-bit programs
In the article, we will compare three mechanisms of code analysis from the viewpoint of detecting 64-bit errors: the Visual C++ 2010 compiler, the Code Analysis for C/C++ component included into Visual Studio 2010 and Viva64 analyzer included into PVS-Studio 3.60.» ![]() |
Parallel Programming![]() The paper presented in two parts introduces the readers into the basics of OpenMP technology and describes its various #pragma directives and principles of working with variables, threads and parallel sections. The author gives a good deal of code examples and thorough explanations and tips on how to deal with the issues presented in them. The paper will be surely helpful for all developers making the first steps in OpenMP.
In his note, the author touches upon the problem of multithreaded applications designed for working on a single processor being subject to a misbehavior on multiple processors, and recommends two tools to manage parallel execution: Erlang and Intel's compiler suite.
In this article, the author refers to the issue of the so called opportunistic thread scheduling and describes this technique's principle. He also touches upon QuickThread programming and explains how to employ opportunistic scheduling with the best result.
In the era of multithreading programming coming closer and closer, it is important that developers be acquainted with technologies intended to simplify it. This paper is meant as a brief introduction into OpenMP technology but it is rather vast and includes several sections covering various important aspects. First of all, the paper explains OpenMP's pragma-based implementation and covers the following issues: the syntax, thread-safety, data sharing, execution synchronization and loop nesting. Each section contains a lot of illustrative code samples and descriptions of directives and clauses used for a particular purpose. Also, some tips on how to deal with the shortcomings are given. The paper will serve as a good source of basic information about OpenMP.
John E. West gives a brief overview of the teleconference devoted to the announcement made by Intel and Microsoft about creating two research-centers that would focus on the ways of improving the technology of parallel programming and the very way of how programmers "think" and employ parallel programming techniques. The author clarifies some points in this issue and cites some of the participants of the event. In particular, the main goal of the research-centers is to improve mainstream programming. The author also makes some conclusions about the good consequences of the step made by Intel and Microsoft.
OpenMP technology helps developers create multithreaded applications more quickly and with less effort. The authors of this article are going to tell about the main features of this technology acquainting the user with the OpenMP constructs (in particular, synchronization pragmas and execution environment routines) and referring to some issues related to shared and private data, scheduling algorithms and non-loop parallelism. The article is supplied with many code samples and instructions on using particular constructs.
Kerry D. Wong demonstrates differences in C++ code performance when performing the operation of matrix multiplication using OpenMP and the libraries uBLAS, cBLAS and MATLAB. He gives the code samples showing changes introduced in the code and comments them making conclusions about the performance change. At the end of the article, there is a table comparing the obtained results.
Written in a very clear and lively language, this paper touches upon the concepts of multithreaded programming and includes several sections describing various approaches and aspects related to this technology: multitasking, multithreaded programming basics, thread management, synchronization, strategies, as well as task parallelism, data parallelism, pipelining, tools and libraries for multithreading, graphical programming and debugging tools. In other words, the paper covers the most important points of multithreaded programming and will be helpful for any developer in mastering it.
OpenMP is very convenient when working with multithreading but it has its own weak points. The authors of the article describe some of them sharing their experience of using OpenMP in a program performing a standard sorting algorithm. There are two problems they have encountered: recursion and busy waiting. To solve each of them, the authors suggest several solutions whose performance is analyzed and compared then. Some suggestions on improving OpenMP specification are also made.
|
||
|
© 2008 - 2010, OOO "Program Verification Systems"
300027, Russia, Tula, P.O. Box 1800. Office: Russia, Tula, Kutuzova 100-73 |
|||