-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathreport.tex
168 lines (143 loc) · 5.74 KB
/
report.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\title{OpenSHMEM Performance Results}
\author{
\input{version.dat} \\
\input{git.dat}
}
\maketitle
\begin{abstract}
This is an automatically generated performance report for the
\input{version.dat} implementation of OpenSHMEM on \input{pes.dat} processing
elements.
\end{abstract}
\section{Introduction} \label{sec:intro}
The OpenSHMEM performance results have been generated automatically for the
\input{version.dat} in this report for \input{pes.dat} processing elements
(PEs). Many of the figures in the Remote Memory Access (Section~\ref{sec:rma})
and Collective Routines (Section~\ref{sec:collective}) sections include
parameters \(\alpha\) and \(\beta^{-1}\) in the figure along with their
standard deviations. These two parameters are from the ``\(\alpha\)-\(\beta\)
model'' for communication in HPC. They summarize the communication time
(\(T_c\)) to include the latency (\(\alpha\)) and marginal cost (\(\beta\)) to
transfer a message (of size \(L\)) in equation~\ref{eq:comm}. The
\(\beta^{-1}\) parameter is the peak effective core bandwidth for the routine.
\begin{equation}
T_c = \alpha + \beta \cdot L
\label{eq:comm}
\end{equation}
\section{Remote Memory Access} \label{sec:rma}
Figures~\ref{fig:get}-\ref{fig:get_ipi} show the performance contiguous data
exchange operations defined within the OpenSHMEM API. All routines are
one-sided communication mechanisms. One-sided communication has the benefit
that it decouples the communication from synchronization, enabling more
opportunities for asynchronous communication and computation, thereby
increasing parallel application performance. Each routine operates on symmetric
objects, either global synbols, statically defined, or allocated with the
OpenSHMEM memory management routines \texttt{shmem\_malloc}, or
\texttt{shmem\_align}.
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{put.pdf}
\caption{Performance of optimized \texttt{shmem\_putmem}
contiguous data exchange operations for all PEs.}
\label{fig:put}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{put_nb.pdf}
\label{fig:put_nb}
\caption{Performance of optimized \texttt{shmem\_putmem\_nbi} and subsequent
call to \texttt{shmem\_quiet}, demonstrating contiguous data exchange
operations for all PEs.}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{get.pdf}
\caption{Performance of optimized \texttt{shmem\_getmem}
contiguous data exchange operations for all PEs.}
\label{fig:get}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{get_nb.pdf}
\caption{Performance of optimized \texttt{shmem\_getmem\_nbi} and subsequent
call to \texttt{shmem\_quiet}, demonstrating contiguous data exchange
operations for all PEs.}
\label{fig:get_nb}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{get_ipi.pdf}
\caption{Performance of experimental inter-processor user interrupt for
high-performance \texttt{shmem\_getmem}. The requesting PE causes an interrupt
on the remote core, forcing the remote core to write data to the requesting
core.}
\label{fig:get_ipi}
\end{figure}
\section{Atomic Memory Operations} \label{sec:atomic}
Figure \ref{fig:atomics} shows the performance of the atomic memory operations.
Atomic memory operations are one-sided operations with atomicity guarantees so
that multiple PEs have exclusive access to the symmetric, shared value.
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{atomics.pdf}
\caption{Performance of \mbox{OpenSHMEM} atomic operations for 32-bit
integers and a variable number of processing elements. Atomic operations are
performed in a tight loop on the next neighboring PE.}
\label{fig:atomics}
\end{figure}
\section{Collective Routines} \label{sec:collective}
Figures~\ref{fig:alltoall64}-\ref{fig:reduce} show the performance for
communication or synchronization on a group of PEs within an Active set.
Collective routines require all PEs in the Active set to simultaneously call
the routine. Reductions perform arithmetic and logical operations across an
Active set of PEs. Figure \ref{fig:reduce} shows an example of one such
reduction operation.
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{alltoall64.pdf}
\caption{Performance of the new (to version~1.3) contiguous all-to-all data
exchange operation, \texttt{shmem\_alltoall64}, for all PEs.}
\label{fig:alltoall64}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{barrier.pdf}
\caption{Performance of \texttt{shmem\_barrier} for variable number of
processing elements.}
\label{fig:barrier}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{collect64.pdf}
\caption{Performance of linear scaling \texttt{shmem\_collect64} for
variable message sizes on all PEs.}
\label{fig:collect64}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{broadcast64.pdf}
\caption{Performance of \texttt{shmem\_broadcast64} for variable message
sizes.}
\label{fig:broadcast64}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{fcollect64.pdf}
\caption{Performance of recursive doubling \texttt{shmem\_fcollect64} for
variable message sizes on all PEs.}
\label{fig:fcollect64}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{reduce.pdf}
\caption{Reduction performance for \texttt{shmem\_int\_sum\_to\_all} for all
PEs. The latency and the number of collective reductions per second are shown.
The effect of the minimum symmetric work array size for reductions, defined as
\texttt{SHMEM\_REDUCE\_MIN\_WRKDATA\_SIZE} per the \mbox{OpenSHMEM}
specification, is apparent for small reductions.}
\label{fig:reduce}
\end{figure}
\end{document}