Sorry, that's Sun CC 5.11, not 5.2.
On Sun, Sep 26, 2010 at 2:47 PM, Max S. Kaznady
Hi,
I wrote a C++ project using OpenMP, GCC and Boost. When I enable nested parallelism (omp_set_nested(1)), repeated runs of the same piece of code produce different results, which suggests that there is a race condition somewhere, but I do not see anything wrong with the logic of my code, so I decided to use Sun Studio's Thread Analyzer to analyze my code. This requires me to build my project with Sun's CC 5.2, which fails with the following warning message from Boost:
"/h/96/g4max/local/boost64/include/boost/numeric/ublas/detail/config.hpp", line 170: Error: #error Your compiler and/or configuration is unsupported by this verions of uBLAS. Define BOOST_UBLAS_UNSUPPORTED_COMPILER=0 to override this message. Boost 1.32.0 includes uBLAS with support for many older compilers..
Is it even possible to compile Boost 1.43 with Sun's CC? I tried setting user-config.jam and then build with: ./bootstrap.sh --prefix=/install_dir ./bjam --user-config=user-config.jam -j16 toolset=sun ./bjam install
where user-config.jam is: using sun : 5.2 : /my_sun_location/CC : -library=stlport4 -features=tmplife -features=tmplrefstatic ;
I get a lot of warnings and error messages...
So, my questions are: 1) What is the best way to check parallel code for race conditions using some free tool? 2) If one such free tool is Sun Studio, then how can I get Boost working with it? 3) If someone here knows OpenMP, could it be that omp_set_nested() produces a race condition within a Boost library? My codes run fine with omp_set_dynamic(1), but as soon as I enable nesting I get race conditions.
Thanks! Max