After some further thought, I do believe that I was too quick to say that MPI is not a good fit for the embedded / RT space.
Yes, MPI is “large” (hundreds of functions with lots of bells and whistles). Yes, mainstream MPI is not primarily targeted towards RT environments.
But this does not mean that there have not been successful forays of MPI into this space. Two obvious ones jump to mind:
- Mercury has a product derived from Open MPI that uses RapidIO and OFED for communications. Read their white paper (on the linked site); it seems to be an interesting blend of macro and micro.
- Several years ago, some members of the MPI Forum spent a lot of effort to define MPI/RT (real-time MPI). I don’t think that this project ever caught on in a big way, but I have a dim recollection that they did churn out a specification document and at least a commercial product out of it for a while…?
Of course, it’s easy for me to say “MPI is the solution!” since that’s my obvious bias.
It would be interesting to see a well-balanced, objective compare/contrast of technologies like MPI, MCAPI, and other embedded communication APIs that can bridge traditional “macro” processors (Intel, AMD, etc.) with embedded processors.