2016-04-23 9 views
0

Ich möchte MKL mit MPI in einem Programm, das ich schreibe, verwenden, also habe ich eine Bash-Datei mit mpiC++ als meinen Compiler erstellt. Aus diesem Grund kann ich Flags wie -mkl nicht verwenden, weil sie Fehler erzeugen. Wenn ich mich nicht die Fahnen verwenden bekomme Dutzende vonVerknüpfung von MKL mit MPI

undefined reference to 'PARDISO' 
undefined reference to 'MKL_Set_Num_Threads' 
undefined reference to 'cblas_dnrm2' 

und so weiter ... Was kann ich tun, dies zu lösen, da es einen Exit-Status erzeugt 1?

Ich habe Ubuntu 15.10 und wenn ich MKL in den optionalen Voraussetzungen installiert war

-- Intel(R) MPI Library, Development Kit 5.0 Update 1 for Linux* OS: Unsupported OS 

und wenn ich die Bibliotheken in

geprüft
/opt/intel 

gab es keine impi Bibliothek. Könnte das das Problem sein? (Es gab jedoch eine mpirt-Bibliothek).

+0

Was sind Ihre tatsächlichen Linkerlinien? Was ist die MPI-Implementierung, die Sie verwenden? Welche Versionen? Hast du [diese Frage] angeschaut (http://stackoverflow.com/q/14562506/620382)? – Zulan

Antwort

0

-mkl ist nur für Intel-Compiler. Es vereinfacht die Verbindungslinienoptionen, die Sie an den Compiler übergeben müssen. Wenn Sie andere Compiler verwenden, müssen Sie diese Optionen explizit angeben. Intel® Math Kernel Library Link Line Advisor ist das Tool, mit dem Sie die richtigen Optionen generieren können.