annotate Paper/memo.txt @ 35:6e50f1c7f914

add some pdf files
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Nov 2011 03:51:28 +0900
parents b97cc8bbc20a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
1 \begin{figure}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
2 \begin{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
3 \lstinputlisting[language=c]{source/factorial.cbc}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
4 \caption{階上を計算する CbC プログラムの例}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
5 \label{fig:factorial}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
6 \end{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
7 \end{figure}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
8
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
9
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
10
13
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \begin{figure}[h]
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \begin{minipage}[b]{.45\textwidth}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \begin{lstlisting}[caption=CbCコード例,label=code:CbC-example]
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 __code print_factorial(int prod)
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 {
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 printf("factorial = %d\n",prod);
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 exit(0);
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 __code factorial0(int prod, int x)
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 {
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 if ( x >= 1) {
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 goto factorial0(prod*x, x-1);
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }else{
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 goto print_factorial(prod);
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 __code factorial(int x)
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 {
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 goto factorial0(1, x);
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 \end{lstlisting}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 \end{minipage}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 \hfill
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 \end{figure}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 \begin{table}[htpb]
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 \centering
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 \begin{tabular}{|c|c|c|c|c|} \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 & \multicolumn{3}{c|}{GCC-4.4} & \multirow{2}{*}{micro-c} \\ \cline{2-4}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 &最適化なし&速度最適化&サイズ最適化& \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 x86/Linux & 7.378 & 3.252 & & 2.890 \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 i386/OS X & 3.890 & 1.827 & & 2.288 \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 x86\_64/OS X & 4.078 & 1.101 & & \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 \end{tabular}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 \label{tab:speed-mc-vs-gcc-4.4}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \end{table}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 \begin{table}[htpb]
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 \centering
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 \begin{tabular}{|c|c|c|c|c|} \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} }
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 & \multicolumn{3}{c|}{GCC-4.6} & \multirow{2}{*}{micro-c} \\ \cline{2-4}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 &最適化なし&速度最適化&サイズ最適化& \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 x86/Linux & 0.829 & 1.768 & & 2.890 \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 i386/OS X & 0.38 & 0.934 & & 2.288 \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 x86\_64/OS X & 0.45 8 & 2.896 & & \\ \hline
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 \end{tabular}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \label{tab:speed-mc-vs-gcc-4.6}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 \end{table}
b97cc8bbc20a remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
35
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
64
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
65 \begin{figure}[h]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
66 %\begin{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
67 \begin{minipage}[b]{.45\textwidth}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
68 \begin{lstlisting}[caption=スタックの上書きが起こる継続の例,label=code:cs_prog]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
69 __code cs_a(int a, int b) {
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
70 goto cs_b(b, a)
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
71 }
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
72 \end{lstlisting}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
73 \end{minipage}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
74 \hfill
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
75 %\end{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
76 \end{figure}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
77
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
78 \begin{verbatim}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
79 __code c1(__code ret(int,void *),void *env) {
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
80 goto ret(1,env);
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
81 }
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
82
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
83 int main() {
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
84 goto c1(__return, __environment);
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
85 }
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
86 \end{verbatim}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
87
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
88 \begin{figure}[h]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
89 \begin{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
90 \begin{minipage}[b]{.45\textwidth}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
91 \begin{lstlisting}[caption=環境付き継続を行うコード,label=code:_ret_val]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
92 __label__ _cbc_exit0;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
93 static int retval;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
94 void _cbc_internal_return(int retval_,
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
95 void *_envp){
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
96 retval = retval_;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
97 goto _cbc_exit0;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
98 }
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
99 if (0) {
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
100 _cbc_exit0:
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
101 return retval;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
102 }
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
103 _cbc_internal_return;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
104 \end{lstlisting}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
105 \end{minipage}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
106 \hfill
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
107 \end{footnotesize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
108 \end{figure}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
109
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
110
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
111 \begin{figure}[h]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
112 \begin{minipage}[b]{.45\textwidth}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
113 \begin{lstlisting}[caption=typedefrecの例,label=code:typedefrec]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
114 typedefrec void *funcA(int, funcA);
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
115
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
116 typedefrec struct {
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
117 NODE left;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
118 NODE right;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
119 } *NODE;
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
120 \end{lstlisting}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
121 \end{minipage}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
122 \hfill
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
123 \end{figure}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
124
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
125
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
126
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
127
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
128 また,比較を行うプログラムは最適化(-O0 オプション)を行わないものと,
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
129 速度最適化(-O2 -fomit-frame-pointer)を行うものの2つ,
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
130 それと -m32 オプションと -m64 オプションをつけたものそれぞれで行う.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
131
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
132 表\ref{tab:speed-mc-vs-gcc-nonopt}が最適化無し,
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
133 表\ref{tab:speed-mc-vs-gcc-opt}が速度最適化有りとなる.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
134
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
135
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
136 \begin{table}[htpb]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
137 \centering
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
138 \small
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
139 \begin{tabular}{|c|c|c|c|} \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
140 CPU/OS &GCC-4.4& GCC-4.6 &Micro-C \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
141 % x86/Linux & 7.378 & 0.833 & 2.923 \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
142 x86/Linux & 7.378 & & 2.923 \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
143 % x86\_64/OS X(-m32)& 5.951 & 0.507 & 2.871\\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
144 x86\_64/OS X(-m32)& 5.951 & & 2.871\\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
145 % x86\_64/OS X & 6.420 & 0.621 & \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
146 x86\_64/OS X(-m64) & 6.420 & & \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
147 \end{tabular}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
148 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)(最適化無し)}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
149 \label{tab:speed-mc-vs-gcc-nonopt}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
150 \end{table}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
151
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
152
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
153
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
154 \section{評価}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
155 今回実装を行った GCC-4.6 ベースのコンパイラを GCC-4.4 ベース,
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
156 Micro-C コンパイラとそれぞれ比較を行った.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
157 比較を行うのはクイックソートのプログラムである.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
158 %クイックソートは再帰的にプログラムされる為 CbC に向いている
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
159 %プログラムだと言える.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
160 クイックソートは再帰的なプログラムな為スタック操作が行われる為テストに向いている.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
161 比較を行うのは以下のアーキテクチャと OS になる.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
162
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
163 %\begin{description}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
164 \begin{itemize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
165 \item x86/Linux
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
166 \item x86/OS X
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
167 \end{itemize}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
168 %\end{description}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
169
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
170
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
171 \begin{table}[htpb]
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
172 \centering
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
173 \small
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
174 \begin{tabular}{|c|c|c|c|} \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
175 CPU/OS &GCC-4.4& GCC-4.6 &Micro-C \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
176 x86/Linux & 3.253 & 2.906 & 2.71 \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
177 x86\_64/OS X(-m32)& 2.726 & 2.418 & 2.857\\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
178 x86\_64/OS X(-m64) & 1.390 & 1.509 & \\ \hline
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
179 \end{tabular}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
180 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)(速度最適化)}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
181 \label{tab:speed-mc-vs-gcc-opt}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
182 \end{table}
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
183
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
184 GCC-4.6 バージョンの最適化無しは, 末尾最適化が強制的に行われる為
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
185 除外している.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
186 最適化有りと無しの比較が 4.6 でも行えないのは残念だが, 最適化の効果はでている
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
187 ように思われる.GCC-4.4 では最適化により 2 倍以上の性能がでている.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
188 また 64bit 版の最適化有りは 32bit 版に比べてどちらも 1.6 倍以上の速度がでている
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
189 のが確認できた.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
190 Micro-C と比較では GCC の 32bit 版が若干早く, 64bit 版は 2 倍の差がでているのが
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
191 確認できた.
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
192
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
193
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
194
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
195
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
196
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
197
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
198
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
199
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
200
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
201
6e50f1c7f914 add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
202