rminnichNPB250a54c16 years agoHistory
293 lines · 10.4 KB · Text
RawDownload
############################################ Modification History of NPB3.x          ## ------------------------------          ##   NPB development team                  ##   NASA Ames Research Center             ##   npb@nas.nasa.gov                      ##   http://www.nas.nasa.gov/Software/NPB/ ############################################ ------------------------------------------------------Changes in NPB3.2.1      (NPB3.2-SER, NPB3.2-OMP, NPB3.2-MPI )------------------------------------------------------[27-Jul-05] This is a bug fixing release of NPB3.2. 1. MPI version  - sys/setparams.c: removed a duplicated statement for writing      FT parameters and made invalid SUBTYPE as an error condition.      The 'duplicated statement' problem was fixed in NPB3.2 (See       the note below).  However, during the final updating process,       the fix was left out, even though the log file was updated.   - BT: included SUBTYPE=EPIO in the I/O verification.   - LU: bcast_inputs.f: fixed wrong data type (dp_type) used for       communicating integers (nx0,ny0,nz0) with the correct type       MPI_INTEGER.   - MG: fixed a mis-calculation of parameter "nr" in globals.h       that caused run-time failure for NPROCS >= 512       (reported by Donald Ferry of Cray).  Expanded to limit to       131072 processes and added an error checking code.       The use of MPI_ANY_SOURCE for MPI_Irecv inside subroutine      ready() could cause MPI_Wait return a message meant for      the wrong k.  The problem is fixed with nbr(axis,-dir,k)      in place of MPI_ANY_SOURCE in the call to MPI_Irecv      (reported and suggested by Hideo Saito). 2. OpenMP version  - EP: use THREADPRIVATE for working array storage. It should not      change performance but made some compiler happier.   - LU: add variable "v" to FLUSH to ensure solution data properly       flushed for pipeline.  This change is needed according to      the OpenMP 2.5 standard.   - IS: reorganized working buffers so that the count for key       population could be more naturally performed.  This version      uses much less stack space.   - UA: implemented atomic updates with locks in order to achieve      better scaling on those systems that have an inefficient      (or even buggy) ATOMIC implementation.  ------------------------------------------------------Changes in NPB3.2      (NPB3.2-SER, NPB3.2-OMP, NPB3.2-MPI )------------------------------------------------------[07-Jan-05] 1. DC version in NPB3.2-SER was converted to C from C++   (CLASSES S, W, A, B).    sys/setparams.c file was changed appropriately.   2. OpenMP version of DC was added to NPB3.2-OMP. 3. Data Traffic benchmark DT was added to NPB3.2-MPI. [24-May-04] All versions:   - use assumed shape "(*)" declaration in CG   - fixed the use of an uninitialized variable in EP   - avoid using integer array for assumed shape dimensions in FT   - fix in UA:      * fix the reference to file "inputua.data"      * avoid overindexing      * avoid reference to out-of-bound array elements      * change declaration "real*8" to "double precision" OMP version:   - explicitly added "SCHEDULE(STATIC)" to the OMP version   - use the "omp_get_wtime()" function for timer if available   - removed the call to "getenv" for portability   - change in UA:      * implemented an alternative approach for atomic update MPI version:   - removed a duplicated declaration in FT (from setparams.c)   - removed a duplicated declaration in BT/full_mpiio.f   - fixed a missing "NPROCS=" in sys/suite.awk  ------------------------------------------------------Changes in NPB3.1      (NPB3.1-MPI, NPB3.1-SER, NPB3.1-OMP)------------------------------------------------------[22-Apr-04] NPB3.1-MPI Merged the NPB2.4-MPI branch into NPB3.1 with the following changes.   - Optimized the BT memory usage.  The new version is about 1/3 of    the memory used in NPB2.x.  - Fixed a bug in CG for running on a large number of processes  - Redefined the Class W size in MG so that the verification value    will not be too small. (see below for SER & OMP versions)  - Use the relative errors for verification in both CG and MG  - Fixed a race in 'make suite' [08-Apr-04] NPB3.1-SER and NPB3.1-OMP The following changes are made in both NPB3.1-SER and NPB3.1-OMP. 1. Added the Class D problem   - verification values taken from NPB2.4-MPI   - modified variables to fit in large problem 2. Improvements for LU and LU-HP:   - reduced the memory usage for the 'tv' variable in LU and LU-HP   - a more efficient memory access for variables "a,b,c,d" in LU-HP   - a dummy iteration added before the time step loop for consistency     with other benchmarks 3. Improvement and fix in MG:   - verification in MG now uses the relative error     (instead of the absolute error).  This will avoid incorrect     verification for small reference values.   - redefined the class size for Class W so that the verification     value will not be too small.     In version 3.0 and earlier: 64x64x64,    40 iters     New size in version 3.1   : 128x128x128, 4 iters   - fixed incorrect verification values for Classes A and C. 4. CG:   - use relative error for verification   - clean up codes for matrix initialization (makea).     The new code uses about 1/2 memory of the previous version. 5. Fixed makefile related issues   - fixed dependence on make.def for files in common.   - fixed a race in 'make suite'   - added 'LU-HP' as a valid benchmark option in makefiles The following changes are made in NPB3.1-OMP. 1. Included a hyper-plane version of the LU benchmark: LU-HP   - based on the serial version 2. The dummy 'omp_lib_dum' library is not longer used for compilation    without an OpenMP compiler. Conditional compilation is now used. 3. Parallelization of the initialization part of MG.   It improves the turn-around time quite a bit for the larger   classes, such as class D. 4. Parallelize codes for matrix initialization (makea) in CG.   The new code uses about 2/3 memory of the version in NPB3.0-OMP. 5. Code clean up in SP so that the structure is more consistent   with the serial version.   ------------------------------------------------------Changes in NPB2.x MPI version------------------------------------------------------ Changes in 2.4.1- fixed error in BT/Makefile (replaced "==" with "=")- added stub function accumulate_norms in BT/btio.f- changed type of Class B verification constants in BT/verify.f from   single to double precision                                                       Changes in 2.4- Added I/O benchmark (subtype of BT).- Added Class D for all benchmarks except IS.- Reduced size of tabulated exponentials in FT.- Made minor changes to FT to prevent integer overflow for class D on   systems with 32-bit integers. FT class D will not run on small   numbers of processors anymore.  ------------------------------------------------------Changes in non-MPI versions of NPB (previously PBN3.0)      (NPB3.0-SER, NPB3.0-HPF, NPB3.0-OMP, NPB3.0-JAV)------------------------------------------------------ [01-Mar-99] Initial Beta Release. [06-Apr-99] Based on report from Charles Grassl and Ramesh Menon (SGI).    1. NPB-SER, FT: file auxfnct.f -      lines 74 and 75 were interchanged:       double complex u0(d1+1,d2,d3), tmp(maxdim)      integer d1,d2,d3    2. NPB-OMP: The OpenMP standards requires reduction variable be scalars,      thus, changes made to remove the use of array variable for reduction.      Relevant modifications in EP, CG, LU, SP, and BT    3. NPB-OMP: Remove compiler warnings of "Referenced scalar variables       use defaults" by declaring explicitly as shared.      Relevant modifications in FT, LU, and BT    4. NPB-OMP, README.openmp: Explicitly spell out the requirement of      the static scheduling (setenv OMP_SCHEDULE "static").  [05-Oct-99] NPB3.0-non-MPI Beta Release (02) General change to all (NPB-SER, NPB-HPF, NPB-OMP) -   1. Update header information for all benchmarks.    2. Allow continuation lines in 'make.def' (modification done      in sys/setparams.c). Change made in NPB-OMP -   1. 'print_results' now prints Number-Of-Threads and Mflops/s/thread.      The printed number is the activated threads during the run, which      may not be the same as what's requested.    2. A initial data touch loop for array A is added in CG.    3. 'CRITICAL' section is used for reduction with array.      Relevant changes in EP, CG, LU, SP, and BT.    4. Reconfigure 'make.def' such that 'omp_lib_dum' can be activated      from the file for no directive compilation.    5. The "!$OMP END DO" seems needed before "!$OMP MASTER" in rhs.f      for both BT and SP for some f90 compilers.    6. "SCHEDULE(STATIC)" are used for the pipeline in LU to ensure      compliance with the OMP standard. Change made in NPB-HPF -   1. 'print_results' now prints Number-Of-Processes and Mflops/s/process.    2. Use more consistent output format (via print_results).    3. More consistent makefiles (via config/make.def).  [04-Apr-00] NPB3.0-non-MPI Beta Release (03) Change made in NPB-OMP -   1. The OpenMP-C version of IS has been added, including more timers.    2. 'cprint_results' includes Number-Of-Threads and Mflops/s/thread. Change made in NPB-SER -   1. More timers included in IS. NPB-JAV has been included in NPB3.0-non-MPI.  [31-May-01] NPB3.0-non-MPI Beta Release (04) Change made in NPB-OMP -   1. NPB-OMP/LU: Failure in verification for number of threads greater       than the problem size is now fixed.    2. If OMP_NUM_THREADS is unset, the printout will report as "unset"      instead of "1"    3. NPB-OMP/IS: Allocating work_buff on the stack seems to cause problem      for large problem size (CLASS C).  "work_buff" is now allocated      by "malloc" on the heap for CLASS C.    4. NPB-OMP/IS: Reported by <RaeLyn.Crowell@compaq.com> - potential      synchronization problem could arise due to the use of "static"      variables inside "randlc()".  Declaration of these static variables      are moved out of randlc() and put in the threadprivate directive. General change to all (NPB-SER, NPB-HPF, NPB-OMP) -   1. Cleanup in makefiles  [28-Aug-02] The Official NPB3.0 Release Change made in all -   1. Fixed a bogus verification for "NaN".    2. Name change from "PBN3.0" to "NPB3.0". Updated all the banners.    3. NPB-SER/FT: use a derived version from NPB2.3-serial.    4. NPB-HPF/FT: use a consistent printing format.