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

Reply via email to