[MITgcm-support] MITgcm on Sun Fire cluster
William Aiken
William.Aiken at Sun.COM
Tue Jun 3 10:46:56 EDT 2008
Abbas,
The Sun Studio 10 Fortran Programming Guide is at:
http://docs.sun.com/app/docs/doc/819-0491
The Studio 11 equivalent is at:
http://docs.sun.com/app/docs/doc/819-3685-10
Chapter 9 in each docs explains the compiler options.
The optfile below indicates either high (O4) or minimal (O0)
optimization depending on whether IEEE-754 compatibility is specified.
Choosing O4 optimization will make a huge difference in the run time
performance.
stackvar tells the compiler to assign local variable space from the stack.
dalign forces real*8 variables to be aligned on 8byte boundaries.
xarch=native tells the compiler to optimize the code for the system you
are compiling on, since you will run the app on the same system that you
compiled on.
fsimple=2 allows the compiler to rearrange the sequence of floating
point computations within a statement for optimum performance.
Regards,
Bill
Abbas Dorostkar wrote:
> Hi Bill and Martin,
>
> I am using Sun HPC ClusterTools 6 software which supports SPARC and x64
> systems, Solaris 10, Sun Studio 10,11, Shared memory and TCP
> communication and the full MPI-2 specification. The GNU tools are also
> available. Which one is better to use?
> I am thinking Martin may be right about the domain size. I am making the
> domain size very big to see the result.
> By the way, I am not sure about the flags in optimization section of the
> optfile. Could anyone explain the flags to me or advise me where I can
> get some information. Here is the optimization part:
>
> # optimization
> NOOPTFLAGS='-dalign -O2 -xarch=native'
> NOOPTFILES='solve_for_pressure.F'
> #NOOPTFILES='solve_for_pressure.F barrier.F different_multiple.F
> external_fields_load.F ini_vertic
> if test "x$IEEE" = x ; then
> # No need for IEEE-754
> FFLAGS='-stackvar -e -u -xtypemap=real:64,double:64,integer:32'
> FOPTIM='-dalign -O4 -xarch=native -fsimple=2'
> CFLAGS='-dalign -xO4 -xarch=native'
> else
> # Try to follow IEEE-754
> FFLAGS='-e -u -xtypemap=real:64,double:64,integer:32 -fsimple=0'
> FOPTIM='-O0'
> CFLAGS='-xO0'
> fi
>
>
> I have also attached the full optfile:
>
>
> #!/bin/bash
> #
> # $Header:
> /u/gcmpack/MITgcm/tools/build_options/sunos_sun4u_mpf77+mpi_sunfire,v
> 1.4 2007/02/18 19:19:42 mlosch Exp $
> #
> # developed and tested on
> # SunOS model 5.9 Generic_112233-11 sun4u sparc SUNW,Sun-Fire-15000
> # (hostname: model.awi-bremerhaven.de)
> #
> FC_NAMEMANGLE="#define FC_NAMEMANGLE(X) X ## _"
> S64='$(TOOLSDIR)/set64bitConst.sh'
> DEFINES='-DWORDLENGTH=4'
>
> MPI='true'
> AWK='gawk'
> # if regular make does not work try gmake
> #MAKE='gmake'
> MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'
> #MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
> # compiler
> FC='mpf77'
> LINK='mpf77'
> CPP='/usr/ccs/lib/cpp -P'
> # paths
> INCLUDES='-I/opt/SUNWhpc/include -I/usr/local/include'
> LIBS='-L/opt/SUNWhpc/lib -lmpi -lthread -lsocket -lnsl -L/usr/local/lib'
> # optimization
> NOOPTFLAGS='-dalign -O2 -xarch=native'
> NOOPTFILES='solve_for_pressure.F'
> #NOOPTFILES='solve_for_pressure.F barrier.F different_multiple.F
> external_fields_load.F ini_vertic
> if test "x$IEEE" = x ; then
> # No need for IEEE-754
> FFLAGS='-stackvar -e -u -xtypemap=real:64,double:64,integer:32'
> FOPTIM='-dalign -O4 -xarch=native -fsimple=2'
> CFLAGS='-dalign -xO4 -xarch=native'
> else
> # Try to follow IEEE-754
> FFLAGS='-e -u -xtypemap=real:64,double:64,integer:32 -fsimple=0'
> FOPTIM='-O0'
> CFLAGS='-xO0'
> fi
>
>
> Thanks so much
> Abbas
>
>
>
>
>
> -----Original Message-----
> From: William.Aiken at sun.com [mailto:William.Aiken at sun.com]
> Sent: June 2, 2008 12:17 PM
> To: Abbas Dorostkar
> Cc: mitgcm-support at mitgcm.org; William Aiken
> Subject: Re: [MITgcm-support] MITgcm on Sun Fire cluster
>
> Abbas,
>
> Have you run other codes on both systems, or just MIT-gcm? Certain
> codes scale better than others. Your results indicate scaling up to 4
> CPU's, then the overhead of MPI makes the performance worse. Another
> factor may be NUMA on the UltraSPARC-IV system.
>
> Your relative clock speed (2.5 GHz vs 1.5 GHz) would result in 1.6
> speedup on the Intel system if other factors do not contribute.
>
> Another factor is the compiler optimization used on each system.
>
> Please check the optfile and see what the -O parameter is. You should
> have -O4 or -O5 set to get the best optimization. What version of Sun
> Studio are you using (or are you using gnu tools)?
>
> Regards,
>
> Bill
>
>
> Abbas Dorostkar wrote:
>> Hi all,
>>
>>
>>
>> I have been running a test case -internal wave test case in
>> nonhydrostatic mode- with MPI on a SunFire cluster. Unfortunately, the
>
>> performance of the model on the cluster is terrible in comparison with
>
>> the same run on my desktop computer.
>>
>> Here, I mentioned the wall clock times for both systems:
>>
>> On the cluster , Sun Fire 2500 server with 72 (2 MB on-chip L2 cache
> and
>> 32 MB L3 cache) dual-core UltraSPARC-IV+ 1.5 GHZ processors with 676
> GB
>> of RAM:
>>
>> serial-- > 457 s
>>
>> np=2 -- > 353 s
>>
>> np=4 -- > 275 s
>>
>> np=6 -- > 315 s
>>
>>
>>
>> On my Desktop (Intel core 2 Due - 2.4 GHZ - 4 MB cache - 1066 MHZ FSB
> ):
>> serial -- > 171 s
>>
>> np=2 ---> 162 s
>>
>>
>>
>> I use the sunos_sun4u_mpf77+mpi_sunfire optfile shipped with the
> MITgcm
>> model (v 1.4 2007/02/18). I have to mention that I get following
>> warnings while I compile the model on the cluster:
>>
>> make: Warning: Too many rules defined for target PACKAGES_CONFIG.h
>> make: Warning: Too many rules defined for target AD_CONFIG.h
>> make: Warning: Too many rules defined for target FC_NAMEMANGLE.h
>> make: Warning: Too many rules defined for target BUILD_INFO.h
>>
>>
>>
>> Does anyone know what is going wrong? Should I change something in
> the
>> optfile (e.g adding some optimization flags)?
>>
>>
>>
>> Your help is much appreciated!
>>
>>
>>
>> Abbas
>>
>
> ------------------------------------------------------------------------
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
>
--
William Aiken Sun Microsystems, Inc.
Phone: 781.442.3312 ISV Engineering
FAX: 781.442.1520 45 Network Drive UBUR01-204
Burlington, Massachusetts 01803
More information about the MITgcm-support
mailing list