| 1. Compilation |
| DC benchmark uses the same directory tree as NPB3.0 (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 |
| (an example of make.def provided in DC directory). |
| Then |
| make dc CLASS=S |
| |
| If a compiler complains about type 'int64' already defined, add |
| "-DHAS_INT64" to the CFLAGS list in make.def. |
| |
| 2. OpenMP environment needs to be set before program can be executed. |
| First set the number of the threads: |
| setenv OMP_NUM_THREADS 4 |
| Then to fix OpenMP implemantations on some machines: |
| limit stacksize unlimit |
| If running on Altix |
| setenv KMP_MONITOR_STACKSIZE 50m |
| |
| 3. Run |
| A text file ADC.par is used to set DC parameters when the class |
| is undefined (U). |
| The file has 5 lines. The lines with 'key' words attrNum, measuresNum, |
| and tuplesNum define the number of dimensions, measures, |
| and input tuples respectively. There a special parameter INVERSE_ENDIAN |
| allows us to create data in non-native endian format (INVERSE_ENDIAN=1). |
| The last parameter(fileName) specifies a DC file set name, including |
| (optionally) a full path to a directory which will contain all |
| DC related files. |
| |
| An example of the DC parameter file is as follows: |
| |
| attrNum=9 |
| measuresNum=1 |
| tuplesNum=125000 |
| class=U |
| INVERSE_ENDIAN=0 |
| fileName=ADC |
| |
| After parameter are set run benchmark |
| bin/dc.S 100000000 DC/ADC.par |
| where 100000000 is the memory size allowed to be allocated for |
| the in-core data. |
| |
| 4. DC processing modes |
| The DC benchmark can be run in two modes (in-core and out-of-core). |
| A desirable mode should be set before compilation in the file adc.h. |
| If a flag IN_CORE is on, the benchmark will calculate all views in main |
| memory. In this case we can use an additional flag VIEW_FILE_OUTPUT to |
| allow writing all views into disk files. |
| |
| If the flag IN_CORE is off, the DC benchmark will run in a regular mode |
| using disks to store interim and result data which may not fit in main |
| memory. |
| |
| _FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE -are standard compiler flags |
| which allow DC to work with files larger than 2GB. |
| |
| OPTIMIZATION turns on some nonstandard DC optimizations such as obtaining |
| a view by scanning existing views. These optimizations do not always |
| guarantee reduction in the computing time. |
| |
| 5. Tested architectures: |
| SUN Ultrasparc 60 |
| SUNFire 880 |
| Origin 2000, 3000, 3800 |
| MAC G4 |
| Xeon + Mandrake Linux |
| SGI Altix |
| |
| 6. setparams utility is used for generation of the npbparams.h file only |
| for compatibility with the existing make facility of NPB. By the same |
| reason CLASS is appended to the DC executable name. It does not limit |
| the sizes the executable can perform. The class is an input value |
| specified in ADC.par file. Providing ADC.par overrides compiled |
| defaults in npbparams.h file. |
| |
| 7. Known issues |
| If the benchmark runs out of disk space, a message like |
| "Write error from WriteToFile()" may not be printed. Instead, |
| the benchmark returns with UNSUCCESSFUL verification. In this case |
| users are advised to check whether the file system is full before |
| reporting a problem with the benchmark. |