On Mon, 22 Oct 2007, Jeff Squyres wrote:
> On Oct 22, 2007, at 6:44 PM, Lourival Mendes wrote: > > > Hy everybody, I'm interested in use the MPI on the Pascal > > environment. I tryed the MPICH2 list but no success. On the Free > > Pascal Compiler list, Daniël invited me to subscribe this list and > > open a discussion on the interface of OpenMPI for Pascal. > > > > Probably as Daniël knows there is almost no reference on the MPI > > for Pascal interface, only some very few tryes, one of them in > > Russian. > > > > I would like to know if there is someone working on the interface > > of OpenMPI for Pascal? Yes, I am :) You can find a preliminary Pascal interface for OpenMPI here: http://www.freepascal.org/~daniel/mpi.pas ... and a small demo program: http://www.freepascal.org/~daniel/hello_mpi.pas > There was a mail or two about it a while ago; you might want to dig > through the OMPI list archives. The short version is that none of > the current Open MPI members have a desire to add Pascal bindings to > MPI. It also might be somewhat of an uphill battle to convince the > old-school MPI'ers to include a Pascal interface in Open MPI, even if > it was developed by a 3rd party and contributed to the project. Hmmm... I still would like to contribute by unit when it is done :) > However, that should not deter you from pursuing a Pascal interface > if you want one. Traditionally, extensions to MPI have been > implemented in an MPI-neutral fashion and released into the wild as > 3rd party libraries (such as the C++ bindings for MPI several years > ago). The Pascal bindings likely don't need to know anything about > the internals of an MPI implementation -- they can just call the C > bindings. So it's possible/likely that you would write up a Pascal > interface that would work with both Open MPI and MPICH (and any other > MPI's out there). Just like two different MPI implementations cannot share a mpi.h, they cannot share a Pascal interface unit. In C++ the compiler can simply parse the mpi.h, because C++ is a superset of C. You could perhaps use of a lot of $ifdef. Daniël