Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

qparallel does not work

stydofe1
Beginner
113 Views
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
113 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
113 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
113 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
113 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
113 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).
Reply