Re: MPICH-GM in kernel space?

Ashish Bijlani <[email protected]> Thu, 23 Jun 2005 12:55:01 +0530
Newsgroups gmane.network.myrinet.general
Message-ID <[email protected]>
On 6/21/05, Loic Prylli <[email protected]> wrote:
> Ashish Bijlani wrote:
> > Hi People,
> >
> > Does MPICH-GM implementation exist as a kernel module?
>
> No. Out of curiosity could you detail for what purposes you would need su=
ch a
> kernel module.
Sure. I have an user space simulation needing a high speed distributed
compute engine. Its just a toy simulation that uses MPI and I was
wondering what sort of performance bottlenecks exist in MPICH-GM (if
any) since I've been told that it "bypasses" the kernel.

My viewpoint was that the kernel is the dude in charge and the only
way an user space application could "bypass" the kernel to access a
device (closest analogy I could draw to an user space app using the
myricom card) would be mmap'ing the device's registers into its memory
and proceeding this way.

Am I correct in assuming that there is in fact an mmap of the myricom
device's register set and the MPICH MPI implementation you speak of is
an user space library using these registers ?

> > If no, then is
> > it a good idea to implement it?
>
> Probably not. There would be major problems with such a port, including t=
he
> fact MPICH-GM does not provide the ability to report all kind of errors t=
o the
> MPI user (and aborting in the kernel is not a good idea), the configurati=
on of
> MPI_COMM_WORLD might not easy to adapt to kernel use.
>
> Moreoever if you want to use the MPI API in the kernel, I would suggest y=
ou
> base your work on MX rather than GM (see the announcement on the
> www.myri.com). It would probably be easier to implement minimal MPI=20
> wrappers around the MX API to provide the MPI subset you need rather than=
=20
> trying to port MPICH-MX. The basic MX communications primitives are very=
=20
> close the MPI ones. Probably the best solution would be to directly use t=
he=20
> MX API.

That sounds good, although I will need more information. What do folks
needing MPI on top of myricom cards use currrently ? Also, I read about
MX stuff on Myricom's homepage. It seems to be doing exactly what I=20
want. It has API in kernel space, true? How does application at top of
MX Kernel-API access/call the required MX API function? If this
happens through system calls, then doesn't this design hit
performance?

-Ashish