Professional Documents
Culture Documents
- PARSEC 2.0 -
by
Understanding PARSEC
What is PARSEC?
● Princeton Application Repository for Shared-Memory
Computers
● Benchmark Suite for Chip-Multiprocessors
● Started as a cooperation between Intel and Princeton
University, many more have contributed since then
● Freely available at:
http://parsec.cs.princeton.edu/
Over 1,000 downloads from all over the world since release
Objectives of PARSEC
● Multithreaded Applications
Future programs must run on multiprocessors
● Emerging Workloads
Increasing CPU performance enables new applications
● Diverse
Multiprocessors are being used for more and more tasks
● State-of-Art Techniques
Algorithms and programming techniques evolve rapidly
● Support Research
Our goal is insight, not numbers
PARSEC 2.0
PARSEC SPLASH-2
Shared
15.00% 3 Reads
Portfolio
Shared
Writes
10.00% 2
True Shared
Reads
5.00% 1 True Shared
Writes
0.00% 0
8192
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
16384
32768
65536
131072
262144
1 2 4 8 16
● Machines increasingly
rely on computer vision
to interact with
environment
● Often no aid available
(e.g. Markers,
constrained behavior)
● Must usually happen in
real-time
Stanley, Winner of the DARPA Challenge 2005.
Autonomous vehicle navigation requires real-time
computer vision.
Bodytrack Idea
Bodytrack uses an annealed particle filter:
Annealing layer i
Fitness
Model Configuration
Model Configuration
Bodytrack Characteristics
Working Sets Cache Hits
2.00% 5
Edge maps Private
Reads
Writes
Shared
3
Reads
1.00% Shared
Input frames Writes
2
True Shared
0.50% Reads
1 True Shared
Writes
0.00% 0
1 2 4 8 16
1024
16
32
64
2048
4096
8192
32768
65536
1
2
4
8
128
256
512
16384
131072
262144
20.00%
Shared
Netlist 3 Reads
Shared
Writes
2
10.00% True Shared
Reads
1 True Shared
Writes
0.00% 0
1 2 4 8 16
8192
16
32
64
1024
2048
4096
1
2
4
8
128
256
512
16384
32768
65536
131072
262144
1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1
fp(1011) = x fp(1010) = x
Match!
Dedup Characteristics
Working Sets Cache Hits
2.00% 5
Data chunks Private
Reads
4 Private
Writes
Shared
Hash table 3 Reads
1.00% Shared
Writes
2
True Shared
Reads
0.50%
1 True Shared
Writes
0.00% 0
1 2 4 8 16
16384
32768
65536
131072
262144
128
256
512
1024
2048
4096
8192
1
2
4
8
16
32
64
● Coarse-grained parallelism,
similarities to HPC programs
Source: Eftychios Sifakis et al.
Shared
3.00% Face mesh 3 Reads
Shared
Writes
2.00% 2
True Shared
Reads
1.00% 1 True Shared
Writes
0.00% 0
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
1 2 4 8 16
http://www.cs.princeton.edu/cass/demos.htm
Ferret Idea
Shared
6.00% Database 3 Reads
Shared
Writes
4.00% 2
True Shared
Reads
2.00% 1 True Shared
Writes
0.00% 0
1 2 4 8 16
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
32768
65536
131072
262144
16384
2.00%
Shared
3
Reads
Particle data Shared
2
Writes
1.00% True Shared
Reads
1 True Shared
Writes
0.00% 0
1 2 4 8 16
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
● Increasing amounts of
data need to be analyzed
for patterns
● Requirements for
computational processing
power virtually unlimited
Frequent Itemset Mining is already
in practice used e.g. for e-commerce (Screenshot:
Amazon.com).
Freqmine Idea
root
abcefo Header table
acg Item Head of lists e:8 c:2
ei
acdeg e:8
c:8 c:6 a:2
acegl a:8
ej g:5
b:2 a:6 g:1 d:1
abcefp
f:2
acd d:2
b:2 g:4
acegm
acegn
f:2 d:1
Freqmine Characteristics
Working Sets Cache Hits
2.00% 5
Private
Reads
4
Shared
3
Reads
1.00% FP-tree Shared
2 Writes
True Shared
0.50%
Reads
1 True Shared
Writes
0.00% 0
1 2 4 8 16
16
32
64
1024
2048
4096
8192
1
2
4
8
128
256
512
32768
65536
131072
262144
16384
● Simpler development of
games at the cost of more
expensive computations Major companies have started to
invest into ray tracing
(Source: cnet, May 2008)
Raytrace Demonstration
Source: Intel
Source: Siggraph
ock
Get bl
loc ter
ally
s
Cl u
C
on en
so te
c
lid rs
at
e
Shared
3 Reads
10.00% Data block Shared
Writes
2
True Shared
Reads
5.00%
1 True Shared
Writes
0.00% 0
1 2 4 8 16
32
131072
1
2
4
8
16
64
128
512
1024
2048
4096
8192
16384
32768
65536
262144
256
Shared
3.00% Swaptions 3 Reads
Shared
Writes
2.00% 2
True Shared
Reads
1.00% 1 True Shared
Writes
0.00% 0
1 2 4 8 16
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
http://www.vips.ecs.soton.ac.uk/
Vips Rationale
● Image processing is one
of most common
operations for desktops
and workstations
● Amount of digital photos
grows exponentially
● Professional images can
become huge but still
need to be handled
quickly
● Benchmark based on real
print-on-demand service
at National Gallery of The native input set for vips is a picture of
London the Orion galaxy with 18,000 x 18,000
pixels.
Vips Idea
Shared
6.00% 3 Reads
Image data Shared
Writes
4.00% 2
True Shared
Reads
2.00% 1 True Shared
Writes
0.00% 0
1 2 4 8 16
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
131072
262144
65536
http://www.videolan.org/developers/x264.html
X264 Rationale
● Increasing storage and
network capacity have
made videos popular
I B B B B B P B B B B P I
Shared
6.00% 3
Reads
Reference Shared
frames 2
Writes
4.00%
True Shared
Reads
2.00% 1 True Shared
Writes
0.00% 0
1 2 4 8 16
32
1
2
4
8
16
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
parsecmgmt -a status
Example
Hello World (2)
Run the following command:
parsecmgmt -a status
parsecmgmt -h
Building Workloads
● You can build a PARSEC workload as follows:
● Flag '-a' specifies the desired action, flag '-p' gives one or
more packages
● A package can be a workload, library or anything else that
comes with PARSEC and can be compiled
● 'parsecmgmt -a info' gives you a list of all available
packages
● Parsecmgmt will automatically handle dependencies
between packages correctly
Building Workloads Quiz
Q: How do you build workload canneal?
Quiz
Building Workloads Answer
Q: How do you build package canneal?
A: You can use the following command:
> parsecmgmt -a build -p canneal
[PARSEC] Packages to build: canneal
[ARCHITECTURE]-[OSNAME].[BUILDCONF]
parsecmgmt -a status
● Uninstall everything:
100000.nets
[PARSEC] Running '...':
[PARSEC] [---------- Beginning of output ----------]
PARSEC Benchmark Suite Version 2.0
Threadcount: 1
10000 moves per thread
Start temperature: 2000
...
[PARSEC] [---------- End of output ----------]
[PARSEC] Done.
Submitting Runs
build_[DATE]_[TIMESTAMP].log
and
run_[DATE]_[TIMESTAMP].log
Documentation
● Comprehensive documentation shipped with PARSEC 2.0
● Full set of man pages available in the man/ directory
● Add it to the MANPATH environment variable to access it
(example assumes bash shell):
MANPATH=${MANPATH}:${PARSECDIR}/man
man parsec
Environment Setup
● You can modify your environment to make the PARSEC
tools and its man pages available at the command line
(without full path)
● The env.sh script in the PARSEC root directory will do
that for you
● Source it as follows (example assumes bash shell):
source env.sh
● If you use PARSEC a lot you can add that to your login
scripts to have it always available
Part 3
Adapting PARSEC
Framework Directory
Structure
● PARSEC is composed of the framework and packages
parsec-2.0/
Framework executable files
bin/
config/ Global configuration files
log/ Log files of builds and runs
man/
pkgs/ Man pages for PARSEC
apps/
... One directory for
kernels/ each package group
...
(currently four)
libs/
...
tools/ Each group directory
... contains one directory per
[GROUPNAME]/ package in that group
Package Directory Structure
● Each package directory is structured as follows:
bldconfadd -n [NAME]
bldconfdel -n [NAME]
● Use flag '-h' with both tools to get more detailed usage
information
Modifying Build
Configurations
source ${PARSECDIR}/config/gcc.bldconf
kernels/canneal/inst/x86_64-linux-linux.gcc-serial
CC: /usr/bin/gcc
Version: gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURP
CFLAGS: -O3 -funroll-loops -fprefetch-loop-arrays -DPARSEC_VERSION=2.0
...
PARSEC Hooks
● Implemented as a library
Initialization
Cleanup
Application End
Parallel Code Serial Code
PARSEC Hooks Features
Possible actions:
● Create checkpoint
Parallel phase
● Switch to fast-forward
source ${PARSECDIR}/config/gcc.bldconf
Concluding Remarks
PARSEC 3.0
Join the We want you to
revolution! contribute!
[1] Christian Bienia and Sanjeev Kumar and Jaswinder Pal Singh
and Kai Li. The PARSEC Benchmark Suite: Characterization and
Architectural Implications. Technical Report TR-811-08,
Princeton University, January 2008
[2] Christian Bienia and Sanjeev Kumar and Kai Li. PARSEC vs.
SPLASH-2: A Quantitative Comparison of Two Multithreaded
Benchmark Suites on Chip-Multiprocessors. Technical Report
TR-818-08, Princeton University, March 2008
Open Discussion
Questions?