Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- How to use multiprocessors?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

I am testing MKL Sparse Solver PARDISO on linux with 8 processors. I've set the enviroment variable MKL_NUM_THREADS=8. However, the output keeps telling me it uses only processor(see enclosed below). Any idea what I did wrong?

Here is my make:

make sointel64 interface=lp64 compiler=gnu function=pardiso_sym_c

Here is the output:

xian-zhong_guous_cd-

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-10-2010
03:14 PM

15 Views

How to use multiprocessors?

Here is my make:

make sointel64 interface=lp64 compiler=gnu function=pardiso_sym_c

Here is the output:

=== PARDISO is running in In-Core mode, because iparam(60)=0 === ================ PARDISO: solving a symmetric indef. system ================ Summary PARDISO: ( reorder to reorder ) ================ Times: ====== Time fulladj: 0.000005 s Time reorder: 0.000250 s Time symbfct: 0.005507 s Time malloc : 0.000074 s Time total : 0.006585 s total - sum: 0.000748 s Statistics: =========== < Parallel Direct Factorization with #processors: > 1 < Numerical Factorization with Level-3 BLAS performance > < Linear system Ax = b>#equations: 9 #non-zeros in A: 19 non-zeros in A (%): 23.456790 #right-hand sides: 1 < Factors L and U > #columns for each panel: 128 #independent subgraphs: 0 < Preprocessing with state of the art partitioning metis> #supernodes: 6 size of largest supernode: 4 number of nonzeros in L 29 number of nonzeros in U 1 number of nonzeros in L+U 30 Reordering completed ... Number of nonzeros in factors = 30 Number of factorization MFLOPS = 0 Percentage of computed non-zeros for LL^T factorization 0 % 3 % 13 % 24 % 31 % 44 % 100 % ================ PARDISO: solving a symmetric indef. system ================ Summary PARDISO: ( factorize to factorize ) ================ Times: ====== Time A to LU: 0.000000 s Time numfct : 0.001327 s Time malloc : 0.000012 s Time total : 0.001343 s total - sum: 0.000004 s Statistics: =========== < Parallel Direct Factorization with #processors: > 1 < Numerical Factorization with Level-3 BLAS performance > < Linear system Ax = b> #equations: 9 #non-zeros in A: 19 non-zeros in A (%): 23.456790 #right-hand sides: 1 < Factors L and U > #columns for each panel: 128 #independent subgraphs: 0 < Preprocessing with state of the art partitioning metis> #supernodes: 6 size of largest supernode: 4 number of nonzeros in L 29 number of nonzeros in U 1 number of nonzeros in L+U 30 gflop for the numerical factorization: 0.000000 gflop/s for the numerical factorization: 0.000047 Factorization completed ... ================ PARDISO: solving a symmetric indef. system ================ Summary PARDISO: ( solve to solve ) ================ Times: ====== Time solve : 0.000047 s Time total : 0.000066 s total - sum: 0.000019 s Statistics: =========== < Parallel Direct Factorization with #processors: > 1 < Numerical Factorization with Level-3 BLAS performance > < Linear system Ax = b> #equations: 9 #non-zeros in A: 19 non-zeros in A (%): 23.456790 #right-hand sides: 1 < Factors L and U > #columns for each panel: 128 #independent subgraphs: 0 < Preprocessing with state of the art partitioning metis> #supernodes: 6 size of largest supernode: 4 number of nonzeros in L 29 number of nonzeros in U 1 number of nonzeros in L+U 30 gflop for the numerical factorization: 0.000000 gflop/s for the numerical factorization: 0.000047 Solve completed ... The solution of the system is: x [0] = -0.041860 x [1] = -0.003413 x [2] = 0.117250 x [3] = -0.112640 x [4] = 0.024172 x [5] = -0.107633 x [6] = 0.198720 x [7] = 0.190383 x [8] = 1.000000

4 Replies

Highlighted
##

Hi,

Alexander_K_Intel2

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-11-2010
12:04 AM

15 Views

Could you provide link line of your example? It's seem that you link with sequential library. To check your link line please use this articlehttp://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

With best regards,

Alexander Kalinkin

Highlighted
##

Here is the link line:

xeons03 270> make sointel64 interface=ilp64 compiler=gnu function=pardiso_sym_c

----- Compiling gnu_ilp64_parallel_intel64_so ----- pardiso_sym_c

gcc -m64 -w -DMKL_ILP64 -I"/opt/intel/Compiler/11.1/046/mkl/include" \

./source/pardiso_sym_c.c \

-L"/opt/intel/Compiler/11.1/046/mkl/lib/intel64" -lmkl_intel_ilp64 \

-lmkl_intel_thread \

-lmkl_core \

-L"/opt/intel/Compiler/11.1/046/mkl/../lib/intel64" -liomp5 -lpthread -lm -o _results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.out

----- Execution gnu_ilp64_parallel_intel64_so ----- pardiso_sym_c

export LD_LIBRARY_PATH="/opt/intel/Compiler/11.1/046/mkl/lib/intel64":/opt/intel/Compiler/11.1/046/mkl/lib/em64t:/opt/intel/Compiler/11.1/046/mkl/../lib/intel64; \

_results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.out > _results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.res

Is it because my problem size is too small?

xian-zhong_guous_cd-

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-13-2010
01:41 PM

15 Views

xeons03 270> make sointel64 interface=ilp64 compiler=gnu function=pardiso_sym_c

----- Compiling gnu_ilp64_parallel_intel64_so ----- pardiso_sym_c

gcc -m64 -w -DMKL_ILP64 -I"/opt/intel/Compiler/11.1/046/mkl/include" \

./source/pardiso_sym_c.c \

-L"/opt/intel/Compiler/11.1/046/mkl/lib/intel64" -lmkl_intel_ilp64 \

-lmkl_intel_thread \

-lmkl_core \

-L"/opt/intel/Compiler/11.1/046/mkl/../lib/intel64" -liomp5 -lpthread -lm -o _results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.out

----- Execution gnu_ilp64_parallel_intel64_so ----- pardiso_sym_c

export LD_LIBRARY_PATH="/opt/intel/Compiler/11.1/046/mkl/lib/intel64":/opt/intel/Compiler/11.1/046/mkl/lib/em64t:/opt/intel/Compiler/11.1/046/mkl/../lib/intel64; \

_results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.out > _results/gnu_ilp64_parallel_intel64_so/pardiso_sym_c.res

Is it because my problem size is too small?

Highlighted
##

Can you please check the value of MKL_NUM_THREADS environment variable?

More details on controlling# of threads using env variables can be found in the MKL user manual

http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/mklxe/mkl_userguide_lnx/...

--Vipin

VipinKumar_E_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-13-2010
11:14 PM

15 Views

More details on controlling# of threads using env variables can be found in the MKL user manual

http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/mklxe/mkl_userguide_lnx/...

--Vipin

Highlighted
##

Hi,

Konstantin_A_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

12-14-2010
12:28 AM

15 Views

You
are correct, the task is too small and PARDISO decided to solve it using only 1
thread because there's no any benefit to use multithreading for such really
small matrices.

Most
likely, all is correct with threading in your program. Please just try to solvea
matrix
with substantially larger number of equations (say, more than one thousand).

Best regards,

Konstantin

For more complete information about compiler optimizations, see our Optimization Notice.