Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29281 Discussions

about intel fortran compiler from cluster 2020 to oneapi

xqbc
Novice
803 Views

I once download a free version of  Intel® Parallel Studio XE Cluster Edition 2020, it showed very good computation ability when I used pardiso with my PC with 2*Intel(R) Xeon(R) CPU E5-2630 v4. The CPU utilization can reached 100%. However, it was expired now. I now used intel oneapi HPC on VS, however, I can only reach 50% cpu utilization when I used Pardiso for solver. I do not know the problem.

2 Replies
Steve_Lionel
Honored Contributor III
778 Views
0 Kudos
jimdempseyatthecove
Honored Contributor III
775 Views

The 100% utilization is not the proper measure of performance. The wall clock time for the same run is the figure to use.

IIF your application is using MPI, your configuration, environment or command line options may have instructed MPI to use one of your CPU's.

Note MKL uses OpenMP internally for multi-threaded within MKL.

IIF your application is using OpenMP, you have similar configuration and environment setting issues...

Plus the environment variables (and there default values):

OMP_WAIT_POLICY=xxx

KMP_BLOCKTIME=nnn (ms)

For example, if your OpenMP program has significant amount of serial sections, a KMP_BLOCKTIME (either you or default) has a block time (SpinWait time), longer than the serial section(s), then all threads will be busy even though only one thread is performing work. In this case 100% utilization is being reported while only one thread out of 40 threads on your system is actually working on your program.

The OMP_WAIT_POLICY is a different way of modifying the block time. IMHO "block time" is a misnomer, wait time or spinwait time is a better term.

 

You have available to you VTune, which you can use to see what is happening "under the hood" so to speak. This can shed some light on what is happening.

 

Jim Dempsey

 

0 Kudos
Reply