install problem on imtaphy

Asked by Roy

Hello , I met some problems on the installation of imtaphy.
I have set the MKL environment variables in .bashrc like this:

"/opt/intel/mkl/bin/mklvars.sh intel64"

And I modified the /openwns-sdk/modules/phy/imtaphy/SConscript as follows:

mklroot= "/opt/intel/composer_xe_2015.3.187/mkl/"
includepath="/opt/intel/composer_xe_2015.3.187/mkl/include"
librarypath="/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64;/opt/intel/composer_xe_2015.3.187/mkl/lib/intel64"

after I have done this, in the terminal, if I input "openwns-sdk$ echo $INCLUDE" , the terminal can't give a path about INCLUDE like this-------"/opt/intel/composer_xe_2015.3.187/mkl/include"

but other commands (echo $LIBRARY_PATH echo $MKLROOT) can give a right return as I write before.
I'm very puzzled about this.
When I tried to compile openwns-sdk using "./playground.py install && ./playground.py install --flavour=opt" , I got these mistakes:(these are part of them)

.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
In file included from .include/IMTAPHY/lsParams/LSCorrelation.hpp:36:0,
                 from .include/IMTAPHY/Channel.hpp:49,
                 from modules/phy/imtaphy/src/pathloss/SingleSlope.cpp:32:
.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
In file included from .include/IMTAPHY/lsParams/LSCorrelation.hpp:36:0,
                 from .include/IMTAPHY/Channel.hpp:49,
                 from modules/phy/imtaphy/src/pathloss/M2135Pathloss.cpp:66:
.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
In file included from .include/IMTAPHY/lsParams/LSCorrelation.hpp:36:0,
                 from .include/IMTAPHY/Channel.hpp:49,
                 from modules/phy/imtaphy/src/Channel.cpp:30:
.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
scons: *** [.build/dbg/imtaphy/src/StationPhy.os] Error 1
scons: *** [.build/dbg/imtaphy/src/pathloss/SingleSlope.os] Error 1
scons: *** [.build/dbg/imtaphy/src/pathloss/M2135Pathloss.os] Error 1
scons: *** [.build/dbg/imtaphy/src/Channel.os] Error 1
scons: building terminated because of errors.

I extremely want to solve the problem , because it knocked me very long time.
thank you!

Question information

Language:
English Edit question
Status:
Answered
For:
IMTAphy Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Maciej Muehleisen (mue-comnets) said :
#1

Please redo all changes and put the following line in .bashrc:

"source /opt/intel/mkl/bin/mklvars.sh intel64"

It is important to have the word "source" in there. Please open a new console to be sure the fresh .bashrc is used.

Revision history for this message
Roy (605990153-f) said :
#2

I have already put "source /opt/intel/mkl/bin/mklvars.sh intel64" into my .bashrc , but it seems that the problem can't be solved.

In file included from .include/IMTAPHY/lsParams/LSCorrelation.hpp:36:0,
                 from .include/IMTAPHY/Channel.hpp:49,
                 from modules/phy/imtaphy/src/pathloss/M2135Pathloss.cpp:66:
.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
In file included from .include/IMTAPHY/lsParams/LSCorrelation.hpp:36:0,
                 from .include/IMTAPHY/Channel.hpp:49,
                 from modules/phy/imtaphy/src/Channel.cpp:30:
.include/IMTAPHY/lsParams/RngMock.hpp: In member function 'virtual void imtaphy::lsparams::RandomMatrix::fillNormalDistributionWithMKL(float*, int, int)':
.include/IMTAPHY/lsParams/RngMock.hpp:78:39: error: 'VSL_METHOD_SGAUSSIAN_ICDF' was not declared in this scope
scons: *** [.build/dbg/imtaphy/src/StationPhy.os] Error 1
scons: *** [.build/dbg/imtaphy/src/pathloss/SingleSlope.os] Error 1
scons: *** [.build/dbg/imtaphy/src/pathloss/M2135Pathloss.os] Error 1
scons: *** [.build/dbg/imtaphy/src/Channel.os] Error 1
scons: building terminated because of errors.

I check the RngMock.hpp and I found that the "VSL_METHOD_SGAUSSIAN_ICDF" is really not defined in this file, so what can I do ?

Revision history for this message
Maciej Muehleisen (mue-comnets) said :
#3

Thank you for the precise error description. Obviously there were changes in Intel MKL. You could either install an older version or do the following search and replace in modules/phy/imtaphy/src (include all subdirs):

VSL_METHOD_SGAUSSIAN_ICDF => VSL_METHOD_GAUSSIAN_ICDF

See
https://software.intel.com/en-us/node/470648

Unfortunately I have no write permissions on the branch, so I currently cannot apply a patch.

Revision history for this message
Aman Jassal (aman-jassal) said :
#4

If I may make a suggestion: for random number generation, you could also your own custom functions based on SMFT or dSFMT. I added a simple random engine class on top of the original Mersenne Twister engines with functions to generate random numbers as I found it to be more convenient and at least I know for that part I don't need to depend on Intel's libraries.

(This was a completely personal design choice that I made for my work, just saying that it's one option out of a million others).

Can you help with this problem?

Provide an answer of your own, or ask Roy for more information if necessary.

To post a message you must log in.