Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
further cleanup in imported NAS
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 12 Feb 2016 19:56:38 +0000 (20:56 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 12 Feb 2016 19:56:38 +0000 (20:56 +0100)
examples/smpi/NAS/Makefile
examples/smpi/NAS/README
examples/smpi/NAS/README.install
examples/smpi/NAS/config/suite.def.template [deleted file]
examples/smpi/NAS/sys/suite.awk [deleted file]

index ae04d5e..8e52972 100644 (file)
@@ -3,7 +3,6 @@ CLASS=S
 NPROCS=1
 SUBTYPE=
 VERSION=
-SFILE=config/suite.def
 
 default: header
        @ sys/print_instructions
@@ -21,22 +20,16 @@ DT: dt
 dt: header
        cd DT; $(MAKE) CLASS=$(CLASS)
 
-# Awk script courtesy cmg@cray.com, modified by Haoqiang Jin
-suite:
-       @ awk -f sys/suite.awk SMAKE=$(MAKE) $(SFILE) | $(SHELL)
-
-
 # It would be nice to make clean in each subdirectory (the targets
 # are defined) but on a really clean system this will won't work
 # because those makefiles need config/make.def
 clean:
        - rm -f *~  */*~ */*.o */npbparams.h 
-       - rm -f sys/setparams sys/makesuite sys/setparams.h
+       - rm -f sys/setparams sys/setparams.h
 
 veryclean: clean
-       - rm -f config/make.def config/suite.def 
+       - rm -f config/make.def  
        - rm -f bin/is.* bin/ep.* bin/dt.*
 
 header:
        @ sys/print_header
-
index a80f5d6..dcaf02d 100644 (file)
@@ -1,13 +1,7 @@
 *** Warning ***
-
 This version of benchmarks IS, DT and EP contain special
 tweaks to work with SMPI.
 
-
-
-The MPI implementation of NPB 3.3 (NPB3.3-MPI)
---------------------------------------------------
-
 For problem reports and suggestions on the implementation, 
 please contact:
 
@@ -17,36 +11,3 @@ please contact:
    http://www.nas.nasa.gov/Software/NPB
 
 
-This directory contains the MPI implementation of the NAS
-Parallel Benchmarks, Version 3.3 (NPB3.3-MPI).  A brief
-summary of the new features introduced in this version is
-given below.
-
-For changes from different versions, see the Changes.log file
-included in the upper directory of this distribution.
-
-For explanation of compilation and running of the benchmarks,
-please refer to README.install.  For a special note on DT, please
-see the README file in the DT subdirectory.
-
-
-New features in NPB3.3-MPI:
-  * NPB3.3-MPI introduces a new problem size (class E) to seven of  
-    the benchmarks (BT, SP, LU, CG, MG, FT, and EP).  The version 
-    also includes a new problem size (class D) for the IS benchmark, 
-    which was not present in the previous releases.
-
-  * The release is merged with the vector codes for the BT and LU
-    benchmarks, which can be selected with the VERSION=VEC option
-    during compilation.  However, it should be noted that successful
-    vectorization highly depends on the compiler used.  Some changes
-    to compiler directives for vectorization in the current codes
-    (see *_vec.f files) may be required.
-
-  * New improvements to BTIO (BT with IO subtypes):
-    - added I/O stats (I/O timing, data size written, I/O data rate)
-    - added an option for interleaving reads between writes through
-      the inputbt.data file.  Although the data file size would be
-      smaller as a result, the total amount of data written is still
-      the same.
-
index 47a3139..c38b765 100644 (file)
@@ -1,35 +1,13 @@
-Some explanations on the MPI implementation of NPB 3.3 (NPB3.3-MPI)
+Some explanations on the MPI implementation of a subset of NPB 3.3 (NPB3.3-MPI)
 ----------------------------------------------------------------------
 
 NPB-MPI is a sample MPI implementation based on NPB2.4 and NPB3.0-SER.
-This implementation contains all eight original benchmarks:
-Seven in Fortran: BT, SP, LU, FT, CG, MG, and EP; one in C: IS,
-as well as the DT benchmark, written in C, introduced in NPB3.2-MPI.
-
-For changes from different versions, see the Changes.log file
-included in the upper directory of this distribution.
-
-This version has been tested, among others, on an SGI Origin3000 and
-an SGI Altix.  For problem reports and suggestions on the implementation, 
-please contact
-
-   NAS Parallel Benchmark Team
-   npb@nas.nasa.gov
-
-
-CAUTION *********************************
-When running the I/O benchmark, one or more data files will be written
-in the directory from which the executable is invoked. They are not
-deleted at the end of the program. A new run will overwrite the old
-file(s). If not enough space is available in the user partition, the
-program will fail. For classes C and D the disk space required is
-3 GB and 135 GB, respectively.
-*****************************************
+This subset contains three of the original benchmarks: one in Fortran: EP; 
+one in C: IS, as well as the DT benchmark, written in C, introduced in NPB3.2-MPI.
 
 
 1. Compilation
 
-   NPB3-MPI uses the same directory tree as NPB3-SER (and NPB2.x) does.
    Before compilation, one needs to check the configuration file
    'make.def' in the config directory and modify the file if necessary.  
    If it does not (yet) exist, copy 'make.def.template' or one of the
@@ -39,118 +17,20 @@ program will fail. For classes C and D the disk space required is
        make <benchmark-name> NPROCS=<number> CLASS=<class> \
          [SUBTYPE=<type>] [VERSION=VEC]
 
-   where <benchmark-name>  is "bt", "cg", "dt", "ep", "ft", "is", 
-                              "lu", "mg", or "sp"
+   where <benchmark-name>  is  "dt", "ep", or "is",
          <number>          is the number of processes
          <class>           is "S", "W", "A", "B", "C", "D", or "E"
 
    Classes C, D and E are not available for DT.
    Class E is not available for IS.
 
-   The "VERSION=VEC" option is used for selecting the vectorized 
-   versions of BT and LU.
-
-   Only when making the I/O benchmark:
-         <benchmark-name>  is "bt"
-         <number>, <class> as above
-         <type>            is "full", "simple", "fortran", or "epio"
-
-   Three parameters not used in the original BT benchmark are present in
-   the I/O benchmark. Two are set by default in the file BT/bt.f. 
-   Changing them is optional.
-   One is set in make.def. It must be specified.
-
-   bt.f: collbuf_nodes: number of processes used to buffer data before
-                        writing to file in the collective buffering mode
-                        (<type> is "full").
-         collbuf_size:  size of buffer (in bytes) per process used in
-                        collective buffering
-
-   make.def: -DFORTRAN_REC_SIZE: Fortran I/O record length in bytes. This
-                        is a system-specific value. It is part of the
-                        definition string of variable CONVERTFLAG. Syntax:
-                        "CONVERTFLAG = -DFORTRAN_REC_SIZE=n", where n is
-                        the record length.
-
-   When <type> is "full" or "simple", the code must be linked with an
-   MPI library that contains the subset of IO routines defined in MPI 2.
-
-
    Class D for IS (Integer Sort) requires a compiler/system that 
-   supports the "long" type in C to be 64-bit.  As examples, the SGI 
-   MIPS compiler for the SGI Origin using the "-64" compilation flag and
-   the Intel compiler for IA64 are known to work.
-
-
-   The above procedure allows you to build one benchmark
-   at a time. To build a whole suite, you can type "make suite"
-   Make will look in file "config/suite.def" for a list of 
-   executables to build. The file contains one line per specification, 
-   with comments preceded by "#". Each line contains the name
-   of a benchmark, the class, and the number of processors, separated
-   by spaces or tabs. config/suite.def.template contains an example
-   of such a file.
-
-
-   The benchmarks have been designed so that they can be run
-   on a single processor without an MPI library. A few "dummy" 
-   MPI routines are still required for linking. For convenience
-   such a library is supplied in the "MPI_dummy" subdirectory of
-   the distribution. It contains an mpif.h and mpi.f include files
-   which must be used as well. The dummy library is built and
-   linked automatically and paths to the include files are defined
-   by inserting the line "include ../config/make.dummy" into the
-   make.def file (see example in make.def.template). Make sure to 
-   read the warnings in the README file in "MPI_dummy".The use of
-   the library is fragile and can produce unexpected errors.
-
-
-   ================================
-   
-   The "RAND" variable in make.def
-   --------------------------------
-   
-   Most of the NPBs use a random number generator. In two of the NPBs (FT
-   and EP) the computation of random numbers is included in the timed
-   part of the calculation, and it is important that the random number
-   generator be efficient.  The default random number generator package
-   provided is called "randi8" and should be used where possible. It has 
-   the following requirements:
-   
-   randi8:
-     1. Uses integer*8 arithmetic. Compiler must support integer*8
-     2. Uses the Fortran 90 IAND intrinsic. Compiler must support IAND.
-     3. Assumes overflow bits are discarded by the hardware. In particular, 
-        that the lowest 46 bits of a*b are always correct, even if the 
-        result a*b is larger than 2^64. 
-   
-   Since randi8 may not work on all machines, we supply the following
-   alternatives:
-   
-   randi8_safe
-     1. Uses integer*8 arithmetic
-     2. Uses the Fortran 90 IBITS intrinsic. 
-     3. Does not make any assumptions about overflow. Should always
-        work correctly if compiler supports integer*8 and IBITS. 
-   
-   randdp
-     1. Uses double precision arithmetic (to simulate integer*8 operations). 
-        Should work with any system with support for 64-bit floating
-        point arithmetic.      
-   
-   randdpvec
-     1. Similar to randdp but written to be easier to vectorize. 
+   supports the "long" type in C to be 64-bit.  
    
    
 2. Execution
 
-   The executable is named <benchmark-name>.<class>.<nprocs>[.<suffix>],
-   where <suffix> is "fortran_io", "mpi_io_simple",  "ep_io", or 
-                     "mpi_io_full"
+   The executable is named <benchmark-name>.<class>.<nprocs>
    The executable is placed in the bin subdirectory (or in the directory 
    BINDIR specified in make.def, if you've defined it). The method for 
    running the MPI program depends on your local system.
-   When any of the I/O benchmarks is run (non-empty subtype), one or 
-   more output files are created, and placed in the directory from which
-   the program was started. These are not removed automatically, and 
-   will be overwritten the next time an IO benchmark is run.
diff --git a/examples/smpi/NAS/config/suite.def.template b/examples/smpi/NAS/config/suite.def.template
deleted file mode 100644 (file)
index 5e02f30..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# config/suite.def
-# This file is used to build several benchmarks with a single command. 
-# Typing "make suite" in the main directory will build all the benchmarks
-# specified in this file. 
-# Each line of this file contains a benchmark name, class, and number
-# of nodes. The name is one of "is", "ep", and "dt"
-# The class is one of "S", "W", "A", "B", "C", "D", and "E"
-# (except that no classes C, D and E for DT, and no class E for IS).
-# The number of nodes must be a legal number for a particular
-# benchmark. The utility which parses this file is primitive, so
-# formatting is inflexible. Separate name/class/number by tabs. 
-# Comments start with "#" as the first character on a line. 
-# No blank lines. 
-# The following example builds 1 processor sample sizes of all benchmarks. 
-is     S       1
-ep     S       1
-dt     S       1
diff --git a/examples/smpi/NAS/sys/suite.awk b/examples/smpi/NAS/sys/suite.awk
deleted file mode 100644 (file)
index 2e5fc31..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-BEGIN { SMAKE = "make" } {
-  if ($1 !~ /^#/ &&  NF > 2) {
-    printf "cd `echo %s|tr '[a-z]' '[A-Z]'`; %s clean;", $1, SMAKE;
-    printf "%s CLASS=%s NPROCS=%s", SMAKE, $2, $3;
-    if ( NF > 3 ) {
-      if ( $4 ~ /^vec/ ||  $4 ~ /^VEC/ ) {
-        printf " VERSION=%s", $4;
-        if ( NF > 4 ) {
-          printf " SUBTYPE=%s", $5;
-        }
-      } else {
-        printf " SUBTYPE=%s", $4;
-        if ( NF > 4 ) {
-          printf " VERSION=%s", $5;
-        }
-      }
-    }
-    printf "; cd ..\n";
-  }
-}