<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: thread checker problem in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893874#M3917</link>
    <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;This looks OK. I guess you are running on a 32-bit operating system; you didn't say. If you are running on a 64-bit linux, with a 64-bit ifort and gcc, you will need the thread checker psths with 32e instead of 32. My colleagues have been asking for a uniform directory naming system for at least a year now, apparently with little success.&lt;/P&gt;
&lt;P&gt;When you have compiled and linked with -tcheck set, and have the shared library paths set according to tcheckvars and ifortvars, you can run your application normally. Don't use tcheck_cl yet. Your application should write the file threadchecker.thr; then you can run 'tcheck_cl threadchecker.thr' to display any warnings.&lt;/P&gt;
&lt;P&gt;Thread checker runs aren't affected by the number of threads whiich are set, unless your program explicitly chooses execution paths according to that setting. I should say, I have experience with thread checker only with OpenMP threading.&lt;/P&gt;
&lt;P&gt;When you run, if you get a message that it was unable to link libomp_dbg, it means the version of ifort you are using doesn't support thread checker (or you didn't set the ifort LD_LIBRARY_PATH). It looks like ifort 11.0 should have fully corrected this problem in the latest version (11.0/074).&lt;/P&gt;
&lt;P&gt;It looks like you didn't attempt to thread check the objects which were built with gcc. I believe you have done this correctly; it seems that thread checker can handle correctly only the objects built with the same compiler used to compile the main program and link.&lt;/P&gt;</description>
    <pubDate>Fri, 28 Nov 2008 15:05:01 GMT</pubDate>
    <dc:creator>TimP</dc:creator>
    <dc:date>2008-11-28T15:05:01Z</dc:date>
    <item>
      <title>thread checker problem</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893873#M3916</link>
      <description>&lt;P&gt;below is my makefile that i have used to use with threadchecker. i have a core2duo machine  and i generally run my openmp-fortran code with number of thread set to 2. in my application, when i ran the code using theck_cl , it was running as if it is ordered. is that ok or i have missed some point?&lt;/P&gt;
&lt;P&gt;i have sourced tcheckvars.sh aswell. plz suggestme what to do and how i can catch how to catch datarace condition&lt;/P&gt;
&lt;PRE&gt;[cpp]&lt;EM&gt;&lt;BR /&gt;FC=ifort&lt;BR /&gt;LDFLAG=-lpthread&lt;BR /&gt;TCFLAG = -tcheck&lt;BR /&gt;ITT_BASE =/matsc/students/Rudra/intel/itt&lt;BR /&gt;LPATH = $(ITT_BASE)/tcheck/bin/32&lt;BR /&gt;ifeq ($(FC),gfortran)&lt;BR /&gt;CC=gcc&lt;BR /&gt;FFLAG = -O0#-lpthread -tcheck&lt;BR /&gt;FPAR=-fopenmp&lt;BR /&gt;LFFLAG=-O0&lt;BR /&gt;CFLAG =-O0&lt;BR /&gt;&lt;BR /&gt;else&lt;BR /&gt;CC=icc&lt;BR /&gt;FFLAG =-g -O3&lt;BR /&gt;LFFLAG=-g -O3&lt;BR /&gt;FPAR=-openmp&lt;BR /&gt;CFLAG =#-O3&lt;BR /&gt;endif&lt;BR /&gt;&lt;BR /&gt;LP=lp -d ccprint -o sides=two-sided-long-edge&lt;BR /&gt;&lt;BR /&gt;objs =cptimer.o &lt;BR /&gt;kind.o param.o &lt;BR /&gt;mmat.o newfit.o &lt;BR /&gt;hop.o pardos.o &lt;BR /&gt;dos.o fermi.o &lt;BR /&gt;band.o ldos.o &lt;BR /&gt;cgreen.o main.o #eigen.o&lt;BR /&gt;&lt;BR /&gt;irun : $(objs)&lt;BR /&gt;#$(FC) $(LFFLAG) $(FPAR) $(objs) -o irun&lt;BR /&gt;$(FC) $(LFFLAG) $(FPAR) -L$(LPATH) $(TCFLAG) $(objs) -o irun&lt;BR /&gt;&lt;BR /&gt;kind.o : kind.f90&lt;BR /&gt;$(FC) $(FFLAG) -c kind.f90&lt;BR /&gt;param.o:param.f90&lt;BR /&gt;$(FC) $(FFLAG) -c param.f90&lt;BR /&gt;newfit.o: newfit.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c newfit.f90&lt;BR /&gt;cptimer.o:lib/cptimer.c&lt;BR /&gt;$(CC) -c lib/cptimer.c&lt;BR /&gt;mmat.o: mmat.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c mmat.f90&lt;BR /&gt;hop.o: hop.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c hop.f90&lt;BR /&gt;cgreen.o:cgreen.f90 param.o&lt;BR /&gt;$(FC) $(FFLAG) -c cgreen.f90&lt;BR /&gt;dos.o:dos.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c dos.f90&lt;BR /&gt;fermi.o:fermi.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c fermi.f90&lt;BR /&gt;ldos.o:ldos.f90 param.o kind.o&lt;BR /&gt;$(FC) $(FFLAG) -c ldos.f90&lt;BR /&gt;band.o:band.f90 kind.o param.o&lt;BR /&gt;$(FC) $(FFLAG) -c band.f90&lt;BR /&gt;pardos.o:pardos.f90 param.o&lt;BR /&gt;$(FC) $(FFLAG) -c pardos.f90&lt;BR /&gt;main.o : main.f90 ldos.o fermi.o band.o dos.o newfit.o mmat.o hop.o param.o kind.o&lt;BR /&gt;#$(FC) $(FFLAG) $(FPAR) -c main.f90&lt;BR /&gt;$(FC) $(FFLAG) $(FPAR) $(TCFLAG) -L$(LPATH) $(LDFLAGS) -c main.f90&lt;/EM&gt;[/cpp]&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;Regards,&lt;/P&gt;
&lt;P&gt;Rudra&lt;/P&gt;</description>
      <pubDate>Fri, 28 Nov 2008 04:26:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893873#M3916</guid>
      <dc:creator>roddur</dc:creator>
      <dc:date>2008-11-28T04:26:22Z</dc:date>
    </item>
    <item>
      <title>Re: thread checker problem</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893874#M3917</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;This looks OK. I guess you are running on a 32-bit operating system; you didn't say. If you are running on a 64-bit linux, with a 64-bit ifort and gcc, you will need the thread checker psths with 32e instead of 32. My colleagues have been asking for a uniform directory naming system for at least a year now, apparently with little success.&lt;/P&gt;
&lt;P&gt;When you have compiled and linked with -tcheck set, and have the shared library paths set according to tcheckvars and ifortvars, you can run your application normally. Don't use tcheck_cl yet. Your application should write the file threadchecker.thr; then you can run 'tcheck_cl threadchecker.thr' to display any warnings.&lt;/P&gt;
&lt;P&gt;Thread checker runs aren't affected by the number of threads whiich are set, unless your program explicitly chooses execution paths according to that setting. I should say, I have experience with thread checker only with OpenMP threading.&lt;/P&gt;
&lt;P&gt;When you run, if you get a message that it was unable to link libomp_dbg, it means the version of ifort you are using doesn't support thread checker (or you didn't set the ifort LD_LIBRARY_PATH). It looks like ifort 11.0 should have fully corrected this problem in the latest version (11.0/074).&lt;/P&gt;
&lt;P&gt;It looks like you didn't attempt to thread check the objects which were built with gcc. I believe you have done this correctly; it seems that thread checker can handle correctly only the objects built with the same compiler used to compile the main program and link.&lt;/P&gt;</description>
      <pubDate>Fri, 28 Nov 2008 15:05:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893874#M3917</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2008-11-28T15:05:01Z</dc:date>
    </item>
    <item>
      <title>Re: thread checker problem</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893875#M3918</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/367365"&gt;tim18&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;P&gt;When you have compiled and linked with -tcheck set, and have the shared library paths set according to tcheckvars and ifortvars, you can run your application normally. Don't use tcheck_cl yet. Your application should write the file threadchecker.thr; then you can run 'tcheck_cl threadchecker.thr' to display any warnings.&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;hmmm..thanks!i was making the same mistake with running the executable directly using tcheck_cl. and it was horribly slow.now using the same make, i am just running the irun(my executable) firest and then i will , according to your advice, run the tcheck_cl.&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;but i think this point should be made clearer in the userguide itself.&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;thanks&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 28 Nov 2008 16:40:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893875#M3918</guid>
      <dc:creator>roddur</dc:creator>
      <dc:date>2008-11-28T16:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: thread checker problem</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893876#M3919</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/271365"&gt;roddur&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;hmmm..thanks!i was making the same mistake with running the executable directly using tcheck_cl. and it was horribly slow.now using the same make, i am just running the irun(my executable) firest and then i will , according to your advice, run the tcheck_cl.&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV style="width: 100%; margin-top: 5px;"&gt;but i think this point should be made clearer in the userguide itself.&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;Running under tcheck is slow no matter how you do it. In large applications I deal with, it is sufficient to run drastically shortened cases.&lt;/P&gt;
&lt;P&gt;For simple advertising demonstrations, I believe there was a goal of making tcheck_cl capable of checking a basic build made without -tcheck. In principle, this would permit checking pre-built libraries of unknown thread-safeness. Particularly when running under 32-bit OS, the size of test cases would be extremely limited.&lt;/P&gt;
&lt;P&gt;For practical purposes, I have not been able to use tcheck under either the ia64 or the 32-bit OS. If you have built successfully, you have passed the first limitation, which is that code size may grow under -tcheck (which implies -O0 -g) to the extent where it is impossible to link.&lt;/P&gt;</description>
      <pubDate>Fri, 28 Nov 2008 18:44:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/thread-checker-problem/m-p/893876#M3919</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2008-11-28T18:44:58Z</dc:date>
    </item>
  </channel>
</rss>

