OMPI started binding by default during the 1.7 series. You should add the 
following to your cmd line:

--map-by :pe=$OMP_NUM_THREADS

This will give you a dedicated core for each thread. Alternatively, you could 
instead add

--bind-to socket

OMPI 1.5.5 doesn't bind at all unless directed to do so, which is why you are 
getting the difference in behavior.


On Jul 2, 2014, at 12:33 AM, Timur Ismagilov <tismagi...@mail.ru> wrote:

> Hello!
> 
> I have open mpi 1.9a1r32104 and open mpi 1.5.5.
> I have much better perfomance in open mpi 1.5.5 with openMP on 8 cores
> in  the program:
> 
> ....
> 
> #define N 10000000
> 
> 
> int main(int argc, char *argv[]) {
> ...............
> MPI_Init(&argc, &argv);
> ...............
> for (i = 0; i < N; i++) {
> a[i] = i * 1.0;
> b[i] = i * 2.0;
> }
> 
> #pragma omp parallel for shared(a, b, c) private(i)
> for (i = 0; i < N; i++) {
> c[i] = a[i] + b[i];
> }
> .............
> MPI_Finalize();
> }
> 
> I got on 1 node 
> (for i in 1 2 4 8 ; do export OMP_NUM_THREADS=$i; sbatch -p test -t 5 
> --exclusive -N 1 -o hybrid-hello_omp$i.out -e hybrid-hello_omp$i.err 
> ompi_mxm3.0 ./hybrid-hello; done)
> 
> 
> open mpi 1.5.5 (Data for node: node1-128-17 Num slots: 8 Max slots: 0): 
> 8 threads 0.014527 sec
> 4 threads 0.016138 sec
> 2 threads 0.018764 sec
> 1 thread   0.029963 sec
> openmpi 1.9a1r32104 (node1-128-29: slots=8 max_slots=0 slots_inuse=0 
> state=UP):
> 8 threads 0.035055 sec
> 4 threads 0.029859 sec 
> 2 threads 0.019564 sec (same as open mpi 1.5.5)
> 1 thread   0.028394 sec (same as open mpi 1.5.5)
> So, it looks like, that open mpi 1.9 use only 2 cores from 8.
> 
> What can i do with this?
> 
> $cat ompi_mxm3.0
> 
> #!/bin/sh
> 
> [ x"$TMPDIR" == x"" ] && TMPDIR=/tmp
> 
> HOSTFILE=${TMPDIR}/hostfile.${SLURM_JOB_ID}
> srun hostname -s|sort|uniq -c|awk '{print $2" slots="$1}' > $HOSTFILE || { rm 
> -f $HOSTFILE; exit 255; }
> LD_PRELOAD=/mnt/data/users/dm2/vol3/semenov/_scratch/mxm/mxm-3.0/lib/libmxm.so
>  mpirun -x LD_PRELOAD -x MXM_SHM_KCOPY_MODE=off --display-allocation 
> --hostfile $HOSTFILE "$@"
> rc=$?
> rm -f $HOSTFILE
> 
> exit $rc
> 
> For open mpi 1.5.5 i remove LD_PRELOAD from run script.
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2014/07/24738.php

Reply via email to