Wednesday, January 13, 2016

Tchecker reflect the program there is a conflict, but can return incorrect results when executed, then how should I do?




            


When using openMP threaded program, the variable has to program all cycles plus possible conflicts over omp the private key, and the implementation of results under the right circumstances, Tchecker still remind me: Write - & gt; Read data -race Memory read at [potential_serial.exe, 0x5250] conflicts with a prior memory write at [potential_serial.exe, 0xd598] (flow dependence) and output dependence. What should I do?
Reply:
This may be badly efficiency
Reply:
Two reasons: (1) the program may have synchronization issues (2) Threading Check false closer look at the program, if indeed there is no error is found, it is recommended to https://premier.intel.com reporting a bug of...
Reply:
I also found this problem, but my program is in the linear region and the parallel section should not affect each other, for example updatePositions and computePot although use of global variables, but they have to run the order should not conflict variable access, as well as ThreadChecker found MKL vdInvSqrt methods also have this problem, I do not know ThreadChecker problem or code issues
Reply:
For example, although updatePositions and computePot use global variables, but they have to run the order should not conflict variable access,

---------
Thread synchronization statements to ensure that they are executed sequentially it?
Reply:
The CPU now has the ability to order execution, do not assume the CPU instruction stream and your program logic exactly the same.
There are other reasons because the thread scheduling, thread code can be executed at any time you unexpected - as long as you did not use strict synchronization commands to control it may not appear there.

There is a data conflict MKL library functions is really a headache caused by the user and can not interfere.
Also uncertain behavior, obviously nothing changes, sometimes the result is not compiled conflict.
Icl command-line compiler switch contrary, most of the time to compile the results did not conflict, but sometimes conflicting compile the EXE. Simply puzzled ah.

Reply:
That puzzled me the most, just start the machine, with the icl command-line arguments with a few reported data compiled tcheck conflict. The same command line has restated several times conflict.
I use no arguments icl command compiled directly, there is no conflict.
I gradually add a parameter to a final restore command became the beginning of the line, the compiler the result was no conflict.

Every time I compiled all the intermediate files and EXE files deleted, only the directory only one cpp file was compiled. I really can not find the words of the.

No comments:

Post a Comment