[PATCH 4/5] Update tables using booktabs and alternate-row coloring scheme

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From d60ffad87aa1fdbd34e224437e4275c672cb3be1 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@xxxxxxxxx>
Date: Sun, 22 Oct 2017 22:59:35 +0900
Subject: [PATCH 4/5] Update tables using booktabs and alternate-row coloring scheme

Note: Some of complex or large tables have not touched yet.

Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx>
---
 SMPdesign/SMPdesign.tex            | 10 +++--
 appendix/questions/after.tex       | 25 +++++++++----
 appendix/styleguide/styleguide.tex | 14 ++++---
 count/count.tex                    | 50 +++++++++++++++----------
 cpu/overheads.tex                  | 76 +++++++++++++++++---------------------
 defer/rcuapi.tex                   | 16 ++++----
 defer/rcufundamental.tex           | 16 ++++----
 defer/rcuusage.tex                 | 10 +++--
 defer/whichtochoose.tex            | 27 +++++---------
 formal/spinhint.tex                | 68 +++++++++++++++++-----------------
 future/QC.tex                      | 75 +++++++++++++++++++------------------
 perfbook.tex                       |  1 +
 together/refcnt.tex                | 25 +++++++------
 13 files changed, 215 insertions(+), 198 deletions(-)

diff --git a/SMPdesign/SMPdesign.tex b/SMPdesign/SMPdesign.tex
index 2e5b69f..56eac22 100644
--- a/SMPdesign/SMPdesign.tex
+++ b/SMPdesign/SMPdesign.tex
@@ -1346,17 +1346,19 @@ as shown in
 Table~\ref{fig:app:questions:Schematic of Real-World Parallel Allocator}.
 
 \begin{table}[tbp]
-\footnotesize
+\rowcolors{1}{}{lightgray}
+\small
 \centering
 \renewcommand*{\arraystretch}{1.25}
-\setlength\tabcolsep{4pt}
-\begin{tabularx}{\twocolumnwidth}{l|l|>{\raggedright\arraybackslash}X}
+\begin{tabularx}{\twocolumnwidth}{ll>{\raggedright\arraybackslash}X}
+\toprule
 Level	& Locking & Purpose \\
-\hline
+\midrule
 Per-thread pool	  & Data ownership & High-speed allocation \\
 Global block pool & Data locking   & Distributing blocks among threads \\
 Coalescing	  & Data locking   & Combining blocks into pages \\
 System memory	  & Code locking   & Memory from/to system \\
+\bottomrule
 \end{tabularx}
 \caption{Schematic of Real-World Parallel Allocator}
 \label{fig:app:questions:Schematic of Real-World Parallel Allocator}
diff --git a/appendix/questions/after.tex b/appendix/questions/after.tex
index cea0791..4749a0a 100644
--- a/appendix/questions/after.tex
+++ b/appendix/questions/after.tex
@@ -138,11 +138,15 @@ columns labelled ``a'', ``b'', and ``c'' show the amount that these
 variables increased since the prior snapshot collected by the consumer.
 
 \begin{table}[htbp]
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.2}
+\sisetup{group-digits=false}
 \centering
 \scriptsize
-\begin{tabular}{rcrrrr}
-seq    & time (seconds) & delta~    &  a &  b &  c \\
-\hline
+\begin{tabular}{rS[table-format=7.6]rS[table-format=3.0]S[table-format=3.0]S[table-format=3.0]}
+\toprule
+seq    & \multicolumn{1}{c}{time (seconds)} & delta~  &  a &  b &  c \\
+\midrule
 17563: & 1152396.251585 & ($-16.928$) & 27 & 27 & 27 \\
 18004: & 1152396.252581 & ($-12.875$) & 24 & 24 & 24 \\
 18163: & 1152396.252955 & ($-19.073$) & 18 & 18 & 18 \\
@@ -150,6 +154,7 @@ seq    & time (seconds) & delta~    &  a &  b &  c \\
 19863: & 1152396.256960 & ($-6.914$) & 18 & 18 & 18 \\
 21644: & 1152396.260959 & ($-5.960$) & 18 & 18 & 18 \\
 23408: & 1152396.264957 & ($-20.027$) & 15 & 15 & 15 \\
+\bottomrule
 \end{tabular}
 \caption{``After'' Program Sample Output}
 \label{tab:app:questions:After Program Sample Output}
@@ -219,13 +224,17 @@ there are only cases with more than 1,000 counts difference between
 consecutive reads by the consumer.
 
 \begin{table}[htbp]
+\renewcommand*{\arraystretch}{1.2}
+\sisetup{group-digits=false}
 \centering
 \scriptsize
-\begin{tabular}{rcrrrr}
-seq    & time (seconds) & delta~    &  a &  b &  c \\
-\hline
-58597:  & 1156521.556296 & (3.815) & 1485 & 1485 & 1485 \\
-403927: & 1156523.446636 & (2.146) & 2583 & 2583 & 2583 \\
+\begin{tabular}{rS[table-format=7.6]rS[table-format=4.0]S[table-format=4.0]S[table-format=4.0]}
+\toprule
+seq    & \multicolumn{1}{c}{time (seconds)} & delta~  &  a &  b &  c \\
+\midrule
+58597:  & 1156521.556296 & ($3.815$) & 1485 & 1485 & 1485 \\
+403927: & 1156523.446636 & ($2.146$) & 2583 & 2583 & 2583 \\
+\bottomrule
 \end{tabular}
 \caption{Locked ``After'' Program Sample Output}
 \label{fig:app:questions:Locked After Program Sample Output}
diff --git a/appendix/styleguide/styleguide.tex b/appendix/styleguide/styleguide.tex
index 14fd620..024270c 100644
--- a/appendix/styleguide/styleguide.tex
+++ b/appendix/styleguide/styleguide.tex
@@ -268,14 +268,18 @@ Table~\ref{tab:app:styleguide:Digit-Grouping Style}.
 \begin{tabular}{lrrr}\toprule
   Style & \multicolumn{3}{c}{Outputs of \co{\\num\{\}}} \\
   \midrule
-  NIST/SI (English) & \num{\NumDigitGrpA} & \num{\NumDigitGrpB} & \num{\NumDigitGrp} \\
-  SI (French) & \num[locale=FR]{\NumDigitGrpA} &
-    \num[locale=FR]{\NumDigitGrpB} & \num[locale=FR]{\NumDigitGrp} \\
+  NIST/SI (English) & \num[group-separator={\,},group-digits=integer]{\NumDigitGrpA} &
+    \num[group-separator={\,},group-digits=integer]{\NumDigitGrpB} &
+      \num[group-separator={\,},group-digits=integer]{\NumDigitGrp} \\
+  SI (French) & \num[locale=FR,group-separator={\,}]{\NumDigitGrpA} &
+    \num[locale=FR,group-separator={\,}]{\NumDigitGrpB} &
+      \num[locale=FR,group-separator={\,}]{\NumDigitGrp} \\
   English & \num[group-separator={,},group-digits=integer]{\NumDigitGrpA} &
     \num[group-separator={,},group-digits=integer]{\NumDigitGrpB} &
       \num[group-separator={,},group-digits=integer]{\NumDigitGrp} \\
-  French & \num[locale=FR]{\NumDigitGrpA} &
-    \num[locale=FR]{\NumDigitGrpB} & \num[locale=FR]{\NumDigitGrp} \\
+  French & \num[locale=FR,group-separator={\,}]{\NumDigitGrpA} &
+    \num[locale=FR,group-separator={\,}]{\NumDigitGrpB} &
+      \num[locale=FR,group-separator={\,}]{\NumDigitGrp} \\
   Other Europe & \num[group-separator={.},output-decimal-marker={,},group-digits=integer]{\NumDigitGrpA} &
     \num[group-separator={.},output-decimal-marker={,},group-digits=integer]{\NumDigitGrpB} &
       \num[group-separator={.},output-decimal-marker={,},group-digits=integer]{\NumDigitGrp} \\
diff --git a/count/count.tex b/count/count.tex
index c35c7c2..9a4835d 100644
--- a/count/count.tex
+++ b/count/count.tex
@@ -3313,22 +3313,27 @@ will expand on these lessons.
 \label{sec:count:Parallel Counting Performance}
 
 \begin{table*}
+\rowcolors{4}{}{lightgray}
+\renewcommand*{\arraystretch}{1.1}
 \small
 \centering
-\begin{tabular}{l|r|r|r|r}
-	& & & \multicolumn{2}{c}{Reads} \\
-	\cline{4-5}
-	Algorithm & Section & Updates & 1 Core & 32 Cores \\
-	\hline
-	\hline
+\begin{tabular}{lrS[table-format = 2.1]S[table-format = 3.0]S[table-format = 5.0]}
+	\toprule
+	& & & \multicolumn{2}{c}{Reads (ns)} \\
+	\cmidrule{4-5}
+	Algorithm & Section & \multicolumn{1}{r}{Updates (ns)} &
+				    \multicolumn{1}{r}{1 Core} &
+					\multicolumn{1}{r}{32 Cores} \\
+        \midrule
 	\path{count_stat.c} & \ref{sec:count:Array-Based Implementation} &
-		11.5 ns & 408 ns & 409 ns \\
+		11.5 & 408 &    409 \\
 	\path{count_stat_eventual.c} & \ref{sec:count:Eventually Consistent Implementation} &
-		11.6 ns & 1 ns & 1 ns \\
+		11.6 &   1 &      1 \\
 	\path{count_end.c} & \ref{sec:count:Per-Thread-Variable-Based Implementation} &
-		6.3 ns & 389 ns & 51,200 ns \\
+		 6.3 & 389 & 51 200 \\
 	\path{count_end_rcu.c} & \ref{sec:together:RCU and Per-Thread-Variable-Based Statistical Counters} &
-		5.7 ns & 354 ns & 501 ns \\
+		 5.7 & 354 &    501 \\
+	\bottomrule
 \end{tabular}
 \caption{Statistical Counter Performance on \Power{6}}
 \label{tab:count:Statistical Counter Performance on Power-6}
@@ -3393,22 +3398,27 @@ courtesy of eventual consistency.
 } \QuickQuizEnd
 
 \begin{table*}
+\rowcolors{4}{}{lightgray}
+\renewcommand*{\arraystretch}{1.1}
 \small
 \centering
-\begin{tabular}{l|r|c|r|r|r}
-	& & & & \multicolumn{2}{c}{Reads} \\
-	\cline{5-6}
-	Algorithm & Section & Exact? & Updates & 1 Core & 64 Cores \\
-	\hline
-	\hline
+\begin{tabular}{lrcS[table-format = 2.1]S[table-format = 3.0]S[table-format = 5.0]}
+	\toprule
+	& & & & \multicolumn{2}{c}{Reads (ns)} \\
+	\cmidrule{5-6}
+	Algorithm & Section & Exact? & \multicolumn{1}{r}{Updates (ns)} &
+					\multicolumn{1}{r}{1 Core} &
+					 \multicolumn{1}{r}{64 Cores} \\
+	\midrule
 	\path{count_lim.c} & \ref{sec:count:Simple Limit Counter Implementation} &
-		N & 3.6 ns & 375 ns & 50,700 ns \\
+		N &  3.6 & 375 & 50 700 \\
 	\path{count_lim_app.c} & \ref{sec:count:Approximate Limit Counter Implementation} &
-		N & 11.7 ns & 369 ns & 51,000 ns \\
+		N & 11.7 & 369 & 51 000 \\
 	\path{count_lim_atomic.c} & \ref{sec:count:Atomic Limit Counter Implementation} &
-		Y & 51.4 ns & 427 ns & 49,400 ns \\
+		Y & 51.4 & 427 & 49 400 \\
 	\path{count_lim_sig.c} & \ref{sec:count:Signal-Theft Limit Counter Implementation} &
-		Y & 10.2 ns & 370 ns & 54,000 ns \\
+		Y & 10.2 & 370 & 54 000 \\
+	\bottomrule
 \end{tabular}
 \caption{Limit Counter Performance on \Power{6}}
 \label{tab:count:Limit Counter Performance on Power-6}
diff --git a/cpu/overheads.tex b/cpu/overheads.tex
index 74fed94..bd4c814 100644
--- a/cpu/overheads.tex
+++ b/cpu/overheads.tex
@@ -124,30 +124,27 @@ optimization.
 \label{sec:cpu:Costs of Operations}
 
 \begin{table}
-\small
-\centering
-\begin{tabular}{l||r|r}
-				& 	 	& Ratio \\
-	Operation		& Cost (ns) 	& (cost/clock) \\
-	\hline
-	\hline
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.1}
+\centering\small
+\begin{tabular}
+  {
+    l
+    S[table-format = 9.1]
+    S[table-format = 9.1]
+  }
+	\toprule
+	Operation		& \multicolumn{1}{r}{Cost (ns)}
+			& {\parbox[b]{.7in}{\raggedleft Ratio\\(cost/clock)}} \\
+	\midrule
 	Clock period		&           0.6	&           1.0 \\
-	\hline
 	Best-case CAS		&          37.9	&          63.2 \\
-	\hline
 	Best-case lock		&          65.6	&         109.3 \\
-	\hline
 	Single cache miss	&         139.5	&         232.5 \\
-	\hline
 	CAS cache miss		&         306.0	&         510.0 \\
-	\hline
-	Comms Fabric		&       5,000\textcolor{white}{.0}
-						&       8,330\textcolor{white}{.0}
-								\\
-	\hline
-	Global Comms		& 195,000,000\textcolor{white}{.0}
-						& 325,000,000\textcolor{white}{.0} \\
-								\\
+	Comms Fabric		&       5 000	&       8 330	\\
+	Global Comms		& 195 000 000	& 325 000 000   \\
+	\bottomrule
 \end{tabular}
 \caption{Performance of Synchronization Mechanisms on 4-CPU 1.8\,GHz AMD Opteron 844 System}
 \label{tab:cpu:Performance of Synchronization Mechanisms on 4-CPU 1.8GHz AMD Opteron 844 System}
@@ -211,40 +208,35 @@ global agreement.
 	\end{enumerate}
 
 \begin{table}
-\small
-\centering
-\begin{tabular}{l||r|r}
-				& 	 	& Ratio \\
-	Operation		& Cost (ns) 	& (cost/clock) \\
-	\hline
-	\hline
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.1}
+\centering\small
+\begin{tabular}
+  {
+    l
+    S[table-format = 9.1]
+    S[table-format = 9.1]
+  }
+	\toprule
+	Operation		& \multicolumn{1}{r}{Cost (ns)}
+			& {\parbox[b]{.7in}{\raggedleft Ratio\\(cost/clock)}} \\
+	\midrule
 	Clock period		&           0.4	&           1.0 \\
-	\hline
 	``Best-case'' CAS	&          12.2	&          33.8 \\
-	\hline
 	Best-case lock		&          25.6	&          71.2 \\
-	\hline
 	Single cache miss	&          12.9	&          35.8 \\
-	\hline
 	CAS cache miss		&           7.0	&          19.4 \\
-	\hline
+	\midrule
 	Off-Core		&		&		\\
-	\hline
 	Single cache miss	&          31.2	&          86.6 \\
-	\hline
 	CAS cache miss		&          31.2	&          86.5 \\
-	\hline
+	\midrule
 	Off-Socket		&		&		\\
-	\hline
 	Single cache miss	&          92.4	&         256.7 \\
-	\hline
 	CAS cache miss		&          95.9	&         266.4 \\
-	\hline
-	Comms Fabric		&       2,600\textcolor{white}{.0}
-						&	7,220\textcolor{white}{.0} \\
-	\hline
-	Global Comms		& 195,000,000\textcolor{white}{.0}
-						& 542,000,000\textcolor{white}{.0} \\
+	Comms Fabric		&       2 600   &       7 220   \\
+	Global Comms		& 195 000 000	& 542 000 000   \\
+	\bottomrule
 \end{tabular}
 \caption{Performance of Synchronization Mechanisms on 16-CPU 2.8\,GHz Intel X5550 (Nehalem) System}
 \label{tab:cpu:Performance of Synchronization Mechanisms on 16-CPU 2.8GHz Intel X5550 (Nehalem) System}
diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex
index 6b4337a..874b8b1 100644
--- a/defer/rcuapi.tex
+++ b/defer/rcuapi.tex
@@ -460,20 +460,21 @@ the memory-ordering models of each of the 20+ CPU families
 that Linux supports~\cite{Spraul01}.
 
 \begin{table*}[tb]
+\renewcommand*{\arraystretch}{1.15}
 \footnotesize
 \centering
-\begin{tabular}{l|l|l|p{1.2in}}
+\begin{tabular}{lllp{1.2in}}
+\toprule
 Category &
 	Primitives &
 		Availability &
 			Overhead \\
-\hline
-\hline
+\midrule
 List traversal &
 	\tco{list_for_each_entry_rcu()} &
 		2.5.59 &
 			Simple instructions (memory barrier on Alpha) \\
-\hline
+\midrule
 List update &
 	\tco{list_add_rcu()} &
 		2.5.44 &
@@ -494,7 +495,7 @@ List update &
 	\tco{list_splice_init_rcu()} &
 		2.6.21 &
 			Grace-period latency \\
-\hline
+\midrule
 Hlist traversal &
 	\tco{hlist_for_each_entry_rcu()} &
 		2.6.8 &
@@ -519,16 +520,17 @@ Hlist traversal &
 	\tco{hlist_replace_rcu()} &
 		2.6.15 &
 			Memory barrier \\
-\hline
+\midrule
 Pointer traversal &
 	\tco{rcu_dereference()} &
 		2.6.9 &
 			Simple instructions (memory barrier on Alpha) \\
-\hline
+\midrule
 Pointer update &
 	\tco{rcu_assign_pointer()} &
 		2.6.10 &
 			Memory barrier \\
+\bottomrule
 \end{tabular}
 \caption{RCU Publish-Subscribe and Version Maintenance APIs}
 \label{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs}
diff --git a/defer/rcufundamental.tex b/defer/rcufundamental.tex
index a500f51..27c6421 100644
--- a/defer/rcufundamental.tex
+++ b/defer/rcufundamental.tex
@@ -380,30 +380,32 @@ circular list:
 \vspace{5pt}
 
 \begin{table*}[tb]
+\renewcommand*{\arraystretch}{1.2}
 \centering
-\scriptsize
-\begin{tabular}{l||l|l|l}
+\footnotesize
+\begin{tabular}{llll}
+\toprule
 Category  & Publish	& Retract	& Subscribe \\
-\hline
-\hline
+\midrule
 Pointers  & \tco{rcu_assign_pointer()}
 			& \tco{rcu_assign_pointer(..., NULL)}
 					& \tco{rcu_dereference()} \\
-\hline
+\midrule
 Lists     & \parbox[c][0.37in][c]{1.3in}{
 		\co{list_add_rcu()} \\
 		\co{list_add_tail_rcu()} \\
 		\co{list_replace_rcu()} }
 			& \tco{list_del_rcu()}
 					& \tco{list_for_each_entry_rcu()} \\
-\hline
+\midrule
 Hlists    & \parbox[c][0.5in][c]{1.3in}{
 		\co{hlist_add_after_rcu()} \\
 		\co{hlist_add_before_rcu()}  \\
 		\co{hlist_add_head_rcu()} \\
 		\co{hlist_replace_rcu()} }
 			& \tco{hlist_del_rcu()}
-					& \tco{hlist_for_each_entry_rcu()}
+					& \tco{hlist_for_each_entry_rcu()} \\
+\bottomrule
 \end{tabular}
 \caption{RCU Publish and Subscribe Primitives}
 \label{tab:defer:RCU Publish and Subscribe Primitives}
diff --git a/defer/rcuusage.tex b/defer/rcuusage.tex
index 9ad1a1e..499c6bd 100644
--- a/defer/rcuusage.tex
+++ b/defer/rcuusage.tex
@@ -5,12 +5,13 @@
 \OriginallyPublished{Section}{sec:defer:RCU Usage}{RCU Usage}{Linux Weekly News}{PaulEMcKenney2008WhatIsRCUUsage}
 
 \begin{table}[tb]
+\renewcommand*{\arraystretch}{1.2}
 \centering
-\scriptsize
-\begin{tabular}{l|l}
+\small
+\begin{tabular}{ll}
+\toprule
 Mechanism RCU Replaces & Section \\
-\hline
-\hline
+\midrule
 Reader-writer locking &
 	Section~\ref{sec:defer:RCU is a Reader-Writer Lock Replacement} \\
 Restricted reference-counting mechanism &
@@ -25,6 +26,7 @@ Type-Safe Memory &
 	Section~\ref{sec:defer:RCU is a Way of Providing Type-Safe Memory} \\
 Wait for things to finish &
 	Section~\ref{sec:defer:RCU is a Way of Waiting for Things to Finish} \\
+\bottomrule
 \end{tabular}
 \caption{RCU Usage}
 \label{tab:defer:RCU Usage}
diff --git a/defer/whichtochoose.tex b/defer/whichtochoose.tex
index 0b716ef..95d82b4 100644
--- a/defer/whichtochoose.tex
+++ b/defer/whichtochoose.tex
@@ -5,88 +5,81 @@
 \label{sec:defer:Which to Choose?}
 
 \begin{table*}
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.25}
 \footnotesize
 \centering\OneColumnHSpace{-.3in}
-\begin{tabularx}{5.3in}{>{\raggedright\arraybackslash}p{1.1in}||
-    >{\raggedright\arraybackslash}p{1.2in}|
-    >{\raggedright\arraybackslash}X|
-    >{\raggedright\arraybackslash}X|
+\begin{tabularx}{5.3in}{>{\raggedright\arraybackslash}p{1.1in}
+    >{\raggedright\arraybackslash}p{1.2in}
+    >{\raggedright\arraybackslash}X
+    >{\raggedright\arraybackslash}X
     >{\raggedright\arraybackslash}p{.9in}}
-
+	\toprule
+	Property
 		& Reference Counting
 			& Hazard Pointers
 				& Sequence Locks
 					& RCU \\
-	\hline
 %		  RC	  HP	  SL	  RCU \\
-	\hline
+	\midrule
 	Existence Guarantees
 		& Complex
 			& Yes
 				& No
 					& Yes \\
-	\hline
 	Updates and Readers Progress Concurrently
 		& Yes
 			& Yes
 				& No
 					& Yes \\
-	\hline
 	Contention Among Readers
 		& High
 			& None
 				& None
 					& None \\
-	\hline
 	Reader Per\-/Critical\-/Section Overhead
 		& N/A
 			& N/A
 				& Two \tco{smp_mb()}
 					& Ranges from none to two
 					  \tco{smp_mb()} \\
-	\hline
 	Reader Per-Object Traversal Overhead
 		& Read-modify-write atomic operations, memory\-/barrier
 		  instructions, and cache misses
 			& \tco{smp_mb()}
 				& None, but unsafe
 					& None (volatile accesses) \\
-	\hline
 	Reader Forward Progress Guarantee
 		& Lock free
 			& Lock free
 				& Blocking
 					& Bounded wait free \\
-	\hline
 	Reader Reference Acquisition
 		& Can fail (conditional)
 			& Can fail (conditional)
 				& Unsafe
 					& Cannot fail (unconditional) \\
-	\hline
 	Memory Footprint
 		& Bounded
 			& Bounded
 				& Bounded
 					& Unbounded \\
-	\hline
 	Reclamation Forward Progress
 		& Lock free
 			& Lock free
 				& N/A
 					& Blocking \\
-	\hline
 	Automatic Reclamation
 		& Yes
 			& No
 				& N/A
 					& No \\
-	\hline
 	Lines of Code
 		& 94
 			& 79
 				& 79
 					& 73 \\
+	\bottomrule
 \end{tabularx}
 \caption{Which Deferred Technique to Choose?}
 \label{tab:defer:Which Deferred Technique to Choose?}
diff --git a/formal/spinhint.tex b/formal/spinhint.tex
index ff33839..2d04b80 100644
--- a/formal/spinhint.tex
+++ b/formal/spinhint.tex
@@ -348,25 +348,24 @@ of the state space, as shown in
 Listing~\ref{lst:analysis:Atomic Increment spin Output}.
 
 \begin{table}
-\footnotesize
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.2}
+\small
 \centering
-\begin{tabular}{c|r|r}
-	\# incrementers & \# states &	megabytes \\
-	\hline
-	\hline
+\begin{tabular}{S[table-format = 1.0]S[table-format = 7.0]S[table-format = 3.1]}
+	\toprule
+	\multicolumn{1}{l}{\# incrementers} &
+		\multicolumn{1}{r}{\# states} &
+			\multicolumn{1}{r}{megabytes} \\
+	\midrule
 	1 &		        11 &          2.6 \\
-	\hline
 	2 &		        52 &          2.6 \\
-	\hline
 	3 &		       372 &          2.6 \\
-	\hline
-	4 &		     3,496 &          2.7 \\
-	\hline
-	5 &		    40,221 &          5.0 \\
-	\hline
-	6 &		   545,720 &         40.5 \\
-	\hline
-	7 &		 8,521,450 &        652.7 \\
+	4 &		     3 496 &          2.7 \\
+	5 &		    40 221 &          5.0 \\
+	6 &		   545 720 &         40.5 \\
+	7 &		 8 521 450 &        652.7 \\
+	\bottomrule
 \end{tabular}
 \caption{Memory Usage of Increment Model}
 \label{tab:advsync:Memory Usage of Increment Model}
@@ -1221,28 +1220,27 @@ cc -DSAFETY -o pan pan.c
 \vspace{5pt}
 
 \begin{table}
-\footnotesize
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.2}
+\small
 \centering
-\begin{tabular}{c|r|r|r}
-	updaters &
-	    readers &
-		   \# states & MB \\
-	\hline
+\begin{tabular}{S[table-format = 1.0]S[table-format = 1.0]S[table-format = 9.0]
+		S[table-format = 5.1]}
+	\toprule
+	\multicolumn{1}{r}{updaters} &
+	    \multicolumn{1}{r}{readers} &
+		\multicolumn{1}{r}{\# states} &
+		    \multicolumn{1}{r}{MB} \\
+	\midrule
 	1 & 1 &         376 &      2.6 \\
-	\hline
-	1 & 2 &       6,177 &      2.9 \\
-	\hline
-	1 & 3 &      82,127 &      7.5 \\
-	\hline
-	2 & 1 &      29,399 &      4.5 \\
-	\hline
-	2 & 2 &   1,071,180 &     75.4 \\
-	\hline
-	2 & 3 &  33,866,700 &  2,715.2 \\
-	\hline
-	3 & 1 &     258,605 &     22.3 \\
-	\hline
-	3 & 2 & 169,533,000 & 14,979.9 \\
+	1 & 2 &       6 177 &      2.9 \\
+	1 & 3 &      82 127 &      7.5 \\
+	2 & 1 &      29 399 &      4.5 \\
+	2 & 2 &   1 071 180 &     75.4 \\
+	2 & 3 &  33 866 700 &  2 715.2 \\
+	3 & 1 &     258 605 &     22.3 \\
+	3 & 2 & 169 533 000 & 14 979.9 \\
+	\bottomrule
 \end{tabular}
 \caption{Memory Usage of QRCU Model}
 \label{tab:advsync:Memory Usage of QRCU Model}
diff --git a/future/QC.tex b/future/QC.tex
index a053240..f470de5 100644
--- a/future/QC.tex
+++ b/future/QC.tex
@@ -125,34 +125,33 @@ QC systems have been making substantial Moore's-Law-style progress
 in a number of technical areas.
 
 \begin{table}
-\centering\footnotesize
-\begin{tabular}{l|r|r|r}
-	&	&	& Years per \\
+\renewcommand*{\arraystretch}{1.2}
+\rowcolors{1}{}{lightgray}
+\centering\small
+\begin{tabular}{lrS[table-format = 4.0]S[table-format = 1.1]}
+\toprule
 System
 	& Availability
-		& Qubits
-			& Doubling \\
-\hline
-\hline
+		& \multicolumn{1}{r}{Qubits}
+			& \multicolumn{1}{r}{\parbox[b]{.5in}{Years per\\Doubling}} \\
+\midrule
 D-Wave One
 	& May 2011
 		& 128
 			& 1.4 \\
-\hline
 D-Wave Two
 	& May 2013
 		& 512
 			& 1.9 \\
-\hline
 D-Wave 2X
 	& Aug 2015
 		& 1152
 			& 1.7 \\
-\hline
 D-Wave 2000Q
 	& Jan 2017
 		& 2048
-			& --- \\
+			& \multicolumn{1}{c}{$-$} \\
+\bottomrule
 \end{tabular}
 \caption{D-Wave Qubit Growth Rate}
 \label{tab:future:D-Wave Qubit Growth Rate}
@@ -645,20 +644,21 @@ to transport heat from a low temperature ($\TLo$) to a high temperature
 \end{equation}
 
 \begin{table}
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.25}
 \centering\footnotesize
-\begin{tabular}{p{1.7in}|p{0.95in}}
+\begin{tabular}{p{1.7in}p{0.95in}}
+\toprule
 Law of Thermodynamics
 	& English Translation \\
-\hline
-\hline
+\midrule
 Energy is conserved.
 	& Can't win! \\
-\hline
 Entropy increases in closed systems.
 	& Can't break even! \\
-\hline
 Entropy approaches a constant value as temperature approaches absolute zero.
 	& Can't leave the game! \\
+\bottomrule
 \end{tabular}
 \caption{The Three Laws of Thermodynamics}
 \label{tab:future:The Three Laws of Thermodynamics}
@@ -692,37 +692,36 @@ at low temperatures.\footnote{
 	a less daunting refrigeration barrier to QC-on-a-chip.}
 
 \begin{table}
-\centering\footnotesize
-\begin{tabular}{l|r|r|r}
-	&	&	& Power per watt \\
+\rowcolors{1}{}{lightgray}
+\renewcommand*{\arraystretch}{1.2}
+\centering\small
+\begin{tabular}{lS[table-format = 3.3]S[table-format = 1.6]S[table-format = 5.1]}
+\toprule
 Situation
-	& $T$ (K)
-		& $\CPf$ & waste heat (W) \\
-\hline
-\hline
+	& \multicolumn{1}{c}{$T$ (K)}
+		& \multicolumn{1}{c}{$\CPf$}
+			& \multicolumn{1}{r}{\parbox[b]{.75in}{Power per watt\\waste heat (W)}} \\
+\midrule
 Dry Ice
-	& $195$
-		& $1.990$
+	& 195
+		& 1.990
 			& 0.5 \\
-\hline
 Liquid N$_2$
-	& $77$
-		& $0.356$
+	& 77
+		& 0.356
 			& 2.8 \\
-\hline
 Liquid H$_2$
-	& $20$
-		& $0.073$
+	& 20
+		& 0.073
 			& 13.7 \\
-\hline
 Liquid He
-	& $4$
-		& $0.0138$
+	& 4
+		& 0.0138
 			& 72.3 \\
-\hline
-IBM~Q	& $0.015$
-		& $0.000051$
-			& 19,500.0 \\
+IBM~Q	& 0.015
+		& 0.000051
+			& 19 500.0 \\
+\bottomrule
 \end{tabular}
 \caption{Refrigeration Power Consumption}
 \label{tab:future:Refrigeration Power Consumption}
diff --git a/perfbook.tex b/perfbook.tex
index 93d2253..32f0e6d 100644
--- a/perfbook.tex
+++ b/perfbook.tex
@@ -56,6 +56,7 @@
 \usepackage[xspace]{ellipsis}
 \usepackage{braket} % for \ket{} macro in QC section
 \usepackage{siunitx} % for \num{} macro
+\sisetup{group-minimum-digits=4,group-separator={,},group-digits=integer}
 
 % custom packages
 
diff --git a/together/refcnt.tex b/together/refcnt.tex
index 8a7fa1d..cc04367 100644
--- a/together/refcnt.tex
+++ b/together/refcnt.tex
@@ -65,21 +65,24 @@ locking, and RCU.
 } \QuickQuizEnd
 
 \begin{table}[tb]
-\footnotesize
+\renewcommand*{\arraystretch}{1.25}
+\rowcolors{3}{}{lightgray}
+\small
 \centering
-\begin{tabular}{l||c|c|c}
+\begin{tabular}{lccc}
+	\toprule
 	& \multicolumn{3}{c}{Release Synchronization} \\
-	\cline{2-4}
-	Acquisition     &         & Reference &     \\
-	Synchronization & Locking & Counting  & RCU \\
-	\hline
-	\hline
+	\cmidrule(l){2-4}
+	\parbox[c]{.8in}{Acquisition\\Synchronization}
+			& Locking
+				& \parbox[c]{.5in}{Reference\\Counting}
+				        & RCU \\
+	\cmidrule{1-1} \cmidrule(l){2-4}
 	Locking		& $-$	  & CAM	      & CA  \\
-	\hline
-	Reference	& A	  & AM	      & A   \\
-	Counting	&  	  &   	      &     \\
-	\hline
+	\parbox[c][6ex]{.8in}{Reference\\Counting}
+			& A	  & AM        & A   \\
 	RCU		& CA	  & MCA	      & CA  \\
+	\bottomrule
 \end{tabular}
 \caption{Reference Counting and Synchronization Mechanisms}
 \label{tab:together:Reference Counting and Synchronization Mechanisms}
-- 
2.7.4


--
To unsubscribe from this list: send the line "unsubscribe perfbook" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux