There are two types of benchmarks, one is by single node, the other is by multi nodes. The results up to now are in here.
Notice: su3_rmd_symzk1_asqtad of MILC applications is used in this benchmarks.
This benchmark collects the performance of each problem (lattice) size on one node. Three types are in there, "1cpu", "SMP", and "2cpu".
So you change the directory to QCD-benchmark-1.0/benchmarks/SingleNode
. There are four makefiles.
[Reminder] .SMP-node file is in there. It needs to run make.smp(MPICH). You MUST set your machine-name on .SMP-node. If you forgot to set it, make.smp will not work.
When you want to run benchmarks, you just type "make" here.
1cpuNOTICE: Before you run benchmarks, please check your MPICH version in "make.bin" and "make.smp". Thanks.
using One cpu on One node.SMP
using Two cpu on One node which is SMP.2cpu
using Two cpu on Two nodes, But they do NOT cooperate, Just concurrent.
This benchmark collects the performance of each number of CPUs on a fixed lattice size. Typically, you make some batch script and throw them to PBS. I describe this handle on below "PBS batch".
On the other hand, you want to know about timing on the application. Then you use a TRACE benchmark. This detail is in "Collects TRACE data".
In any case, you have to compile applications for this benchmark.
Makefile will give you four application in the "bin" directory and two support scripts (batch4PBS and run_trace) in the current directory.% make
PBS batchusage:
batch4PBS [options] MILC_applicationOptions are
- -Ethernet/-Myrinet
Choose the network type, Ethernet or Myrinet.- -SMP
Choose for SMP environment.- -l#
Set lattice sizes. Its format is like that-l12,16. This means you set two lattice 12x12x12x24 and 16x16x16x32.- -p#
Set number of processors. Its format is like that-p8,4,2,1. This means you set four processors 8, 4, 2, and 1.- -rd<directory>
Choose benchmark results stored directory.- -default
Print default values- -help
Print usage and optionsCollects TRACE datae.g.) % ./batch4PBS -Myrinet -SMP -l4 -p8,4,2,1 -rdres bin/su3_rmd_symzk1_asqtad.ch_gmusage:
run_trace [options] MILC_applicationOptions are
- -n #
Number of processors- -t <nettype>
Network type (Ethernet of Myrinnet)- -i <infile>
Input file name- -o <outfile>
Output file name- -d <resdir>
Result storage directory- -s <nodefile>
Nodes list fileNOTICE: "Nodes list file"'s format is the same of $PBS_NODEFILE. If you use PBS, you do not mention about nodefile. BUT you want to run this scripts on manually, you have to specify your using machine names on a node file and use -s option.e.g.) % ./run_trace -n 4 -t Myrinet -i samples/in.lat4444 -o out.log -d trace-res -s nodes bin/su3_rmd_symzk1_asqtad.ch_gm-tracePerhaps! you want to get SLOG or CLOG data by MPE. I prepare the MPE target in "make.bin". You will get applications linked MPE libraries as follows:
Before running those application, you have to set the environment variable MPE_LOG_FORMAT.% make -f make.bin su3_rmd_symzk1_asqtad.ch_p4-trace-mpe or % make -f make.bin su3_rmd_symzk1_asqtad.ch_gm-trace-mpeThen you just run the application. After running, you will obtain CLOG or SLOG data in the bin directory where the application exists.% export MPE_LOG_FORMAT=SLOG or % export MPE_LOG_FORMAT=CLOG
ToDo% cd QCD-benchmark-1.0/benchmarks/SingleNode Set .SMP-node % make
% cd QCD-benchmark-1.0/benchmarks/MultiNode % make % ./batch4PBS -Myrinet -SMP -rdresults bin/su3_rmd_symzk1_asqtad.ch_gm or % ./run_trace -n 4 -t Myrinet -i samples/in.lat4444 -d trace-res -s mynode bin/su3_rmd_symzk1_asqtad.ch_gm-trace
mats@fnal.gov