I go this ex1.c file from Intel 11. However, when I execute it, it fails:
gsamaras@pythagoras:~/konstantis$ ../mpich-install/bin/mpicc -o test ex1.c -I../intel/mkl/include ../intel/mkl/lib/intel64/libmkl_scalapack_ilp64.a -Wl,--start-group ../intel/mkl/lib/intel64/libmkl_intel_ilp64.a ../intel/mkl/lib/intel64/libmkl_core.a ../intel/mkl/lib/intel64/libmkl_sequential.a -Wl,--end-group ../intel/mkl/lib/intel64/libmkl_blacs_intelmpi_ilp64.a -lpthread -lm -ldl
gsamaras@pythagoras:~/konstantis$ mpiexec -n 4 ./test
{ 0, 0}: On entry to
DESCI{ 1, 0}: On entry to NIT parameter number 9 had an illegal value
{ 0, 0}: On entry to
DESCINIT parameter number 4 had an illegal value
0 0 vals 1.00000 0.20100 0.50100 0.60100 0.10200 2.00000 0.50200 0.60200 0.10500 0.20500 5.00000 0.60500 0.10600 0.20600 0.50600 6.00000
DESCINIT parameter number 4 had an illegal value
0 0 vals 1.00000 0.20100 0.50100 0.60100 0.10200 2.00000 0.50200 0.60200 0.10500 0.20500 5.00000 0.60500 0.10600 0.20600 0.50600 6.00000
{ 0, 1}: On entry to
DESCINIT parameter number 6 had an illegal value
{ 0, 1}: On entry to
DESCINIT parameter number 6 had an illegal value
0 1 vals 0.10300 0.20300 0.50300 0.60300 0.10400 0.20400 0.50400 0.60400 0.10700 0.20700 0.50700 0.60700 0.10800 0.20800 0.50800 0.60800
{ 1, 1}: On entry to { -1, -1}: On entry to
PSGESV
parameter number 602 had an illegal value
*** Error in `./test': free(): invalid next size (fast): 0x00000000021a6ae0 ***
DESCINIT parameter number 6 had an illegal value
{ 1, 1}: On entry to
DESCINIT parameter number 6 had an illegal value
0 1 vals 0.10300 0.20300 0.50300 0.60300 0.10400 0.20400 0.50400 0.60400 0.10700 0.20700 0.50700 0.60700 0.10800 0.20800 0.50800 0.60800
{ -1, -1}: On entry to
PSGESV parameter number 602 had an illegal value
*** Error in `./test': free(): invalid next size (fast): 0x000000000195dae0 ***
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 13140 RUNNING AT pythagoras
= EXIT CODE: 6
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Aborted (signal 6)
Why? This is my first time running an example with ScaLAPACK and I do not know what is happening.
答案 0 :(得分:0)
这个答案是由英特尔的Ying提供的,所有的积分都归他所有!
C中的int应该是32位,你可以试试lp64模式。
mpicc -o test_lp64 ex1.c -I/opt/intel/mkl/include /opt/intel/mkl/lib/intel64/libmkl_scalapack_lp64.a -L/opt/intel/mkl/lib/intel64 -Wl,--start-group /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/mkl/lib/intel64/libmkl_core.a /opt/intel/mkl/lib/intel64/libmkl_sequential.a -Wl,--end-group /opt/intel/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a -lpthread -lm -ldl
[yhu5@prc-mic01 scalapack]$ mpirun -n 4 ./test_lp64 0 0 vals 1.00000 0.20100 0.50100 0.60100 0.10200 2.00000 0.50200 0.60200 0.10500 0.20500 5.00000 0.60500 0.10600 0.20600 0.50600 6.00000
1 0 vals 0.30100 0.40100 0.70100 0.80100 0.30200 0.40200 0.70200 0.80200 0.30500 0.40500 0.70500 0.80500 0.30600 0.40600 0.70600 0.80600
0 1 vals 0.10300 0.20300 0.50300 0.60300 0.10400 0.20400 0.50400 0.60400 0.10700 0.20700 0.50700 0.60700 0.10800 0.20800 0.50800 0.60800
1 1 vals 3.00000 0.40300 0.70300 0.80300 0.30400 4.00000 0.70400 0.80400 0.30700 0.40700 7.00000 0.80700 0.30800 0.40800 0.70800 8.00000
x=( 0 0) 0.9321 0.3773 0.0444 0.0074
x=( 1 0) 0.1924 0.0999 -0.0190 -0.0388