Timothy Hayes wrote:
I'm a regular OpenMPI user but I'm new to the strange
world of development and hence this mailing list. I'm currently working
on a project that involves OpenMPI and I was wondering if I might get
some guidance and pointers in the right direction.
I'm no expert. Indeed, I'm quite the opposite. I started looking at
OMPI a few months ago. As a newbie, I'd say:
The problem I'm having is jumping into the
OpenMPI code. I've read two papers I found on the homepage: "Open MPI:
Goals, Concept, and Design of a Next Generation MPI Implementation" and
"TEG: A High-Performance, Scalable, Multi-Network Point-to-Point
Communications Methodology" which gave me some insight about the MCA,
PML and PTL. However, I'm finding it quite difficult to get a foothold
into the codebase and I'm wondering if anyone might be able to point me
to a guide or some documentation that might help get me started.
I'm very eager to do this project well and
contribute to the OpenMPI community, and if anyone has some advice or
pointers I'd really appreciate it.
There seems to be no really great docs here for developers. You just
need to start reading source code, asking questions, stepping through
with a debugger, etc., and immerse yourself for a while ... a few
months? This is a little frustrating since one of the objectives of
OMPI is to provide a framework in which a researcher should be able to
modify only one component and do something interesting. Meanwhile,
there is no good description of what the interfaces are among the
various components nor what they all really do. And, you do kind of
need an understanding of what other pieces are doing and what your
component is supposed to do. So, instead of just reading up on one
component and writing it, you end up having to study a big body of
source code, reverse engineering a number of its parts, and then try
implementing the piece you're interested in playing with.
I do have a bunch of notes I've accumulated that could theoretically
help someone else who is trying to learn the same things I am. My
focus has been on the sm BTL, so might not be 100% of interest to you.
I've walked through and found the code paths of interest to me,
expanded data structures, done some analysis, etc. I guess I should
try to clean these notes up for other people and share them. There are
lots of pointers in there to source code so one can look at the notes
and click to see the relevant source code. These notes are invaluable
to me (and the product of 3 buckets full of blood, sweat, and tears),
but again reflect my own interests. The pointers to the source code
use OpenGrok -- http://opensolaris.org/os/project/opengrok/ -- but you
may have your own favorite tools.
Main answer: no great docs to look at. I think I've asked some OMPI
experts and that was basically the answer they gave me.