1

I wrote a serial program code for recursion. I've compiled it with ICC and GCC with different output file names. When used Intel Advisor XE 2013, for detecting hotspot, GCC compiled code passed all tests but in correctness, it came up with warning Warning: Advisor does not support the GNU OpenMP Runtime module and may report false positives. so to avoid issues in data sharing I compiled annotated code with ICC (then tested out file on terminal) and imported it to new project with source directory and out file. But its producing issue (as per stack) Collection has stopped. Application exit code: 127 resulting NO DATA error.
Code is :

#include<stdio.h>
#include "/opt/intel/include/omp.h"  //just for the sake of testing include directory
#include "/opt/intel/advisor_xe_2013/include/advisor-annotate.h" 

long Fibonacci(long);

int main(int argc, char *argv[])

{
    double toc,tic=omp_get_wtime();
    int n, i = 0, c;
    n=45;
    printf("Fibonacci series\n");
    ANNOTATE_SITE_BEGIN(SITE1);
    for ( c = 1 ; c <= n ; c++ )
    {
        ANNOTATE_ITERATION_TASK( MyTask1 );  // This annotation identifies an entire body as a task. 
        printf("%ld\n", Fibonacci(i));
        i++;
    }ANNOTATE_SITE_END();  // End the parallel code region, after task execution completes
return 0;
}

long Fibonacci(long n)
{

    long x,y;

    if ( n == 0 )
        return 0;
    else if ( n == 1 )
        return 1;
    else
        {    
            x=Fibonacci(n-1);
            y=Fibonacci(n-2);
            return ( x+y ); 
        }
} 

Run : icc serFib.c -o F123ICC2 -openmp -O2 -ldl -g -I $(ADV_DIR)
ADV_DIR is /opt/intel/advisor_xe_2013/include/
-OpenMP is to include Intel's library

NOTE 1 I've set up paths for /opt/intel/composerxe/bin and Library Path for /opt/intel/lib/intel64
Note 2 I've set up ptrace variable in yama already to 0
Note 3 ICC compiled code(F123ICC2, here) is executing and showing proper result on terminal.
Note 4 I know that 127 code (in linux) is for path/command not found.

Community
  • 1
  • 1
kAmol
  • 1,297
  • 1
  • 18
  • 29
  • Could you post the code or better still could you try to produce a minimal meaningful example? – Dima Chubarov Sep 16 '14 at 12:53
  • It came to my observation that, this 127 error is appearing only with icc compiled code, and not with gcc compiled code. – kAmol Sep 17 '14 at 07:27
  • Just FYI, I ran your code with `advixe-cl --collect correctness --project-dir ./advi --search-dir src:r=./src/ ./bin/F123ICC2`. Analysis completed w/o issues. – Dima Chubarov Sep 17 '14 at 11:08
  • Are you sure you run advixe-gui from the SAME shell instance, where you succesfully run F123ICC2 before and where you have all ICC environment set-up properly? There is a chance that you profile your application in different environment, where no openmp etc available. Also don't use advixe-gui& (i.e. no ampersand just in case). Also just in case: two options to experiment with in such cases: 1) File>Options>Application Output destination. 2) Toolbar>Project Properties>Working directory. – zam Sep 17 '14 at 17:07
  • @DmitriChubarov on my system terminal too this worked very well without any exceptions and also gave expected output which means no error in program implementation. But Log is something like `Collection has been started. Collection has stopped. Application exit code: 127 Finalizing results. Finalizing the result. Clearing the database The database has been cleared, elapsed time is 0.243 seconds. Loading raw data to the database Raw data has been loaded to the database, elapsed time is 0.001 seconds. Finalizing the result took 0.251 seconds.` but correctness report says `NO DATA` – kAmol Sep 18 '14 at 05:41
  • @zam I've included env path etc in [`.profile`](http://www.wrox.com/WileyCDA/WroxTitle/Parallel-Programming-with-Intel-Parallel-Studio-XE.productCd-1118221133,descCd-tableOfContents.html), hence at login these are getting loaded and the shell symbol is $ everywhere meaning same shell. I'm setting up `Output Destination` and `Working Directory` at the time creating new project itself. – kAmol Sep 18 '14 at 05:58
  • OK, I still would recommend to do like I mentioned above: i.e. simply run annotated F123ICC2, make sure that annotated loop has been executed succesfully, after that run advixe-gui or advixe-cl from exactly the same shell instance right after F123ICC2 run command - just to make sure there is no issues with it. Once it's done and assume it doesn't help - it's better to post your question on IDZ Advisor forum: https://software.intel.com/en-us/forums/intel-advisor-xe - Intel support is responsive enough: and they will likely request appropriate details like additional log files, etc. – zam Sep 18 '14 at 08:01
  • @Zam I've compiled annotated code with icc and added paths using -I options(as per your comment). Compiled and executed properly without any issue.Then I'm using advixe-cl (on same terminal window with same shell) to check correctness which executed without issue/error, which also created log file stating 127 error. I've mentioned the stack in previous comment. options for include working Dir and output destinations are set as mentioned by Dmitri in previous comments. – kAmol Sep 18 '14 at 08:53
  • OK, so one more question: when you run Suitability on the same binary - is everything OK? Also did you notice that in your "Project Properties" - Correctness analysis has individual application parameters, available via "Target Type" combo-box at the top of "Project Properties"? It's theoretically (rarely) possible, that you made some wrong configuration changes in Correctness tab, and forgot about it.. By the way I also tried your test case on my machine and everything worked fine, no 127 error. – zam Sep 18 '14 at 13:24
  • Suitability works properly on gcc compiled binary and suitability check with icc compiled binary produces same error i.e. no data. Project properties, I've not setup separately. I've even tested at terminal as suggested by Dmitri – kAmol Sep 18 '14 at 14:12

0 Answers0