X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a8cd62135619ad52e05ae1c929ef07e166e4260..3907e83884bae6278656e9cd2cb7ef92a8f707fb:/examples/smpi/NAS/README.install diff --git a/examples/smpi/NAS/README.install b/examples/smpi/NAS/README.install index 47a3139562..56b210a2bd 100644 --- a/examples/smpi/NAS/README.install +++ b/examples/smpi/NAS/README.install @@ -1,156 +1,30 @@ -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 - sample files in the NAS.samples subdirectory to 'make.def' and - edit the content for site- and machine-specific data. Then + 'make.def' in the config directory and modify the file if necessary. make NPROCS= CLASS= \ [SUBTYPE=] [VERSION=VEC] - where is "bt", "cg", "dt", "ep", "ft", "is", - "lu", "mg", or "sp" + where is "dt", "ep", or "is", is the number of processes 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: - is "bt" - , as above - 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 - ( 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 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. + Class E is not available for IS and DT. + Class D for IS (Integer Sort) requires a compiler/system that + supports the "long" type in C to be 64-bit. - ================================ - - 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. - - 2. Execution - The executable is named ..[.], - where is "fortran_io", "mpi_io_simple", "ep_io", or - "mpi_io_full" - 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 + The executable is named .. + 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.