I am new in this Community and I have same problems with the Math Kernel Library.

I hat loaded all libs and header Files from the Composer XE from Intel. The most Functions work but the Problem is the Functions “NUMROC” and “DESCINIT” find the Compiler not. And in no header file “.h” give as a link to this function.  

Can something me tell in which header file I found this function?


My problem two is I need a Function they are divide Matrixes, only the Elements divination by the same Element of Matrix two. (c[x,y]= a[x,y]/ b[x,y])

Give it a function in the Math Kernel Library them to this?

I can program this self but then is this not optimized.    



To the last give as in this Forum a search to find analogous problems.

Sorry I speak a bat English. I hope something can help my.

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hello Robert,

Please have a look at some of the PBLAS examples. For a typical installation, you can find them at:

  • Linux: /opt/intel/composer_xe_2013.2.146/mkl/examples/pblasc
  • Windows: C:\Program Files (x86)\Intel\Composer XE 2013\mkl\examples\pblasc\source

(In general the examples are located at $MKLROOT/examples/pblasc.)

There you can see, that for example "pblas3_d_example.c" just calls a function "numroc_". Since the source code file is named ".c", the compiler translates the source in C-mode (as usual). As you know, the C language does not require to declare a function prototype. The trailing underscore at the function name is the way how the FORTRAN compiler mangles routine names. Although most FORTRAN compilers can be adjusted to avoid trailing underscores ("routine_"), it is the way most compilers expect the NETLIB symbols to be available. Intel MKL usually includes multiple versions of symbols to make it easier when Intel MKL is used with various compilers.

If you have further problems, let me know.
(Feel free to write in German ;-)


Danke an Hans Pabst.

Ok danne schreibe ich lieber in Deutsch :).

Mein Problem hat sich leider noch nicht gelöst. 

Hierfür habe ich ein Visual Studio 2010 c++ Projekt eröffnet.

Und alle Librarys aus dem Ordner "Composer XE 2013\compiler\lib\intel64" und "Composer XE 2013\mkl\lib\intel64" dazu gelinkt.

Alle Header Datein aus dem Ordner "Composer XE 2013\mkl\include" stelle ich dem Projekt zur Verfügung.

Die bei gelegten DLL Dateien aus dem Ordner "Composer XE 2013\redist\intel64\mkl" und "Composer XE 2013\redist\intel64\compiler" liegen dem Projekt ebenfals bei. Das Beispiel "dgemm_example.c" konnte erfolgreich umgesetzt werden.

Nun wurde ebenfalls dem Projekt das Beispiel  "pblas1_d_example.c" hinzugefügt. Hierbei kommt es aber zu dem Problem das folgende Funktionen dem Compiler nicht bekannt sind “NUMROC” and “DESCINIT”.  

Fehlercode: error C3861: "NUMROC" Bezeichner wurde nicht gefunden. 

                   error C3861: "DESCINIT" Bezeichner wurde nicht gefunden.

Ich habe mit der Windows 7 Suche die Headerdateien bereits durchsucht und keine der beiden Funktionen sind zu finden. Auch eine Suche in dem Ordner  "Composer XE 2013" blieb erfolglos da alle gefunden Datein die die Funktionen enthalten nur die Beispiele oder Html Datein waren.

Bitte geben sie mir eine Anweißung wo diese Funktionen zu finden sind. Und wie ich diese in mein Visual Studio Projekt einfüge.

Ich benötige diese Funktionen dazu 2 Matrixen zu addieren und dies möglichst schnell. Ich klaube dass dies mit der Funktion "pdgeadd" möglich ist. Desweiteren Suche ich eine Funktion zum Teilen von Matrix Elementen  (c[x,y]= a[x,y]/ b[x,y]) würden sie mir falls es eine solche Funktion in der Math Intel Kernel Library gibt den Namen dieser Funktion mitteilen.

Ich danke für die schnelle und hilfreiche Unterstützung. Und Hoffe das ich mein Problem übersichtlich erklärt habe.

And now I try at of English.

I cannot solve my problem. My Project work in Visual Studio 2010, it is a “c++” project.

I link all Libraries from the Folder „Composer XE 2013\compiler\lib\intel64" and "Composer XE 2013\mkl\lib\intel64" to my project. All Header Files from the Folder “Composer XE 2013\mkl\include" are in the project. All DLL Files from the folder „Composer XE 2013\redist\intel64\mkl" and "Composer XE 2013\redist\intel64\compiler" are in the Project. The sample "dgemm_example.c" works in this Project normally. Now I try to include the sample "pblas1_d_example.c"in this project.

But the compiler found not the functions “NUMROC” and “DESCINIT”.


This are the Error codes from Visual Studio:

error C3861: "NUMROC" Function not founded

error C3861: "DESCINIT" Function not founded


To solve the problem I used the Windows 7 search in all header files and found not the functions. A search in the complete Folder "Composer XE 2013“was not successful, all files they are founded was Files they used the Functions or HTML Data Files.

Please tell me in witch Header File is found the functions “NUMROC” and “DESCINIT”.


I used functions to add two Matrixes. I think the function "pdgeadd" do this? Is this right?

For my project I used to a function to divide two Matrixes of the way:

Element divide by element of the same Position(x,y)


  (c[x,y]= a[x,y]/ b[x,y]) give as a function of this art?


I thank you for help, and hope I hat good show was is my Problem.


one reason could be that the preprocessor symbol _WIN_ is not defined by the VS project. It handles a switch in the example header pblas_examples.h which in turn handles the name of the function symbols (trailing underscore, etc.).

Leave a Comment

Please sign in to add a comment. Not a member? Join today