Scalable Computational Methods in Quantum Field Theory

Scalable Computational Methods
in Quantum Field Theory
Jason Slaunwhite
Computer Science and Physics
Senior Project
Advisors: Hemmendinger, Reich, Hiller
(UMD)
Outline
• Context / Background
• Design
• Optimization
– Compiler
– Data Structures
• Parallel
• Summary
Context (1)
• Physical Model
QED picture
not QCD, particle
exchange
– Strong Force
• Yukawa Theory
– Quantum field thoery
• Interactions = particle
exchanges
• Gauge Bosons
• Eigenvalue Problem
– Common ex: rotation
– Form:
Ax = lx
Matrix
Vector
Scalar
Z
Eigenvector
Rotation
About z
xy-plane
Context (2)
• Formulation of
Eigenvalue Problem
– Discrete - Hiller
– Basis Function
Expansion Slaunwhite
y
y
y = f(x)
x
Basis Function Expansion
y
y = Gm (x)
+
discrete
Ax = lx
y
y = Gn (x)
x
f(x) = a*Gn (x) + b* Gm (x) + …
x
Ax = lx
x
Context (3)
• Is BFE a good
method for solving the
eigenvalue problem?
Coupling vs. Number of basis functions
3.45
– Is it scalable?
• Time dependence of
computational methods
2.45
g
• Convergence of
eigenvalues as w/
increasing # of
functions
2.95
1.95
convergence
1.45
0.95
0
2
4
6
8
10
Num ber of Basis Functions
12
14
Design (1)
Input
Calc Matrix
Solve
(Diagonalize)
easy
• What does the program do?
– Input Parameters
– Calculate each independent matrix elements
– Solve (Diagonalize the matrix)
• Structure Reflects Mathematics
libraries
Design (2)
Level 1
Input
Calc Matrix
Diagonalize
(solve)
Level 2
Integrate
Integrate
Integrate
Kernel
Kernel
Level 3
Kernel
Review
• Quantum Field
Theory Model of the
strong force
• Eigenvalue problem
• Programming work:
calculate the matrix
elements.
• How did I optimize it?
• Can it run in parallel?
Ax = lx
Matrix
Vector
Scalar
The program
Optimization - Compiler
• g++ -03
12000
- Unoptimized
- Optimized
10000
8000
Time (s)
• Simple
• Adds compile time
• Very Effective!
Time as a function of Size
6000
4000
2000
0
0
2
4
6
8
Numfun
10
12
14
Optimization – Data Structures
…
• Naïve approach
smart
• Storage vs. Time
– Precompute values
outside of element
iteration
– Need organized way to
index the values
Compute library
Values
Trade-off
For each row
For each col
Calculate element
Compute library
Values
(naïve)
Naïve
…
Optimization Results
Key:
-- naïve
-- data structure
-- data structure
+ compiler
Tim e as a function of Size
12000
y=57x2
10000
2
y=146x
Time (s)
8000
Slopes: red/yellow
= 2.56
6000
2
y=25x
4000
Slopes: yellow/green
= 2.28
2000
0
0
5
10
Num fun
15
Slopes: red/green
= 5.84
Parallel Design
• Matrix elements
independent
• Split computation
across many
processors
Ax = lx
=l
Work in progress - Paralellization
• OpenMP libraries
• IBM SP – MSI
– Slower processors, but
more of them and
more memory
• Work in progress
From http://www.ibm.com
The IBM SP consists of 96
shared-memory nodes with a
total of 376 processors and
616 GB of memory
Summary
Parallel?
Ax = lx
Tim e as a function of Size
12000
y=57x2
10000
2
y=146x
Time (s)
8000
6000
2
y=25x
4000
2000
0
0
5
10
Num fun
The program
g++ -03
15