I wrote a program on Visual Studio 2005 c++ that worked fine in serial mode. When I converted it according to Cilk's programmer's guide I removed all but a few global variables and had carefully checked every instance of the remaining ones to make sure that none of them is ever 'written to' in the program. But the race detector still reported over 200 warnings or errors. I have the following specific questions regarding this problem:
1. How do I extract more information from the report generated by the race detector? All I got is a bunch of memory addresses that I apparently have no way to monitor in Visual C++ 2005. I heard that there's a 'data access breakpoint' that can do this but didn't find it.
2.I compared the output of the program with that of a serial version and found them to be identical. If the results are deterministic, doesn't it mean there is no race, or maybe they're of the benign kind?
3. I can't debug the parallel version. I added the cilk_stub header to the source file but found upon building the project errors that say something about non-cilk routine cannot call cilk routine. They occur every time a function is called in the source file. What have I missed?
Any idea would be appreciated.