- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using Intel Fortran 10, and trying to learn parallelization with the compiler. I am using a sample of codes from Intel website as follows: PROGRAM TEST PARAMETER (N=10000000) REAL A, C(N) DO I = 1, N A = 2 * I - 1 C(I) = SQRT(A) ENDDO PRINT*, N, C(1), C(N) END PROGRAM TEST I turned on Qparalle and Qpar_report and expected the compiler can parallelize the codes and give some messages, However, no messages that are generated after compiling to show the codes have been parallelized. Furthermore with or without parallelization, the executable still uses one core thought my machine is due-core.
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
-Qparallel normally would not parallelize a single almost-vectorizable loop until you fiddle with the option /Qpar-threshold. /Qpar-threshold100 is the default, so as not to automatically parallelize loops where that is likely to reduce performance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks a lot. But I set the Qpar-threshold to 0, and eventhe codes are not parallelized, should the compiler generate messages on parallelization since qpar-report is set to 3.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compiler is very strict about spelling. I think /Qpar-report3 should produce screen echos, except that your example is one in which that loop can be eliminated entirely, as no result from it is used in any way.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Iwonder if these are other compiler settingsthat prevents the compiler from producing the messages. BecauseI tried to parallelize a much bigger Fortran project, butdid not get any messages. below is the compiler settings. See if I missed something.
/nologo /Zi /Od /Qparallel /Qpar_threshold:0 /include:"C:\LocalDocs\psse_next\build2008\debug" /include:"C:\LocalDocs\qtXLS\Bindings\IVF" /DDLLI /f77rtl /intconstant /Qopenmp_report:2 /Qpar_report:3 /Qvec_report:0 /warn:interfaces /iface:cvf /module:"C:\LocalDocs\psse_next\build2008\debug\" /object:"C:\LocalDocs\psse_next\build2008\debug\" /traceback /check:bounds /libs:static /threads /dbglibs /c
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I suppose /Od would be the prime suspect in suppressing auto-parallelization. /iface:cvf should be used only if necessary (e.g. in an attempt to make a combined build with CVF compatible objects, when you can't do a complete rebuild including allowing C or C++ to use the default C_DECL interface).

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