[FLASH-USERS] Sedov scaling test
Anthony Chan
chan at mcs.anl.gov
Mon Feb 11 14:33:42 EST 2008
On Mon, 11 Feb 2008, mateuszr at umich.edu wrote:
>
> Hi all,
>
> I am testing a very small Dell cluster (8 cpus total). The machine is a dual
> quad core Xeon with 2 GB per core. The OS is Rocks 4.3, and the compilers
> used is the stock gcc 3.4.6 with mpich 1.2.7, mpif90 (Makefile.h enclosed
> below). FLASH version is 2.5 and I am using a Sedov test setup.
>
> The setup does not seem to scale with the number of processors at all.
> If anything, the execution time increases very slightly as I double the
> number of processors. I also noticed that all timesteps are printed out to
> the screen n times, where n is the number of processors. It seems to me that
> for some reason, the code just runs the same calculation n times instead of
> distributing the load
> evenly among all processors.
It is posssible that you have n MPI_COMM_WORLD where each has only 1
process (instead of 1 MPI_COMM_WORLD with n processes). You should
use MPICH2 which is more robust than MPICH1 especially in process
management.
A.Chan
>
> It seems to me that this problem has nothing to do with the processor
> communication and, quite likely, is (embarrasingly?) trivial to solve.
>
> Has anybody seen this behavior before ?
>
> thanks,
> Mateusz
>
>
> P.S. I am enclosing Makefile.h below:
>
> # FLASH makefile definitions for ix86 Linux (Portland Group compiler)
>
> # note, in order to get pgprof to work properly, it was necessary to #
> download a new
> version from ftp://ftp.pgroup.com/ that plays nicely
> # with GNOME.
>
> #----------------------------------------------------------------------------
> # Set the HDF/HDF5 library paths -- these need to be updated for your system
> #----------------------------------------------------------------------------
> #HDF4_PATH = /usr/local/hdf4
> #HDF5_PATH = /opt/HDF5-1.4.2-patch1-serial/
> HDF5_PATH = /opt/packages/hdf5-1.6.6/
>
> ZLIB_PATH =
>
> PAPI_PATH =
> PAPI_FLAGS =
>
> NCMPI_PATH =
> MPE_PATH =
>
> #----------------------------------------------------------------------------
> # Compiler and linker commands
> #
> # Use the MPICH wrappers around the compilers -- these will automatically
> # load the proper libraries and include files. Version of MPICH prior
> # to 1.2.2 (?) do not recognize .F90 as a valid Fortran file extension.
> # You need to edit mpif90 and add .F90 to the test of filename extensions,
> # or upgrade your MPICH.
> #----------------------------------------------------------------------------
> FCOMP = /opt/mpich/intel/bin/mpif90
> CCOMP = /opt/mpich/intel/bin/mpicc
> CPPCOMP = /opt/mpich/intel/bin/mpicc
> LINK = /opt/mpich/intel/bin/mpif90
>
> # pre-processor flag
> PP = -D
>
> #----------------------------------------------------------------------------
> # Compilation flags
> #
> # Three sets of compilation/linking flags are defined: one for optimized
> # code, one for testing, and one for debugging. The default is to use the #
> _OPT
> version. Specifying -debug to setup will pick the _DEBUG version,
> # these should enable bounds checking. Specifying _TEST is used for #
> flash_test, and
> is set for quick code generation, and (sometimes) # profiling. The Makefile
> generated
> by setup will assign the generic token # (ex. FFLAGS) to the proper set of
> flags (ex.
> FFLAGS_OPT).
> #----------------------------------------------------------------------------
> #FFLAGS_OPT = -c -r8 -i4 -CB -traceback -I/opt/packages/hdf5-1.6.6/include
> -I/opt/mpich/intel/include/ -L/opt/mpich/intel/lib
> -L/opt/packages/hdf5-1.6.6/lib
> -I/opt/packages/fftw-2.1.5/include -L/opt/packages/fftw-2.1.5/lib -lhdf5
> -lrfftw_mpi
> -lfftw_mpi -lrfftw
> FFLAGS_OPT = -c -r8 -i4 -CB -traceback -I/opt/packages/hdf5-1.6.6/include
> -I/opt/mpich/intel/include/ -L/opt/mpich/intel/lib
> -L/opt/packages/hdf5-1.6.6/lib
> -I/opt/packages/fftw-2.1.5/include -L/opt/packages/fftw-2.1.5/lib
> -ldrfftw_mpi
> -ldfftw_mpi -ldrfftw -ldfftw
> # FFLAGS_OPT = -c -r8 -i4 -CB -traceback -I/usr/include/openmpi
> -I/usr/include/openmpi/64/ -L/usr/lib/openmpi
> #FFLAGS_OPT = -c -r8 -i4 -CB -traceback -I/opt/mpich/gnu/include
> -L/opt/mpich/gnu/lib
> FFLAGS_DEBUG = -g -c -Mbounds -r8 -i4 FFLAGS_TEST = -c -r8 -i4 -Mprof=lines
>
> F90FLAGS =
>
> #CFLAGS_OPT = -O2 -c -I/opt/packages/hdf5-1.6.6/include
> -I/usr/include/openmpi
> -I/usr/include/openmpi/64/ -L/usr/lib/openmpi
> #CFLAGS_OPT = -O2 -c -I/opt/packages/hdf5-1.6.6/include
> -I/opt/mpich/gnu/include
> -L/opt/mpich/gnu/lib
> #CFLAGS_OPT = -O2 -c -I/opt/packages/hdf5-1.6.6/include
> -I/opt/intel/impi/3.1/include64/
> -L/opt/intel/impi/3.1/lib64/ -L/opt/packages/hdf5-1.6.6/lib
> -I/opt/packages/fftw-2.1.5/include -L/opt/packages/fftw-2.1.5/lib -lhdf5
> -lrfftw_mpi
> -lfftw_mpi -lrttfw
> CFLAGS_OPT = -O2 -c -I/opt/packages/hdf5-1.6.6/include
> -I/opt/intel/impi/3.1/include64/
> -L/opt/intel/impi/3.1/lib64/ -L/opt/packages/hdf5-1.6.6/lib
> -I/opt/packages/fftw-2.1.5/include -L/opt/packages/fftw-2.1.5/lib -lhdf5
> -ldrfftw_mpi
> -ldfftw_mpi -ldrfftw -ldfftw
>
> CFLAGS_DEBUG = -g -c
> CFLAGS_TEST = -c
>
> # if we are using HDF5, we need to specify the path to the include files
> CFLAGS_HDF5 = -I $(HDF5_PATH)/include
>
> CFLAGS_NCMPI =
>
> #----------------------------------------------------------------------------
> # Linker flags
> #
> # There is a seperate version of the linker flags for each of the _OPT, #
> _DEBUG, and
> _TEST cases.
> #----------------------------------------------------------------------------
>
> LFLAGS_OPT = -o
> LFLAGS_DEBUG = -g -o
> LFLAGS_TEST = -Mprof=lines -o
>
>
> #----------------------------------------------------------------------------
> # Library specific linking
> #
> # If a FLASH module has a 'LIBRARY xxx' line in its Config file, we need to
> # create a macro in this Makefile.h for LIB_xxx, which will be added to the
> # link line when FLASH is built. This allows us to switch between different
> # (incompatible) libraries. We also create a _OPT, _DEBUG, and _TEST
> # library macro to add any performance-minded libraries (like fast math),
> # depending on how FLASH was setup.
> #----------------------------------------------------------------------------
>
> LIB_OPT = LIB_DEBUG =
> LIB_TEST =
>
>
> #LIB_MATH = -L/u/mateusz/fftw-2.1.5/lib -ldrfftw_mpi -ldfftw_mpi -ldrfftw
> -ldfftw
> #LIB_MATH = -L/opt/packages/fftw-2.1.5/lib -ldrfftw_mpi -ldfftw_mpi -ldrfftw
> -ldfftw
> LIB_MATH = -L/opt/packages/fftw-2.1.5/lib -L/opt/packages/hdf5-1.6.6/lib
> -lrfftw_mpi
> -lfftw_mpi -lrfftw -lfftw -lhdf5 #LIB_HDF4 = -L $(HDF4_PATH)/lib -lmfhdf
> -ldf -ljpeg -lz
> LIB_HDF5 = -L $(HDF5_PATH)/lib $(LIB_MATH) -lmpi -lz -lsz
> #LIB_HDF5 = -lhdf5 $(LIB_MATH) -lmpi
>
> LIB_PAPI =
>
> LIB_NCMPI =
> LIB_MPE =
>
> #----------------------------------------------------------------------------
> # Additional machine-dependent object files
> #
> # Add any machine specific files here -- they will be compiled and linked
> # when FLASH is built.
> #----------------------------------------------------------------------------
>
> MACHOBJ =
>
>
> #----------------------------------------------------------------------------
> # Additional commands
> #----------------------------------------------------------------------------
>
> MV = mv -f
> AR = ar -r
> RM = rm -f
> CD = cd
> RL = ranlib
> ECHO = echo
>
>
>
More information about the flash-users
mailing list