Hello dear all,
We would like to integrate the changes on the memchecker-branch to trunk, as
planned in the
The checking offers memory checking for certain User and OMPI-internal errors,
like buffer overruns, size mismatches, checks for wrong send/receive buffers.
WHERE: OMPI trunk and v1.3 phase3
Integration into Trunk of memchecker branch: 25.1. (although off-by-default,
this leaves enough time before Feature Freeze on 8.2.)
The memchecker branch contains checks for memory buffer faults either in the
User-Code or in ompi-code itself.
It uses the valgrind-API to set/reset buffer validity of the user buffers
passed to the MPI-layer. Additionally ompi-internal datatypes are checked
Both are configurable using the flags:
--with-valgrind=DIR (if needed)
A decent/recent valgrind is needed (for getting and setting VBITS/using the
newer macros). The valgrind-version is being checked for, at least version
3.2.0 is required.
The actual checking is done in the MPI-layer, in order not to trap any
(correct) access in the BTL, the user buffer is reset to accessible in the
PML-layer (currently OB1 -- others won't make much sense?).
The default behaviour is to *NOT* enable memchecker.
If it is enabled, but not valgrind is being run, the costs for the buffer
checks are minimal, the costs for each ompi-datastructure (like datatype, or
communicator passed) is not.
Further information regarding penalties and performance may be found in:
Comments from the Paris meeting have been integrated.
Are there any objections or hints?
With best regards,
Shiqing and Rainer
PS: If --enable-memchecker is on, --enable-debug should be on as well to make
Dipl.-Inf. Rainer Keller http://www.hlrs.de/people/keller
HLRS Tel: ++49 (0)711-685 6 5858
Nobelstrasse 19 Fax: ++49 (0)711-685 6 5832
70550 Stuttgart email: keller_at_[hidden]
"Emails save time, not printing them saves trees!"