Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

libmmd.dll

hui__helena
Beginner
7,589 Views

Does "libmmd.dll" mean "library make main directory. dynamic link library"? What is the difference between "libmmd.dll" and "libmmdd.dll"? 

0 Kudos
1 Solution
PrasanthD_intel
Moderator
7,325 Views

Hi Helena,


To see the implementation of methods inside a dll you have to use a decompiler program.

But the Intel MKL or other math libs, which are used as a backend are not opensource.

Meaning the DLL's are obfuscated and the methods cannot be seen using a decompiler program.

If your initial query is resolved please provide a confirmation.


Thanks

Prasanth



View solution in original post

0 Kudos
14 Replies
PrasanthD_intel
Moderator
7,581 Views

Hi Helena,


The libmmd.dll is a multi-threaded dynamic math library for windows provided by Intel. The extra d in libmmdd.dll stands for debug and its a debug version of libmmd.dll.

For more details regarding the libraries you can refer to below links:

https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/optimization-and-programming-guide/intel-math-library/overview-intel-math-library.html


https://software.intel.com/content/www/us/en/develop/articles/libraries-provided-by-intelr-c-compiler-for-windows-and-intel-parallel-composer.html


Regards

Prasanth


0 Kudos
hui__helena
Beginner
7,572 Views

Hi Prasanth,

    Thank you very much for your answer. When I tried to open "libmmd.dll", it gives a file (see the attachment).

 

 

    So I thought it was "making main directories". I checked the website before, thought it could be "library-math-multithreaded-dynamic". I really want to know the details about how the "multi-threaded" "math" library is realized:-)

   By the way, do we have a whole list of different libraries' full names for reference?

 

Regards,

Helena

 

0 Kudos
hui__helena
Beginner
7,499 Views

Hi Prasanth,

    I think that "math" means "numerating the properties of the compiler", "multi-threaded" means

"

<!-- Run multiple junit tasks in parallel, but don't track errors or generate a report afterIf a test fails the testfailed property will be set. All the tests are run using te testdelegatemacro that is specified as an attribute and they will be run concurrently in this ant process -->
 
-<scriptdef language="javascript" name="testparallelhelper">
<attribute name="testdelegate"/>
-<![CDATA[
        sep = project.getProperty("path.separator");
        all = project.getProperty("all-test-classes").split(sep);
        runners = project.getProperty("test.runners")
        cores = project.getProperty("cores.count")
        mem = project.getProperty("mem.size")
        numRunners = 1
        if (runners != null) // there's test.runners override
            numRunners = parseInt(runners) || 1;
        else if (cores != null && mem != null) // only if cores and memory size is set
            numRunners = Math.min(Math.floor(Math.sqrt(parseInt(cores) || 1)),
                                  Math.floor((parseInt(mem) || 1)/(4*1024*1024*1024)));
        if (numRunners < 1)
            numRunners = 1
        var echo = project.createTask("echo");
        echo.setMessage("Number of test runners: " + numRunners);
        echo.perform();
        var p = project.createTask('parallel');
        p.setThreadCount(numRunners);
        for (i = 0; i < all.length; i++) {
            if (all[i] == undefined) continue;
            task = project.createTask( attributes.get("testdelegate") );
            task.setDynamicAttribute( "test.file.list", "" + all[i]);
            task.setDynamicAttribute( "testlist.offset", "" + i );
            p.addTask(task);
        }
        p.perform();
    ]]>

"

"dynamic" means "the loader maps the library functions into the process at runtime".

 

    Do you know where we can find a whole list of different libraries' full names for reference?

 

Thank you very much,

         Helena

0 Kudos
PrasanthD_intel
Moderator
7,483 Views

Hi Helena,


From the second link that I have posted, you can observe that libmmd is placed in row named math library(Row1) and a column named Multi-threaded dynamic library(Column 4).


That's how I realized the naming schema of libmmd.


Also from the build.xml, you have provided we have observed that the libmmd.dll you have is not Intel Provided. For intel math library please download and install the Intel C++ compiler.


The math library contains highly optimized and very accurate mathematical functions. These functions are commonly used in scientific or graphic applications, as well as other programs that rely heavily on floating-point computations.


Multi threaded means the library supports multithreaded executions of the math functions.


And dynamic implies linking happens during runtime.


Currently, there is no such document that lists the full names of libraries explicitly, but you can get the list of libraries from this link(https://software.intel.com/content/www/us/en/develop/articles/libraries-provided-by-intelr-c-compiler-for-windows-and-intel-parallel-composer.html), for a complete list of all libraries please refer to the developer reference(https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top.html).


Regards

Prasanth



0 Kudos
hui__helena
Beginner
7,454 Views

Hi Prasanth,

 

    Thank you very much for your reply.

    There is one point I felt a little bit strange: when I opened "libmmd.dll", why the "build.xml" showed up?

 

Regards,

Helena

0 Kudos
PrasanthD_intel
Moderator
7,443 Views

Hi Helena,


DLL files(Dynamic Link Libraries) are not human-readable by the general user.

DLL files are opened by the program(s) that needs them when they need them.

There are several ways to open a .dll file. You can open it with Visual studio if you have it installed.

How were you trying to open the file? so we can answer why is it generating an XML?


Regards

Prasanth



0 Kudos
hui__helena
Beginner
7,430 Views

Hi Prasanth,

   In .dll files is machine code.

   There are several ways to open it, and I use Microsoft Windows and Visual Studio.            https://openfileextension.com/open-dll-file/  How do you open .dll files?

    For the .xml file, I open libmmd.dll with Internet Explorer.

 

Regards,

Helena

0 Kudos
Viet_H_Intel
Moderator
7,423 Views

You can use dumpbin to examine .dll file. 


0 Kudos
hui__helena
Beginner
7,405 Views

Thank you very much. Would you like to give more details, please?

0 Kudos
PrasanthD_intel
Moderator
7,388 Views

Hi Helena,


Dumpbin can be started only from the Visual Studio command prompt.

To open VS prompt go to start and search for Developer command prompt for VS and open the command prompt.

The dumpbin command-line options are available at 

https://docs.microsoft.com/en-us/cpp/build/reference/dumpbin-options?view=vs-2019


You can use /DISASM to print disassembly of code sections in the DUMPBIN output.

>dumpbin /DISASM libmmd.dll


Else you can use /ALL to print all available information except code disassembly.

>dumpbin /ALL libmmd.dll


To answer your previous question why an XML file is opened?

==>The XML files are added to dll files because these files can provide a description of the classes, methods, etc created as XML comments in the assembly.



Regards

Prasanth



0 Kudos
hui__helena
Beginner
7,384 Views

Hi Prasanth,

    Thank you for your information. I also find some videos just for convenience:

    https://www.youtube.com/watch?v=-1OOnP6UDwM 

    https://www.youtube.com/watch?v=Lp5B5b6raYI 

    https://www.youtube.com/watch?v=xfI1p1egqHM 

 

    Could we further open those methods in dll files, please?

 

Regards,

Helena

 

0 Kudos
PrasanthD_intel
Moderator
7,326 Views

Hi Helena,


To see the implementation of methods inside a dll you have to use a decompiler program.

But the Intel MKL or other math libs, which are used as a backend are not opensource.

Meaning the DLL's are obfuscated and the methods cannot be seen using a decompiler program.

If your initial query is resolved please provide a confirmation.


Thanks

Prasanth



0 Kudos
PrasanthD_intel
Moderator
7,280 Views

Hi Helena,


Thanks for Marking the solution.

This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.


Regards

Prasanth


0 Kudos
hui__helena
Beginner
7,267 Views
0 Kudos
Reply