# HG changeset patch # User gongo@gendarme.cr.ie.u-ryukyu.ac.jp # Date 1233743258 -32400 # Node ID 059572b27b8f65cd85008e4495f9953ab269e800 # Parent ea6802db8b12bacce621ea4f1097338d42f5c8cb add figure, fix diff -r ea6802db8b12 -r 059572b27b8f paper/images/amdahl.bb --- a/paper/images/amdahl.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/amdahl.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./amdahl.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 360 252 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_arch.bb --- a/paper/images/cell_arch.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_arch.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_arch.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 339 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_mailbox.bb --- a/paper/images/cell_mailbox.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_mailbox.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_mailbox.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 514 342 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_ppe.bb --- a/paper/images/cell_ppe.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_ppe.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_ppe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 370 327 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_simd.bb --- a/paper/images/cell_simd.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_simd.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_simd.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 402 261 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_spe.bb --- a/paper/images/cell_spe.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_spe.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spe.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 380 340 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_spurs_pipeline.bb --- a/paper/images/cell_spurs_pipeline.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_spurs_pipeline.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_pipeline.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 533 187 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/cell_spurs_task.bb --- a/paper/images/cell_spurs_task.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/cell_spurs_task.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./cell_spurs_task.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 507 229 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/manycore_data_split.bb --- a/paper/images/manycore_data_split.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/manycore_data_split.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_data_split.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 587 154 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/manycore_step.bb --- a/paper/images/manycore_step.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/manycore_step.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./manycore_step.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 549 335 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_scheduler.bb --- a/paper/images/tm_scheduler.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_scheduler.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_scheduler.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 517 492 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sm_rbuf.bb --- a/paper/images/tm_sm_rbuf.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_sm_rbuf.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_rbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 405 225 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sm_state.bb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/tm_sm_state.bb Wed Feb 04 19:27:38 2009 +0900 @@ -0,0 +1,5 @@ +%%Title: ./tm_sm_state.pdf +%%Creator: ebb Version 0.5.2 (+ArtBox) +%%BoundingBox: 0 0 370 342 +%%CreationDate: Wed Feb 4 19:27:04 2009 + diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sm_state.graffle Binary file paper/images/tm_sm_state.graffle has changed diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sm_state.pdf Binary file paper/images/tm_sm_state.pdf has changed diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sm_wbuf.bb --- a/paper/images/tm_sm_wbuf.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_sm_wbuf.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sm_wbuf.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 505 487 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_sync.bb --- a/paper/images/tm_sync.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_sync.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_sync.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 577 554 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_task_post.bb --- a/paper/images/tm_task_post.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_task_post.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_post.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 335 388 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/images/tm_task_struct.bb --- a/paper/images/tm_task_struct.bb Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/images/tm_task_struct.bb Wed Feb 04 19:27:38 2009 +0900 @@ -1,5 +1,5 @@ %%Title: ./tm_task_struct.pdf %%Creator: ebb Version 0.5.2 (+ArtBox) %%BoundingBox: 0 0 591 364 -%%CreationDate: Wed Feb 4 17:44:49 2009 +%%CreationDate: Wed Feb 4 19:27:04 2009 diff -r ea6802db8b12 -r 059572b27b8f paper/manycore.tex --- a/paper/manycore.tex Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/manycore.tex Wed Feb 04 19:27:38 2009 +0900 @@ -3,7 +3,7 @@ Many Core プログラミングは、一つのマシン内で複数のコアを扱う プログラミングである。 本章では、Many Core プログラミングの要素や難しさを考察し、 -並列プログラムの処理能力や信頼性を確保するための開発行程を述べる。 +並列プログラムの性能や信頼性を確保するための開発行程を述べる。 \section{定常的な並列度の必要性} @@ -21,7 +21,7 @@ \label{fig:amdahl} \end{figure} -このとこから、恒常的に並列度を維持する必要がある。 +このことから、恒常的に並列度を維持する必要がある。 このため、逐次型プログラムの一部を並列化するという手法では不十分である。 LSI などのハードウェアの場合は、演算の対象がもともと多量の演算と データパスを持つので、並列計算の効果を定常的に得られることが多い。 @@ -33,8 +33,8 @@ プログラムの中の並列度は、主に二つの形で取り出すことができる。 \begin{itemize} -\item データ並列 (\figref{manycore_data_split}) \\ - 配列や木の中の個々の要素に対して並列に実行する +\item データ並列 \\ + 配列や木の中の個々の要素に対して並列に実行する (\figref{manycore_data_split}) \item パイプライン処理 \\ 複数の逐次処理の隣通しを重ねて実行する \end{itemize} @@ -143,8 +143,8 @@ 前後のコードと合わせて 入出力データのチェックなどのテストをしていくことが必要となる。 これにより、問題がプログラムのアルゴリズムなのか、 -並列実行したことによるデータの整合性の問題(同期、データ送受信のずれなど)かを -判定することができる。 +並列実行したことによるデータの整合性の問題(同期、データ送受信のずれなど)か +などを判定することができる。 並列プログラミングでは、以上の段階毎に 信頼性を確かめながら開発を行っていくことになる。 diff -r ea6802db8b12 -r 059572b27b8f paper/taskmanager.tex --- a/paper/taskmanager.tex Wed Feb 04 17:46:51 2009 +0900 +++ b/paper/taskmanager.tex Wed Feb 04 19:27:38 2009 +0900 @@ -115,7 +115,7 @@ ActiveQueue が空になったら、run を抜ける。 -\section{Task (メインスレッド)} +\section{メインスレッドの実装} メインスレッドでは、主にタスクの起動と、タスクに渡すオプションの設定を行う。 ここでは、タスクの情報オブジェクトとなる Task の定義と、 Task のオプション設定について説明する。 @@ -123,7 +123,7 @@ \subsection{Task の定義} \label{sec:tm_task} 以下は実行されるタスクの情報となるデータ構造である。 -このデータは PPE、SPE の両方で使用される。 +このデータはメインスレッド、CPUスレッドの両方で使用される。 \begin{verbatim} #define MAX_PARAMS 8 @@ -221,7 +221,7 @@ size は 16 バイト倍数である必要がある。 \verb+add_param(param)+ は、タスクに 32bit のデータを渡す。 -add\_inData で渡すには小さいものを送るのに適している。 +add\_inData で渡すには小さいデータを送るのに適している。 param は アドレスとしてではなく、値を Task オブジェクトが直接持っているので、 DMA 転送は行わない。 @@ -314,7 +314,7 @@ 複雑で大量なタスクの依存関係も設定することが可能となっている。 -\section{Task (CPUスレッド)} +\section{CPU スレッド} 各 CPU では、メインスレッドで生成された Task を受け取り、 その情報を元に、タスクを実行する。 ここでは、Task を扱うスケジューラの実装と、 @@ -374,9 +374,21 @@ 何も行わない \end{itemize} +各クラスからは、次に呼び出す SchedTaskBase を予測できる +(\figref{tm_sm_state}) 。 + +\begin{figure}[htb] + \begin{center} + \includegraphics[scale=0.8]{images/tm_sm_state.pdf} + \caption{SchedTaskBase クラスの状態遷移} + \label{fig:tm_sm_state} + \end{center} +\end{figure} + + \subsection{タスクの記述} \label{sec:stask_code} -ユーザがタスクを記述す場合、SchedTask を継承し、 +ユーザがタスクを記述する場合、SchedTask を継承し、 パイプラインの exec 内で呼ばれている run() にタスクの処理を記述する。 \begin{verbatim}