Different solution between two computer(OS) and MPI problem

Hi,

I have two problems using OpenMC.

  1. When I use window and linux on same problem, same cross sections, they show different solution. It was just test file with about 100pcm std, but it shows quite different k value, about 300 pcm difference.
    I used different machines. I thought about random number generator, but I think RNgenerator doesn’t depend on machine, from methodology.
    Is it normal?

  2. I’m using MPICH2 for MPI with 24 nodes, 244 core. The command for this is:

mpirun -launcher rsh -np 244 -machinefile ./fullhost openmc

At first, it looks working but the result doesn’t.
Through the process, it doesn’t spread work but calculate independently. It shows 244 exactly same result without send/receiving each other.
Is it command problem? or other?

Thank you.

Do I have to use mpif90 when I compile the source at first?

2013년 6월 29일 토요일 오후 2시 44분 56초 UTC+9, Kyungkwan Noh 님의 말:

For your 1st question (different answers on different machines/OS’), were the two machines both 64-bit, or was one 32-bit and the other 64?
On the second question (and your new post), yes you do have to compile using mpif90, i.e., use the command 'make MPI=yes '. MPI=yes will set the compiler to the mpi compiler located in MPI_DIR (in the Makefile). Also (although I expect you will receive errors during compilation if this is not done correctly), ensure that if your MPI_DIR points to an MPI wrapper which uses the intel compiler, that the COMPILER flag is set to intel. The converse is true if the MPI wrapper uses gfortran; that is, make sure COMPILER = gnu.

Thank you for your response.

On the second question I posted, I set correct path for MPI (opt/applic/mpi/$(COMPILER)-13.1/mpich2-1.4.1p1).
I also set MPI = yes in ‘MAKEFILE.’

I checked whether there is mpif90 in mpich2-1.4.1p1/bin and there is. What would be the problem?

2013년 7월 2일 화요일 오후 10시 25분 14초 UTC+9, nels…@umich.edu 님의 말:

Some things to consider:

  • Make sure you are using the mpirun/mpiexec command from the same bin/ directory you used mpif90 from (in your case /opt/applic/mpi/$(COMPILER)-13.1/mpich2-1.4.1p1/bin)

  • You might need to set your LD_LIBRARY_PATH environment variable to the lib/ subdirectory of your MPI installation. It’s possible that a shared library is getting linked to a different MPI distribution.

Thank you for your response.

Well, I finally used mpif90 compiler and set the right path in .bashrc. However, it still doesn’t work.

This is the command for MPI.

This is a capture of Makefile.

Thank you.

2013년 6월 29일 토요일 오후 2시 44분 56초 UTC+9, Kyungkwan Noh 님의 말:

I changed the OpenMPI PATH to version 1.2.9 and accepted mpirun command is shown below.

It still, however, runs like serial program which does 24 works independently. I set LD_Library, and all necessary path.

2013년 6월 29일 토요일 오후 2시 44분 56초 UTC+9, Kyungkwan Noh 님의 말:

You need to make sure that the COMPILER variable in the Makefile is set to gnu, intel, pgi, ibm, or cray (depending on what compiler was used to compile MPICH2. If the COMPILER variable is not correct, it will not run the pre-processor on the code and therefore any blocks of code that have #ifdef MPI around them won’t show up. It looks like your MPICH2 is built off the intel compiler, so I would set COMPILER=intel, MPI=yes, and then run ‘make distclean’, and then ‘make’.