Hi George,

It turned out that memchecker break our usage of weak symbols. The problem is that the definition of the weak symbol should always appear before the first use of the function. There are two MPI functions that are used in the memchecker.h file: MPI_Type_get_contents and MPI_Type_get_envelope. The memchecker.h header get included before we get a chance to define the #pragma weak, and the symbols are incorrectly marked in the resulting object file.

Additionally, I remember that we decided not to use any MPI level functions inside the Open MPI library. I guess the correct way of doing this is to use directly the functions provided by the datatype engine ompi_ddt_get_args once with which set to zero (to retrieve the values i.e. similar to MPI_Type_get_envelope) and once with "which" set to one (to retrieve the content i.e. similar to MPI_Type_get_content).
Yes, you are correct. This has been fixed with r17469. Thanks a lot. :-)

Moreover, there is a better way to have the memchecker_call function implemented by taking advantage of the data-type engine. It will make memchecker really dependent of Open MPI ... but I guess not more than it is right now :) Ping me if you are interested in exploring this option.
That sounds nice, I'm very interested, could you explain a little bit more in detail?


Thanks,
Shiqing

--
--------------------------------------------------------------
Shiqing Fan http://www.hlrs.de/people/fan
High Performance Computing            Tel.: +49 711 685 87234
  Center Stuttgart (HLRS)            Fax.: +49 711 685 65832
POSTAL:Nobelstrasse 19 email: f...@hlrs.de
ACTUAL:Allmandring 30
70569 Stuttgart

Reply via email to