Re: [OMPI users] Performance: MPICH2 vs OpenMPI

2008-10-15 Thread Sangamesh B
On Fri, Oct 10, 2008 at 10:40 PM, Brian Dobbins  wrote:

>
> Hi guys,
>
> On Fri, Oct 10, 2008 at 12:57 PM, Brock Palen  wrote:
>
>> Actually I had a much differnt results,
>>
>> gromacs-3.3.1  one node dual core dual socket opt2218  openmpi-1.2.7
>>  pgi/7.2
>> mpich2 gcc
>>
>
>For some reason, the difference in minutes didn't come through, it
> seems, but I would guess that if it's a medium-large difference, then it has
> its roots in PGI7.2 vs. GCC rather than MPICH2 vs. OpenMPI.  Though, to be
> fair, I find GCC vs. PGI (for C code) is often a toss-up - one may beat the
> other handily on one code, and then lose just as badly on another.
>
> I think my install of mpich2 may be bad, I have never installed it before,
>>  only mpich1, OpenMPI and LAM. So take my mpich2 numbers with salt, Lots of
>> salt.
>
>
>   I think the biggest difference in performance with various MPICH2 install
> comes from differences in the 'channel' used..  I tend to make sure that I
> use the 'nemesis' channel, which may or may not be the default these days.
> If not, though, most people would probably want it.  I think it has issues
> with threading (or did ages ago?), but I seem to recall it being
> considerably faster than even the 'ssm' channel.
>
>   Sangamesh:  My advice to you would be to recompile Gromacs and specify,
> in the *Gromacs* compile / configure, to use the same CFLAGS you used with
> MPICH2.  Eg, "-O2 -m64", whatever.  If you do that, I bet the times between
> MPICH2 and OpenMPI will be pretty comparable for your benchmark case -
> especially when run on a single processor.
>

I reinstalled all softwares with -O3 optimization. Following are the
performance numbers for a 4 process job on a single node:

MPICH2: 26 m 54 s
OpenMPI:   24 m 39 s

More details:

$ /home/san/PERF_TEST/mpich2/bin/mpich2version
MPICH2 Version: 1.0.7
MPICH2 Release date:Unknown, built on Mon Oct 13 18:02:13 IST 2008
MPICH2 Device:  ch3:sock
MPICH2 configure:   --prefix=/home/san/PERF_TEST/mpich2
MPICH2 CC:  /usr/bin/gcc -O3 -O2
MPICH2 CXX: /usr/bin/g++  -O2
MPICH2 F77: /usr/bin/gfortran -O3 -O2
MPICH2 F90: /usr/bin/gfortran  -O2


$ /home/san/PERF_TEST/openmpi/bin/ompi_info
Open MPI: 1.2.7
   Open MPI SVN revision: r19401
Open RTE: 1.2.7
   Open RTE SVN revision: r19401
OPAL: 1.2.7
   OPAL SVN revision: r19401
  Prefix: /home/san/PERF_TEST/openmpi
 Configured architecture: x86_64-unknown-linux-gnu
   Configured by: san
   Configured on: Mon Oct 13 19:10:13 IST 2008
  Configure host: locuzcluster.org
Built by: san
Built on: Mon Oct 13 19:18:25 IST 2008
  Built host: locuzcluster.org
  C bindings: yes
C++ bindings: yes
  Fortran77 bindings: yes (all)
  Fortran90 bindings: yes
 Fortran90 bindings size: small
  C compiler: /usr/bin/gcc
 C compiler absolute: /usr/bin/gcc
C++ compiler: /usr/bin/g++
   C++ compiler absolute: /usr/bin/g++
  Fortran77 compiler: /usr/bin/gfortran
  Fortran77 compiler abs: /usr/bin/gfortran
  Fortran90 compiler: /usr/bin/gfortran
  Fortran90 compiler abs: /usr/bin/gfortran
 C profiling: yes
   C++ profiling: yes
 Fortran77 profiling: yes
 Fortran90 profiling: yes
  C++ exceptions: no
  Thread support: posix (mpi: no, progress: no)
  Internal debug support: no
 MPI parameter check: runtime
Memory profiling support: no
Memory debugging support: no
 libltdl support: yes
   Heterogeneous support: yes
 mpirun default --prefix: no

Thanks,
Sangamesh

>
>   Cheers,
>   - Brian
>
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
MPICH2

[san@locuzcluster mpich2-1.0.7]$ ./configure --help

[san@locuzcluster mpich2-1.0.7]$ export CC=`which gcc`

[san@locuzcluster mpich2-1.0.7]$ export CXX=`which g++`

[san@locuzcluster mpich2-1.0.7]$ export F77=`which gfortarn`

[san@locuzcluster mpich2-1.0.7]$ export F90=`which gfortran`

[san@locuzcluster mpich2-1.0.7]$ export CFLAGS=-O3 

[san@locuzcluster mpich2-1.0.7]$ export FFLAGS=-O3  

[san@locuzcluster mpich2-1.0.7]$ ./configure 
--prefix=/home/san/PERF_TEST/mpich2 | tee config_out

[san@locuzcluster mpich2-1.0.7]$ make | tee make_out


OPENMPI

[san@locuzcluster openmpi-1.2.7]$ export FC=`which gfortran`

[san@locuzcluster openmpi-1.2.7]$ ./configure 
--prefix=/home/san/PERF_TEST/openmpi | tee config_out

[san@locuzcluster openmpi-1.2.7]$ make | tee make_out

[san@locuzcluster openmpi-1.2.7]$ make install | tee install_out




FFTW

$ export CC=`which gcc`

$ export CXX=`which g++`

$ export F77=`which gfortran`

$ export CFLAGS=-O3

$ export FFLAGS=-O3



GROMACS

With MPICH2

$ export CC=`which gcc`

$ export CXX=`which g++`

$ export F77=`which gfortran`

$ export CFLAGS=

Re: [OMPI users] OPENMPI 1.2.7 & PGI compilers: configure option --disable-ptmalloc2-opt-sbrk

2008-10-15 Thread Francesco Iannone
Hello Jeff

First of all About your replay:
³ I'm surprised that we have not yet put this info in our FAQ -- I'll
make a note to do so... ³

I sent support at Mailing list on date: 2008-08-21 12:43:40

Subject: [OMPI users] Memory allocation with PGI compiler

About ptmalloc:

I have a cluster of 16 nodes DualCPU DualCore AMD  RAM 16 GB with InfiniBand
CISCO HCA and switch InfiniBand.
It uses Linux RH Enterprise 4  64 bit , OpenMPI 1.2.7, PGI 7.1-4 and
openib-1.2-7.

Hence it means that the option ‹disable-ptmalloc2 is catastrophic in the
above configuration.

Can you help me about this issue in memory allocation in Openmpi 1.2.7 and
PGI. I tested also with PGI 7.2 with same effects.


Thans in advance 



On 11/10/08 14:03, "Jeff Squyres"  wrote:

> I'm surprised that we have not yet put this info in our FAQ -- I'll
> make a note to do so...
> 
> ptmalloc2 is a memory allocator that is only relevant for OpenFabrics
> networks.  If you're not using OpenFabrics, then you don't need it,
> and you can safely disable ptmalloc2.  FWIW, we have changed the
> default behavior in the upcoming Open MPI v1.3 to include include
> ptmalloc2 by default.
> 
> 
> 
> On Oct 10, 2008, at 11:18 AM, Francesco Iannone wrote:
> 
>> Dear openmpi users
>> 
>> I have compiled oenmpi.1.2.7 with PGI 7.1-4 compilers with configure
>> option ³--disable-ptmalloc2-opt-sbrk² , to fix a segmentation fault
>> in sysMALLOC function of ³opal/mca/memory/ptmalloc2/malloc.c².
>> 
>> Anybody knows what it means to compile with this option ?
>> 
>> thanks
>> 
>> 
>> Dr. Francesco Iannone
>> Associazione EURATOM-ENEA sulla Fusione
>> C.R. ENEA Frascati
>> Via E. Fermi 45
>> 00044 Frascati (Roma) Italy
>> phone 00-39-06-9400-5124
>> fax 00-39-06-9400-5524
>> mailto:francesco.iann...@frascati.enea.it
>> http://www.afs.enea.it/iannone
>> ___
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 

Dr. Francesco Iannone
Associazione EURATOM-ENEA sulla Fusione
C.R. ENEA Frascati
Via E. Fermi 45
00044 Frascati (Roma) Italy
phone 00-39-06-9400-5124
fax 00-39-06-9400-5524
mailto:francesco.iann...@frascati.enea.it
http://www.afs.enea.it/iannone





Re: [OMPI users] Performance: MPICH2 vs OpenMPI

2008-10-15 Thread Rajeev Thakur
For MPICH2 1.0.7, configure with --with-device=ch3:nemesis. That will use
shared memory within a node unlike ch3:sock which uses TCP. Nemesis is the
default in 1.1a1.

Rajeev


> Date: Wed, 15 Oct 2008 18:21:17 +0530
> From: "Sangamesh B" 
> Subject: Re: [OMPI users] Performance: MPICH2 vs OpenMPI
> To: "Open MPI Users" 
> Message-ID:
>   
> Content-Type: text/plain; charset="iso-8859-1"
> 
> On Fri, Oct 10, 2008 at 10:40 PM, Brian Dobbins 
>  wrote:
> 
> >
> > Hi guys,
> >
> > On Fri, Oct 10, 2008 at 12:57 PM, Brock Palen 
>  wrote:
> >
> >> Actually I had a much differnt results,
> >>
> >> gromacs-3.3.1  one node dual core dual socket opt2218  
> openmpi-1.2.7
> >>  pgi/7.2
> >> mpich2 gcc
> >>
> >
> >For some reason, the difference in minutes didn't come 
> through, it
> > seems, but I would guess that if it's a medium-large 
> difference, then it has
> > its roots in PGI7.2 vs. GCC rather than MPICH2 vs. OpenMPI. 
>  Though, to be
> > fair, I find GCC vs. PGI (for C code) is often a toss-up - 
> one may beat the
> > other handily on one code, and then lose just as badly on another.
> >
> > I think my install of mpich2 may be bad, I have never 
> installed it before,
> >>  only mpich1, OpenMPI and LAM. So take my mpich2 numbers 
> with salt, Lots of
> >> salt.
> >
> >
> >   I think the biggest difference in performance with 
> various MPICH2 install
> > comes from differences in the 'channel' used..  I tend to 
> make sure that I
> > use the 'nemesis' channel, which may or may not be the 
> default these days.
> > If not, though, most people would probably want it.  I 
> think it has issues
> > with threading (or did ages ago?), but I seem to recall it being
> > considerably faster than even the 'ssm' channel.
> >
> >   Sangamesh:  My advice to you would be to recompile 
> Gromacs and specify,
> > in the *Gromacs* compile / configure, to use the same 
> CFLAGS you used with
> > MPICH2.  Eg, "-O2 -m64", whatever.  If you do that, I bet 
> the times between
> > MPICH2 and OpenMPI will be pretty comparable for your 
> benchmark case -
> > especially when run on a single processor.
> >
> 
> I reinstalled all softwares with -O3 optimization. Following are the
> performance numbers for a 4 process job on a single node:
> 
> MPICH2: 26 m 54 s
> OpenMPI:   24 m 39 s
> 
> More details:
> 
> $ /home/san/PERF_TEST/mpich2/bin/mpich2version
> MPICH2 Version: 1.0.7
> MPICH2 Release date:Unknown, built on Mon Oct 13 18:02:13 IST 2008
> MPICH2 Device:  ch3:sock
> MPICH2 configure:   --prefix=/home/san/PERF_TEST/mpich2
> MPICH2 CC:  /usr/bin/gcc -O3 -O2
> MPICH2 CXX: /usr/bin/g++  -O2
> MPICH2 F77: /usr/bin/gfortran -O3 -O2
> MPICH2 F90: /usr/bin/gfortran  -O2
> 
> 
> $ /home/san/PERF_TEST/openmpi/bin/ompi_info
> Open MPI: 1.2.7
>Open MPI SVN revision: r19401
> Open RTE: 1.2.7
>Open RTE SVN revision: r19401
> OPAL: 1.2.7
>OPAL SVN revision: r19401
>   Prefix: /home/san/PERF_TEST/openmpi
>  Configured architecture: x86_64-unknown-linux-gnu
>Configured by: san
>Configured on: Mon Oct 13 19:10:13 IST 2008
>   Configure host: locuzcluster.org
> Built by: san
> Built on: Mon Oct 13 19:18:25 IST 2008
>   Built host: locuzcluster.org
>   C bindings: yes
> C++ bindings: yes
>   Fortran77 bindings: yes (all)
>   Fortran90 bindings: yes
>  Fortran90 bindings size: small
>   C compiler: /usr/bin/gcc
>  C compiler absolute: /usr/bin/gcc
> C++ compiler: /usr/bin/g++
>C++ compiler absolute: /usr/bin/g++
>   Fortran77 compiler: /usr/bin/gfortran
>   Fortran77 compiler abs: /usr/bin/gfortran
>   Fortran90 compiler: /usr/bin/gfortran
>   Fortran90 compiler abs: /usr/bin/gfortran
>  C profiling: yes
>C++ profiling: yes
>  Fortran77 profiling: yes
>  Fortran90 profiling: yes
>   C++ exceptions: no
>   Thread support: posix (mpi: no, progress: no)
>   Internal debug support: no
>  MPI parameter check: runtime
> Memory profiling support: no
> Memory debugging support: no
>  libltdl support: yes
>Heterogeneous support: yes
>  mpirun default --prefix: no
> 
> Thanks,
> Sangamesh



Re: [OMPI users] OPENMPI 1.2.7 & PGI compilers: configure option --disable-ptmalloc2-opt-sbrk

2008-10-15 Thread Jeff Squyres

On Oct 15, 2008, at 9:35 AM, Francesco Iannone wrote:

I have a cluster of 16 nodes DualCPU DualCore AMD  RAM 16 GB with  
InfiniBand

CISCO HCA and switch InfiniBand.
It uses Linux RH Enterprise 4  64 bit , OpenMPI 1.2.7, PGI 7.1-4 and
openib-1.2-7.

Hence it means that the option —disable-ptmalloc2 is catastrophic in  
the

above configuration.


Actually, I notice that in your original message, you said "--disable- 
ptmalloc2-opt-sbrk", but here you said "--disable-ptmalloc2".  The  
former is:


  Only trigger callbacks when sbrk is used  
for small
  allocations, rather than every call to  
malloc/free.

  (default: enabled)

So it should be fine to disable; it shouldn't affect overall MPI  
performance too much.


The latter disables ptmalloc2 entirely (and you'll likely get lower  
benchmark bandwidth for large messages).


I'm unaware of either of these options leading to problems with the  
PGI compiler suite; I have tested OMPI v1.2.x with several versions of  
the PGI compiler without problem (although my latest version is PGI  
7.1-4).


--
Jeff Squyres
Cisco Systems