- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
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
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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

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