I am testing the one-sided message passing (mpi_put, mpi_get) that is now supported in the 1.1 release. It seems to work OK for some simple test codes, but when I run my big application, it fails. This application is a large weather model that runs operationally on the SGI Origin 3000, using the native one-sided message passing that has been supported on that system for many years. At least on that architecture, the code always runs correctly for processor numbers up to 480. On the O3K a requirement for the one-sided communication to work correctly is to use 'mpi_win_create' to define the RMA 'windows' in symmetric locations on all processors, i.e. the same 'place' in memory on each processor. This can be done with static memory, i.e. , in common; or on the 'symmetric heap', which is defined via environment variables. In my application the latter method is used. I define several of these 'windows' on the symmetric heap, each with a unique handle.

Before I spend my time trying to diagnose this problem further, I need as much information about the OpenMPI one-sided implementation as available. Do you have a similar requirement or criteria for symmetric memory for the RMA windows? Are there runtime parameters that I should be using that are unique to one-sided message passing with OpenMPI? Any other information will certainly be appreciated.

I have attached the logfiles and ompi output for my installation. I am running with Fedora 4 linux on a 2-processor (each dual-core) Opteron system, using the Intel 9.1.033 F90 compiler.

Tom R.

Attachment: ompi-output.tar.gz
Description: GNU Zip compressed data

Reply via email to