- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I used OpenMP pragmas in DLL and it causes programm crush. DLL has not manual initialization function and load dynamicaly. I used icl 6.0 and icl 7.0. Today I use win32 API directly. Which compiler version hands OpenMP in DLLs appropriate?
Link Copied
6 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Putting OpenMP pragmas in a DLL should not cause problems for either the 6.0 or 7.0 compilers. What are the symptoms of the program crash? Are there any error messages?
Are you sure the OpenMP is correct? I suggest analyzing the DLL with the Intel Thread Checker. It might help if you posted a code fragment showing the OpenMP.
Best regards,
Henry
Putting OpenMP pragmas in a DLL should not cause problems for either the 6.0 or 7.0 compilers. What are the symptoms of the program crash? Are there any error messages?
Are you sure the OpenMP is correct? I suggest analyzing the DLL with the Intel Thread Checker. It might help if you posted a code fragment showing the OpenMP.
Best regards,
Henry
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ops it even not compile.
static int buf[1024];
#pragma omp parallel for
for (i=0; i<1024; i++)
buf=i;
PreAnalysis$.cpp(233) : (col. 3) remark: OpenMP DEFINED LOOP WAS PARALLELIZED.
PreAnalysis$.cpp(234) : (col. 3) remark: LOOP WAS VECTORIZED.
PreAnalysis$.cpp(233): (col. 3) internal error: 0_1546
compilation aborted for PreAnalysis$.cpp (code 4)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a good way to post code here is to use the "Attach Files" button to upload your code snippets, you will be even allowed to update the files after posting
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I couldn't reproduce the internal error with this simple code (compiled 'icl -c -Qopenmp -QxKW simple.cpp'):
The compiler will either parallelize or vectorize the loop but I can't force it to do both. My code is probably too simple. An internal compiler error is something that must be fixed. Do you have a small code that reproduces the error? If not, please submit this issue to Intel Premier Support and provide your Package ID and the error number. To get the Package ID, type 'icid' at the compiler command prompt or go to Start Programs Intel Software Development Tools Registration and Support Get Package ID.
Thanks,
Henry
static int buf[1024]; void func () { int j; #pragma omp parallel for for (j = 0; j < 1024; j++) buf= j; }
The compiler will either parallelize or vectorize the loop but I can't force it to do both. My code is probably too simple. An internal compiler error is something that must be fixed. Do you have a small code that reproduces the error? If not, please submit this issue to Intel Premier Support and provide your Package ID and the error number. To get the Package ID, type 'icid' at the compiler command prompt or go to Start Programs Intel Software Development Tools Registration and Support Get Package ID.
Thanks,
Henry
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
HenryG
I download icl7.1 and I have to notice that this bag disappears in version 7.1. However, version 6.0 has it still.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for letting us know that the problem is fixed in the current release.
Henry
Henry
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page