Community
cancel
Showing results for 
Search instead for 
Did you mean: 
stydofe1
Beginner
28 Views

qparallel does not work

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.
0 Kudos
5 Replies
TimP
Black Belt
28 Views

-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.
stydofe1
Beginner
28 Views

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.
TimP
Black Belt
28 Views

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.
stydofe1
Beginner
28 Views

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

TimP
Black Belt
28 Views

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).