How to run benchmarks?

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.


[ToDo]
Single node 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.

"make.bin" is in charge of compiling two applications, by gcc and mpich compilation. These generated applications will be in "bin" directory. "make.1cpu", "make.smp", and "make.2cpu" are the script of benchmarks, these results store appropriate directories in "results" directory. And they also let you know about your machine information as "machineInfo" file in the directories. Finally, "Makefile" is arrange of these 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.

1cpu
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.

NOTICE: Before you run benchmarks, please check your MPICH version in "make.bin" and "make.smp". Thanks.

Multi node benchmarks

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.

% make
Makefile will give you four application in the "bin" directory and two support scripts (batch4PBS and run_trace) in the current directory.

PBS batch

usage: batch4PBS [options] MILC_application

Options are

e.g.)
% ./batch4PBS -Myrinet -SMP -l4 -p8,4,2,1 -rdres bin/su3_rmd_symzk1_asqtad.ch_gm
Collects TRACE data

usage: run_trace [options] MILC_application

Options are

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-trace
NOTICE: "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.

(addition) MPE

Perhaps! 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:

% make -f make.bin su3_rmd_symzk1_asqtad.ch_p4-trace-mpe
	or
% make -f make.bin su3_rmd_symzk1_asqtad.ch_gm-trace-mpe
Before running those application, you have to set the environment variable MPE_LOG_FORMAT.
% export MPE_LOG_FORMAT=SLOG
	or
% export MPE_LOG_FORMAT=CLOG
Then you just run the application. After running, you will obtain CLOG or SLOG data in the bin directory where the application exists.
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
[back]

mats@fnal.gov