comparison example/get_segment/README @ 391:492e60453124 draft

fix...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 07 Aug 2009 02:24:06 +0900
parents cfd20d609ace
children 69e32bb76373
comparison
equal deleted inserted replaced
390:6087affae003 391:492e60453124
1 /*
2 * $Id: README,v 1.5 2008/11/01 02:37:12 gongo Exp $
3 */
4 1
5 - 概要 2 - 概要
6 3
7 "Hello, World!!" を出力するプログラムです。 4 SPE側から、PPEのメインメモリをアクセスするために、固定長の
8 タスク Hello が文字列を表示します。
9 5
10 - 実行方法 6 MemorySegment
11 7
12 % ./hello [-count COUNT] 8 をリストにした MemList を作る。MemHash により、MemorySegment
9 を検索出来るようにする。MemorySegement は、MemList 上で、LRU
10 で入れ換えられる。これにより、SPE上に、メインメモリのキャッシュ
11 を作ることが出来る。
13 12
14 -count 表示する "Hello, World!!" の数(つまり、タスク Hello の数)です。 13 MemList は、Task が自分で管理する。それは、global_get/global_set
14 で、Task を越えて持ち越すことが出来る。ただし、MemList自体
15 が削除されてしまう可能性もある。その時には、再度、MemListを
16 確保する。
15 17
16 - 実行例 (-cpu は Cerium 標準のオプションです) 18 キャッシュは、書き出し(put)もサポートしているが、get して、
19 get したものが吐き出されてない前提。WriteBack などは実装してない。
17 20
18 % ./hello
19 [0] Hello, World!!
20
21 % ./hello -count 10
22 [0] Hello, World!!
23 [1] Hello, World!!
24 [2] Hello, World!!
25 [3] Hello, World!!
26 [4] Hello, World!!
27 [5] Hello, World!!
28 [6] Hello, World!!
29 [7] Hello, World!!
30 [8] Hello, World!!
31 [9] Hello, World!!
32
33 % ./hello -count 10 -cpu 3
34 [0] Hello, World!!
35 [2] Hello, World!!
36 [3] Hello, World!!
37 [5] Hello, World!!
38 [6] Hello, World!!
39 [8] Hello, World!!
40 [9] Hello, World!!
41 [1] Hello, World!!
42 [4] Hello, World!!
43 [7] Hello, World!!
44
45 上の例では、Hello タスク 10 個を、
46 3 つの CPU に振り分けて実行しているので
47 表示が順になっていない -> 並列に実行されていることがわかります。