Document Title: install_guide_unix.txt Subject: Installing SPEC HPC2002 Under Unix Last updated: 2002 12 01 rl (To check for possible updates to this document, please see http://www.spec.org/hpg/hpc2002 ) ------------------------------------------------------------------------ Contents -------- Installation Steps Example Installation Example Compile and Run Example config file Installation Steps ------------------ The SPEC HPC2002 suite has been tested on Unix systems. The installation procedure for Unix is as follows: 1) Review the hardware and software requirements for the HPC2002 suite. You should have received a hard copy of "system_requirements.txt" with your kit; if the hard copy is not available, then you'll have to skip down to step #3, mount your CD, and then you can type: more /cdrom/docs/system_requirements.txt 2) Create a directory on the destination disk. You should make sure that you have a disk that has at least 6GB free. The installation requires 1 gig. Please allow an additional 5GB free disk space for use during benchmar runs. (For more information on disk usage, see system_requirements.txt.) 3) Mount the CD. If your operating system supports the Rock Ridge Interchange Protocol extensions to ISO 9660, be sure to select them, unless they are the default. For example: AIX: mount -v cdrfs -r /dev/cd0 /cdrom HP-UX: pfsd & pfs_mountd & pfs_mount -v /dev/rdsk/c1t2d0 /cdrom Linux: mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom Solaris: mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom Tru64 Unix: mount -t cdfs -o rrip /dev/rz20c /cdrom Note that you may need root privileges to mount the CD. 4) Set your current working directory to the directory where the CD is mounted. 5) Type './install.sh' When prompted, enter the destination directory. Note that for a destination directory, you will have to use syntax acceptable to sh (so you might need to say $HOME instead of ~). The installation procedure will attempt to determine your current architecture. If a possible match is found, you will see a message such as this one: These appear to be valid architectures: Note that you MUST type in the architecture that you wish to use, even if only one choice is offered. Type the name exactly as it appears (or use your mouse cut and paste). If the installation procedure is unable to determine your system architecture, you will see a message such as this one: We do not appear to have vendor supplied binaries for your architecture. If you see that message, please stop here, and examine the file: /cdrom/docs/tools_build.txt 6) You will see thousands of filenames mentioned as they are created on your destination disk. At the end, you should see a message such as this one: Everything looks ok, source the shrc file and have at it! At this point, you will have consumed about 1GB of disk space on the destination drive. 7) Change your current working directory to the destination disk, and !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! START A BOURNE-COMPATIBLE SHELL !!!!!!!!!!!!! ! (if you are not already in one) ! ! ! ! That is, you need to use a command interpreter that ! ! supports the syntax used by shrc, which tries to be ! ! highly portable by avoiding proprietary or uncommon ! ! shell features. Many shells -- such as ash, bash, ! ! ksh, and zsh -- provide some degree of compatibility ! ! with the Bourne shell. The C shell (csh) definitely ! ! is NOT compatible with Bourne shell syntax. If you ! ! are in doubt, or if you see unexpected error messages ! ! from shrc, you can usually start a Bourne shell by ! ! typing 'sh'. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Then, source the file shrc. If you prefer some other shell, you can probably spawn it after sourcing shrc; when you do so, please be sure that your new shell does not clear the path variables set up by shrc! For example: % cd /usr/john/hpc2002 % sh $ . ./shrc <- that's dot-space-dot-slash-shrc $ csh % The effect of the above commands is to setup environment variables and paths for SPEC. You must be in a Bourne-compatible shell when you source shrc. 8) Test that you can build the first benchmark using the config file supplied for your system. For example: % runspec --config=ipf_hpc_350 --action=build seis_s The above command assumes that you can tell what config file (in the directory $SPEC/config) is appropriate for you simply from the filename. For a quick introduction to config files, see "About Config Files" in: $SPEC/docs/runspec.txt 9) Test that you can run the first benchmark, using the minimal input set - the "test" workload. For example: % runspec --config=ipf_hpc_350 --size=test \ --noreportable --iterations=1 seis_s The "\" above indicates that the command is continued on the next line. The "--noreportable" ensures that the tools will allow us to run just a single benchmark instead of the whole suite, and "--iterations=1" says just run the benchmark once. 10) Test that you can run the first benchmark using the real input set - the "reference" workload. For example: % runspec --config=ipf_hpc_350 --size=ref \ --noreportable --iterations=1 seis_s Check the results in $SPEC/result. 11) Have a look at runspec.txt to learn how to do a full run of the suite. Example Installation -------------------- Here is a complete Unix installation, with comments in asterisks. This example follows the steps listed above. We assume that Steps 1 and 2 are already complete (from the list above). ************************************************************ Step 3: Mount the CD. ************************************************************ % su Password: # mount /dev/cdrom /cdrom # exit ************************************************************ Step 4: Set the current working directory to the CD: ************************************************************ % cd /cdrom ************************************************************ Step 5: Invoke install.sh. When prompted, we enter the destination directory, and the desired architecture: ************************************************************ % install.sh Top of SPEC tree is '/cdrom' Enter the directory you wish to install to (i.e. /usr/hpc2002) /hpc2002 These appear to be valid architectures: HPUX_1100-pa20 HPUX_1120-ia64 Enter the architecture you are using: HPUX_1120-ia64 ./ result/ result/images/ result/images/basebar.gif result/images/invalid.gif result/images/peakbar.gif . . ****************************************************** . The SPEC tools create many files on your destination . disk, listing the name of each one. (Over 7000 lines . deleted here, in the interest of brevity.) . ****************************************************** . bin/lib/site_perl/5.005/Font/Metrics/CourierBold.pm bin/lib/site_perl/5.005/Font/Metrics/CourierOblique.pm bin/lib/site_perl/5.005/Font/Metrics/CourierBoldOblique.pm bin/lib/site_perl/5.005/Font/Metrics/TimesRoman.pm Top of SPEC tree is '/hpc2002' Everything looks okay. cd to /hpc2002, source the shrc file and have at it! % Example Compile and Run ----------------------- ************************************************************ Step 7: Now, we set the current working directory to the DESTINATION device, start a Bourne-compatible shell, and source the shrc. After that, it is ok to spawn some other shell. ************************************************************ % cd /hpc2002 % sh $ . ./shrc *** that's dot-space-dot-slash-shrc **** $ csh ************************************************************ Step 8: Use runspec to do a test build: ************************************************************ % runspec --config=ipf_hpc_350 --action=build --tune=peak --e mpi seis_s runspec v2.01 - Copyright (C) 2002 Standard Performance Evaluation Corporation Loading standard modules............. Loading runspec modules............. Identifying output formats...asc...config...html...pdf...ps...raw... We will use: 350.seis_s Compiling Binaries Building 350.seis_s ref peak mpi default Build Complete ************************************************************ Just above, various compile and link commands may or may not be echoed to your screen, depending on the settings in your config file. For the sake of brevity, they are omitted in this example. At this point, we've accomplished a lot. The SPEC tree is installed, and we have verified that a benchmark can be compiled using the Fortran and C compiler as well as building with MPI. ************************************************************ ************************************************************ Step 9: Now try running the first benchmark, making sure to specify MPI_COMM_SIZE to the number of processes to be used, using the minimal test workload. The test workload runs in a tiny amount of time and does a minimal verification that the benchmark executable can at least start up: ************************************************************ % export MPI_COMM_SIZE=1; \ runspec --config=ipf_hpc_350 --tune=peak --size=test \ --noreportable --iterations=1 --e mpi seis_s runspec v2.01 - Copyright (C) 2002 Standard Performance Evaluation Corporation Loading standard modules............. Loading runspec modules............. Identifying output formats...asc...config...html...pdf...ps...raw... We will use: 350.seis_s Compiling Binaries Up to date 350.seis_s test peak mpi default Setting Up Run Directories Setting up 350.seis_s test peak mpi default: existing Running Benchmarks Running 350.seis_s test peak mpi default Success: 1x350.seis_s Producing Reports mach: default ext: mpi size: test set: seis_m set: chem_m set: env_s set: env_m set: seis_s format: raw -> /hpc2002/result/HPC2002.002.raw format: pdf -> /hpc2002/result/HPC2002.002.pdf format: PostScript -> /hpc2002/result/HPC2002.002.ps format: HTML -> /hpc2002/result/HPC2002.002.html format: config -> /hpc2002/result/HPC2002.002.cfg format: ASCII -> /hpc2002/result/HPC2002.002.asc set: chem_s runspec finished ************************************************************ Notice 15 lines up the notation "Success: 1x350.seis_s". That is what we want to see. ************************************************************ ************************************************************ Step 10: let's try running seis_s with the real workload. This will take a while - about 10 minutes on the 4 CPU system used for the sample installation. ************************************************************ % export MPI_COMM_SIZE=4; runspec --config=ipf_hpc_350 --tune=peak \ --size=ref --noreportable --iterations=1 --e mpi seis_s runspec v2.01 - Copyright (C) 2002 Standard Performance Evaluation Corporation Loading standard modules............. Loading runspec modules............. Identifying output formats...asc...config...html...pdf...ps...raw... We will use: 350.seis_s Compiling Binaries Up to date 350.seis_s ref peak mpi default Setting Up Run Directories Setting up 350.seis_s ref peak mpi default: created Running Benchmarks Running 350.seis_s ref peak mpi default Success: 1x350.seis_s Producing Reports mach: default ext: mpi size: ref set: seis_m set: chem_m set: env_s set: env_m set: seis_s format: raw -> /hpc2002/result/HPC2002.003.raw format: pdf -> /hpc2002/result/HPC2002.003.pdf format: PostScript -> /hpc2002/result/HPC2002.003.ps format: HTML -> /hpc2002/result/HPC2002.003.html format: config -> /hpc2002/result/HPC2002.003.cfg format: ASCII -> /hpc2002/result/HPC2002.003.asc set: chem_s runspec finished ************************************************************ Success with the real workload! So now let's look in the result directory and see what we find: ************************************************************ % cd result % ls HPC2002.002.asc HPC2002.002.raw HPC2002.003.ps log.003 HPC2002.002.cfg HPC2002.003.asc HPC2002.003.raw log.lock HPC2002.002.html HPC2002.003.cfg images HPC2002.002.pdf HPC2002.003.html log.001 HPC2002.002.ps HPC2002.003.pdf log.002 ************************************************************ Notice the three log files from our three runspec commands. Those runspec commands are easily extracted with "grep": ************************************************************ % grep /runspec log.* log.001:/hpc2002/bin/runspec --config=ipf_hpc_350 --action=build --tune=peak --e mpi seis_s log.002:/hpc2002/bin/runspec --config=ipf_hpc_350 --tune=peak --size=test --noreportable --iterations=1 --e mpi seis_s log.003:/hpc2002/bin/runspec --config=ipf_hpc_350 --tune=peak --size=ref --noreportable --iterations=1 --e mpi seis_s ************************************************************ So let's look at our results, in the ".asc" file: ************************************************************ ************************************************************ Now lets examine the ascii report produced by our test tools If there are dashes for the various portions of the system description, these dashes indicate that we have not filled in the fields that describe the hardware and software that we are testing. For information on how to fill in these fields, please see: $SPEC/docs/config.txt ************************************************************ % cat HPC2002.003.asc ############################################################################## # INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN # # # # 'reportable' flag not set during run # # # # INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN # ############################################################################## SPEC HPC2002 Summary Hewlett-Packard Company hp server rx5670 (1000MHz Itanium2) Sun Dec 1 08:13:32 2002 SPEC License #HPG2116 Tester: Hewlett-Packard Company Hardware available: Oct-2002 Test Site: Richardson, Texas Software available: Oct-2002 Test Date: Nov-2002 Estimated Benchmarks Ref Time Run Time Ratio ---------------- -------- -------- -------- 350.seis_s 86400 84.2 1026* ======================================================================== 350.seis_s 86400 84.2 1026* Est. SPECseisSpeak2002 1026 HARDWARE -------- Hardware Vendor: Hewlett-Packard Company Model Name: hp server rx5670 (1000MHz Itanium2) CPU: Intel Itanium 2 CPU MHz: 1000 FPU: Integrated CPU(s) enabled: 4 CPU(s) orderable: 1 to 4 Primary Cache: L1 Inst/Data: 16 KB, associativity = 4 Secondary Cache: L2 Unified: 256 KB, associativity = 8 L3 Cache: L3 Unified: 3072 KB, associativity = 12 Other Cache: None Memory: 12GB Disk Subsystem: 1x9GB SCSI disk (root), 1x9GB SCSI disk (swap) Other Hardware: -- SOFTWARE -------- Parallel: MPI Processes-Threads: 4 MPI Processes: 4 OpenMP Threads: 1 Operating System: HP-UX 11i TCOE B.11.22 Compiler: HP C/ANSI C Compiler v11.22 HP Fortran 90 Compiler v2.6.2 HP aC++ Compiler A.03.35 HP MPI 1.08.02 PHSS_27975: f90 product PHSS_27286: C product PHSS_27287: U2comp PHSS_27288: Linker PHSS_27289: Libm PHSS_27290: Assembler PHSS_27291: PBO File System: Online JFS System State: Multi-user Other Software: -- NOTES ----- Flags: f90 +O2 +Ofltacc +Oinfo +es +Oopenmp aCC +O2 +Oopenmp +Oinfo +DD64 +FPD -minshared /usr/ccs/lbin/cpp -I. -C -P -D_OPENMP Peak User Environment: use_submit_for_speed=1 submit=export OMP_NUM_THREADS= \$OMPI_COMM_SIZE;$command Kernel Paramters (/stand/system): maxdsiz 0x7b03a000 maxdsiz_64bit 0x4000000000 maxssiz 0x10000000 maxssiz_64bit 0x40000000 maxtsiz 1073741824 maxtsiz_64bit 4294967296 vps_pagesize 4096 vps_ceiling 16384 dbc_min_pct 20 dbc_max_pct 20 ############################################################################## # INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN # # # # 'reportable' flag not set during run # # # # INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN INVALID RUN # ############################################################################## ----------------------------------------------------------------------------- For questions about this result, please contact the tester. For other inquiries, please contact webmaster@spec.org. Copyright 2002 Standard Performance Evaluation Corporation Generated on Sun Dec 1 08:15:05 2002 by SPEC HPC2002 ASCII formatter v2.1 ************************************************************ Done. The suite is installed, and we can run at least one benchmark for real. ************************************************************ Example config file ------------------- ************************************************************ The following config file was used for these example, this one has the notes filled in for an MPI 4 way submission. ************************************************************ default=default=default=default: CC = /opt/aCC/bin/aCC -Ae +DD64 FC = /opt/fortran90/bin/f90 +DD64 CPP = /usr/ccs/lbin/cpp CPPFLAGS = -I. -C -P ##################################################################### default=default=serial=default: OPTIMIZE = -Dserial COPTIMIZE = +O2 +Oinfo -Dserial FOPTIMIZE = +O2 +Ofltacc +Oinfo +es -Dserial CPPFLAGS = -I. -C -P -Dserial F77 = $(FC) EXTRA_LIBS= +FPD -minshared default=default=omp=default: use_submit_for_speed = 1 submit= export OMP_NUM_THREADS=\$OMPI_COMM_SIZE;$command OPTIMIZE = COPTIMIZE = +O2 +Oopenmp +Oinfo FOPTIMIZE = +O2 +Ofltacc +Oinfo +es +Oopenmp CPPFLAGS = -I. -C -P -D_OPENMP F77 = $(FC) EXTRA_LIBS= +Oopenmp +FPD -minshared default=default=mpi=default: use_submit_for_speed=1 submit=mpirun -np \$MPI_COMM_SIZE $command CC=mpicc FC=mpif90 F77 = $(FC) OPTIMIZE = -I /opt/mpi/include -DSPEC_HPG_MPI COPTIMIZE = +O2 +Oinfo -DSPEC_HPG_MPI -DSPECDONOTNEEDARG FOPTIMIZE = +O2 +Ofltacc +Oinfo +es +U77 -DSPEC_HPG_MPI CPPFLAGS = -I. -C -P -DSPEC_HPG_MPI EXTRA_LIBS= +FPD -minshared -lU77 sw_parallel= MPI sw_ranks= 4 sw_threads= 1 sw_procs_thrds= 4 company_name= Hewlett-Packard Company hw_avail= Oct-2002 hw_cpu= Intel Itanium 2 hw_cpu_mhz= 1000 hw_disk000= 1x9GB SCSI disk (root), 1x9GB SCSI disk (swap) hw_fpu= Integrated hw_memory= 12GB hw_model= hp server rx5670 (1000MHz Itanium2) hw_ncpu= 4 hw_ncpuorder= 1 to 4 hw_ocache= None hw_pcache= L1 Inst/Data: 16 KB, associativity = 4 hw_scache= L2 Unified: 256 KB, associativity = 8 hw_tcache= L3 Unified: 3072 KB, associativity = 12 hw_vendor= Hewlett-Packard Company license_num= HPG2116 machine_name= hp server rx5670 prepared_by= The Spec Dude sw_avail= Oct-2002 sw_compiler000= HP C/ANSI C Compiler v11.22 sw_compiler001= HP Fortran 90 Compiler v2.6.2 sw_compiler002= HP aC++ Compiler A.03.35 sw_compiler003= HP MPI 1.08.02 sw_compiler004= PHSS_27975: f90 product sw_compiler005= PHSS_27286: C product sw_compiler006= PHSS_27287: U2comp sw_compiler007= PHSS_27288: Linker sw_compiler008= PHSS_27289: Libm sw_compiler009= PHSS_27290: Assembler sw_compiler010= PHSS_27291: PBO sw_compiler011= sw_compiler013= sw_file= Online JFS sw_os= HP-UX 11i TCOE B.11.22 sw_state= Multi-user test_date= Nov-2002 test_site= Richardson, Texas tester_name= Hewlett-Packard Company notes210= Peak User Environment: notes211= use_submit_for_speed=1 notes212= submit=export OMP_NUM_THREADS= notes213= \$OMPI_COMM_SIZE;$command notes214= notes010= Flags: notes020= f90 +O2 +Ofltacc +Oinfo +es +Oopenmp notes021= -DSPEC_HPG_MPI +DD64 +FPD -minshared notes021= notes025= aCC +O2 +Oopenmp +Oinfo +DD64 +FPD -minshared notes026= notes035= /usr/ccs/lbin/cpp -I. -C -P -D_OPENMP notes042= notes274= Kernel Paramters (/stand/system): notes275= maxdsiz 0x7b03a000 notes276= maxdsiz_64bit 0x4000000000 notes277= maxssiz 0x10000000 notes278= maxssiz_64bit 0x40000000 notes279= maxtsiz 1073741824 notes280= maxtsiz_64bit 4294967296 notes281= vps_pagesize 4096 notes282= vps_ceiling 16384 notes283= dbc_min_pct 20 notes284= dbc_max_pct 20 notes285=