On Oct 31, 2008, at 3:07 PM, Rajesh Ramaya wrote:
Thank you very much for the immediate reply. I am able to
successfully
access the data from the common block but the values are zero. In my
algorithm I even update a common block but the update made by the
shared
library is not taken in to account by the executable.
Can you reduce this to a small example that you can share, perchance?
It might be worth stepping through one of your MPI processes with a
debugger and see what the run-time-resolved addresses for your common
block are, as viewed from each of the different entities in your
application (to see if the linker is somehow mismatching them...
that's a pretty wild guess, though).
Can you please be very
specific how to make the parallel algorithm aware of the data?
All I was trying to [poorly] say is that based on whatever parallel
algorithm is being used, all the data may now not be available in all
MPI processes -- it may only be partially available in each MPI
process. So it may not be that the entire common block is empty, but
perhaps only part of it (because this MPI process is not responsible
for that part of the data). This is entirely problem/application-
specific, of course, and may or may not apply to your situation.
Actually I am
not writing any MPI code inside? It's the executable (third party
software)
who does that part. All that I am doing is to compile my code with
MPI c
compiler and add it in the LD_LIBIRARY_PATH.
In fact I did a simple test by creating a shared library using a
FORTRAN
code and the update made to the common block is taken in to account
by the
executable. Is there any flag or pragma that need to be activated
for mixed
language MPI?
No, there shouldn't be.
--
Jeff Squyres
Cisco Systems