| 1 | 1. Compilation
|
|---|
| 2 | DC benchmark uses the same directory tree as NPB3.0 (and NPB2.x) does.
|
|---|
| 3 | Before compilation, one needs to check the configuration file
|
|---|
| 4 | 'make.def' in the config directory and modify the file if necessary
|
|---|
| 5 | (an example of make.def provided in DC directory).
|
|---|
| 6 | Then
|
|---|
| 7 | make dc CLASS=S
|
|---|
| 8 |
|
|---|
| 9 | If a compiler complains about type 'int64' already defined, add
|
|---|
| 10 | "-DHAS_INT64" to the CFLAGS list in make.def.
|
|---|
| 11 |
|
|---|
| 12 | 2. OpenMP environment needs to be set before program can be executed.
|
|---|
| 13 | First set the number of the threads:
|
|---|
| 14 | setenv OMP_NUM_THREADS 4
|
|---|
| 15 | Then to fix OpenMP implemantations on some machines:
|
|---|
| 16 | limit stacksize unlimit
|
|---|
| 17 | If running on Altix
|
|---|
| 18 | setenv KMP_MONITOR_STACKSIZE 50m
|
|---|
| 19 |
|
|---|
| 20 | 3. Run
|
|---|
| 21 | A text file ADC.par is used to set DC parameters when the class
|
|---|
| 22 | is undefined (U).
|
|---|
| 23 | The file has 5 lines. The lines with 'key' words attrNum, measuresNum,
|
|---|
| 24 | and tuplesNum define the number of dimensions, measures,
|
|---|
| 25 | and input tuples respectively. There a special parameter INVERSE_ENDIAN
|
|---|
| 26 | allows us to create data in non-native endian format (INVERSE_ENDIAN=1).
|
|---|
| 27 | The last parameter(fileName) specifies a DC file set name, including
|
|---|
| 28 | (optionally) a full path to a directory which will contain all
|
|---|
| 29 | DC related files.
|
|---|
| 30 |
|
|---|
| 31 | An example of the DC parameter file is as follows:
|
|---|
| 32 |
|
|---|
| 33 | attrNum=9
|
|---|
| 34 | measuresNum=1
|
|---|
| 35 | tuplesNum=125000
|
|---|
| 36 | class=U
|
|---|
| 37 | INVERSE_ENDIAN=0
|
|---|
| 38 | fileName=ADC
|
|---|
| 39 |
|
|---|
| 40 | After parameter are set run benchmark
|
|---|
| 41 | bin/dc.S 100000000 DC/ADC.par
|
|---|
| 42 | where 100000000 is the memory size allowed to be allocated for
|
|---|
| 43 | the in-core data.
|
|---|
| 44 |
|
|---|
| 45 | 4. DC processing modes
|
|---|
| 46 | The DC benchmark can be run in two modes (in-core and out-of-core).
|
|---|
| 47 | A desirable mode should be set before compilation in the file adc.h.
|
|---|
| 48 | If a flag IN_CORE is on, the benchmark will calculate all views in main
|
|---|
| 49 | memory. In this case we can use an additional flag VIEW_FILE_OUTPUT to
|
|---|
| 50 | allow writing all views into disk files.
|
|---|
| 51 |
|
|---|
| 52 | If the flag IN_CORE is off, the DC benchmark will run in a regular mode
|
|---|
| 53 | using disks to store interim and result data which may not fit in main
|
|---|
| 54 | memory.
|
|---|
| 55 |
|
|---|
| 56 | _FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE -are standard compiler flags
|
|---|
| 57 | which allow DC to work with files larger than 2GB.
|
|---|
| 58 |
|
|---|
| 59 | OPTIMIZATION turns on some nonstandard DC optimizations such as obtaining
|
|---|
| 60 | a view by scanning existing views. These optimizations do not always
|
|---|
| 61 | guarantee reduction in the computing time.
|
|---|
| 62 |
|
|---|
| 63 | 5. Tested architectures:
|
|---|
| 64 | SUN Ultrasparc 60
|
|---|
| 65 | SUNFire 880
|
|---|
| 66 | Origin 2000, 3000, 3800
|
|---|
| 67 | MAC G4
|
|---|
| 68 | Xeon + Mandrake Linux
|
|---|
| 69 | SGI Altix
|
|---|
| 70 |
|
|---|
| 71 | 6. setparams utility is used for generation of the npbparams.h file only
|
|---|
| 72 | for compatibility with the existing make facility of NPB. By the same
|
|---|
| 73 | reason CLASS is appended to the DC executable name. It does not limit
|
|---|
| 74 | the sizes the executable can perform. The class is an input value
|
|---|
| 75 | specified in ADC.par file. Providing ADC.par overrides compiled
|
|---|
| 76 | defaults in npbparams.h file.
|
|---|
| 77 |
|
|---|
| 78 | 7. Known issues
|
|---|
| 79 | If the benchmark runs out of disk space, a message like
|
|---|
| 80 | "Write error from WriteToFile()" may not be printed. Instead,
|
|---|
| 81 | the benchmark returns with UNSUCCESSFUL verification. In this case
|
|---|
| 82 | users are advised to check whether the file system is full before
|
|---|
| 83 | reporting a problem with the benchmark.
|
|---|