Answer: 2. Short answer: in older versions of Open MPI, maybe.
Add "LDFLAGS=-Wl,-brtl" to your configure command line:
shell$ ./configure LDFLAGS=-Wl,-brtl ...
This enables "runtimelinking", which will make GNU Libtool name the libraries properly (i.e., *.so). More importantly, runtimelinking will cause the runtime linker to behave more or less like an ELF linker would (with respect to symbol resolution).
Future versions of OMPI may not require this flag (and "runtimelinking" on AIX).
NOTE: As of OMPI v1.2, AIX is no longer supported.
Answer: 3. There are two main categories of tools that can aid in parallel debugging:
* Debuggers: Both serial and parallel debuggers are useful. Serial debuggers are what most programmers are used to (e.g., gdb), while parallel debuggers can attach to all the individual processes in an MPI job simultaneously, treating the MPI application as a single entity. This can be an extremely powerful abstraction, allowing the user to control every aspect of the MPI job, manually replicate race conditions, etc.
* Profilers: Tools that analyze your usage of MPI and display statistcs and meta information about your application's run. Some tools present the information "live" (as it occurs), while others collect the information and display it in a post mortem analysis.
Both freeware and commercial solutions are available for each kind of tool.