annotate slide/blank.html @ 60:0690afa10eb7

add
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Tue, 17 Feb 2015 17:59:05 +0900
parents 8057614d5b77
children 1eea0dd50676
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <!DOCTYPE html>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 <html>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 <head>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 <meta charset='utf-8'>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 <title>Seminar</title>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <!--
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 Notes on CSS media types used:
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 2) screen -> outline mode (display all slides-at-once on screen)
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 3) print -> print (and print preview)
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 Note: toggle between projection/screen (that is, slideshow/outline) mode using t-key
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 Questions, comments?
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 - send them along to the mailinglist/forum online @ http://groups.google.com/group/webslideshow
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <!-- style sheet links -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <link rel="stylesheet/less" href="themes/blank/projection.css.less" media="screen,projection">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <link rel="stylesheet/less" href="themes/blank/screen.css.less" media="screen">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <link rel="stylesheet/less" href="themes/blank/print.css.less" media="print">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <link rel="stylesheet/less" href="blank.css.less" media="screen,projection">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <!-- Notes about less css support
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 - all less stylesheets (*.css.less) need to get listed/loaded first (before the less.js script)
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 - find more info about less.js online @ http://lesscss.org
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 ***** NOTE:
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 less.js browser script currently won’t work if you’re using Google Chrome
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 and the path to your page starts with "file:///" due to a known Chrome issue.
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 (In the developer/js console you will see:
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 XMLHttpRequest cannot load file:///../s6/shared/projection.css.less.
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 Cross origin requests are only supported for HTTP.)
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 <!-- add js libs (less, jquery) -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 <script src="js/less-1.1.4.min.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 <script src="js/jquery-1.7.min.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 <!-- S6 JS -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <script src="js/jquery.slideshow.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <script src="js/jquery.slideshow.counter.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <script src="js/jquery.slideshow.controls.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <script src="js/jquery.slideshow.footer.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <script src="js/jquery.slideshow.autoplay.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 <script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 $(document).ready( function() {
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 Slideshow.init();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 // Example 2: Start Off in Outline Mode
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 // Slideshow.init( { mode: 'outline' } );
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 // Example 3: Use Custom Transition
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 // Slideshow.transition = transitionScrollUp;
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 // Slideshow.init();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 // Example 4: Start Off in Autoplay Mode with Custom Transition
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 // Slideshow.transition = transitionScrollUp;
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 // Slideshow.init( { mode: 'autoplay' } );
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 } );
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 </script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <!--[if IE]>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 <script src="js/jquery.microsoft.js"></script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <![endif]-->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 </head>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <body>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 <div class="layout">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 <div id="header"></div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 <div id="footer">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <div align="right">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <img src="images/concurrency.png" width="200">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 <div class="presentation">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 <!-- add slides here; example -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 <div class='slide cover'>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 <table width="90%" height="90%" border="0" align="center">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <tr>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 <td><div align="center">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <h1><font color="#808db5">マルチプラットフォーム対応<br>並列プログラミングフレームワーク</font></h1>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 </div></td>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 </tr>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <tr>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <td><div align="left">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 Yuhi TOMARI
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 <script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 var date = new Date();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 var year = date.getFullYear();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 var month = date.getMonth();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 var day = date.getDate();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 var monthList = new Array("January","February","March","April","May","June",
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 "July","August","September","October","November","December");
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 document.write(monthList[month]+" "+day+", "+year);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 </script>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:300%;height:0.2em;">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 </div></td>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 </tr>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 </table>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 <div class='slide'>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <h2>マルチプラットフォームなフレームワークにおける並列プログラミング</h2>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 <p>プログラムが PC に要求する処理性能は上がってきているが、
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 消費電力や発熱、クロックの限界といった問題から CPU の性能を上げることによる処理性能の向上は難しい。</p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 <p>プロセッサメーカーはマルチコア CPU や、GPU を含んだヘテロジニアス構成の路線を打ち出している。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 クロックの性能を上げるのではなく、コア数を増やす事でパフォーマンスを向上させている。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 <p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 マルチコア CPU や GPU といった<font color="red">マルチコアプラットフォーム</font>なアーキテクチャ上で
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 リソースを有効活用するには、それぞれのプラットフォームに最適な形でプログラムを並列に動作させる必要がある。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 ここでいう最適な形とは、実行の順番やどのリソース上で Task を実行するかといった、
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 Scheduling を含めたチューニングのことである。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 <p>しかしこれらのチューニングは複雑で、コーディング時に毎回行うと複雑さや拡張性の問題がある。</p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 <div class='slide'>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 <h2>マルチプラットフォームなフレームワークにおける並列プログラミング</h2>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 <p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 そういった問題を解決するため、本研究では並列プログラミングフレームワーク、 Cerium の開発を行った。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 異なるプラットフォーム上で最適なチューニングを行うため、以下の実装を行った。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 <ul>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 <li>パイプライニングによる Task の並列実行</li>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 <li>OpenCL、CUDA を用いた GPGPU 対応</li>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <li>データ並列実行</li>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <li>並列処理むけのI/O</li>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 </ul>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 <p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 Sort、WordCount、FFT といった例題を元に、これら Cerium の並列実行機構が
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 マルチプラットフォームにおける並列プログラミングで有効に作用することを示す。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 <div class='slide'>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 <h2>並列プログラミングフレームワーク Cerium</h2>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 <p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 Cerium は Linux、MacOSX 上で動作する汎用計算用の並列プログラミングフレームワークである。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 <img src="./images/cerium_image.png" width="700">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 <p>Cerium を用いることでマルチコア CPU と GPU において Scheduling を含めたプログラミングを可能となる。</p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 <div class='slide'>
60
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
160 <h2>Cerium における Task の生成</h2>
58
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 <p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 Cerium TaskManager では処理の単位を Task としてプログラムを記述していく。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 関数やサブルーチンを Task として扱い、Task に各種パラメタを設定した後に並列実行される。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 Input データの各要素同士を乗算し、 Output に格納する Multiply という例題がある。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 Multiply の例題を元に Cerium で Task が生成される様子を以下に示す。
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 </p>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 <pre class="code">
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 void
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 multiply_init(TaskManager *manager, float *i_data1,
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 float *i_data2, float *o_data) {
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 // create task
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 HTask* multiply = manager->create_task(MULTIPLY_TASK);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 multiply->set_cpu(spe_cpu);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 // set indata
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 multiply->set_inData(0, i_data1, sizeof(float) * length);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 multiply->set_inData(1, i_data2, sizeof(float) * length);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 // set outdata
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 multiply->set_outData(0, o_data, sizeof(float) * length);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 // set parameter
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 multiply−>set_param(0,(long)length);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 // set device
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 multiply->set_cpu(SPE_ANY);
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 // spawn task
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 multiply−>spawn();
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 }
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 </pre>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 <div class='slide'>
60
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
197 <h2>Cerium における Task の記述</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
198 <p>Device 側で実行される Task の記述を示す。</p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
199 <pre class="code">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
200 static int
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
201 run(SchedTask ∗s) {
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
202 float ∗i_data1 = (float∗)s−>get_input(0); // get input
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
203 float ∗i_data2 = (float∗)s−>get_input(1); // get output
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
204 float ∗o_data = (float∗)s−>get_output(0); // get parameter
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
205 long length = (long)s−>get_param(0);
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
206
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
207 // calculate
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
208 for (int i=0; i&lt;length; i++) {
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
209 o_data[i] = i_data1[i] ∗ i_data2[i];
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
210 }
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
211 return 0;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
212 }
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
213 </pre>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
214 <p>Host 側では Task を生成する際に様々なパラメタを設定しており、
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
215 Task にはそれを取得する API が用意されている。</p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
216 <table border="0" >
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
217 <tr bgcolor="palegreen">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
218 <th align="center">API</th><th align="center">content</th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
219 </tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
220
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
221 <tr bgcolor="dbffa3">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
222 <th align="left" >get_input</th><th align="left">入力データのアドレスを取得</th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
223 </tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
224 <tr bgcolor="palegreen">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
225 <th align="left">get_output</th><th align="left">出力先データのアドレスを取得</th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
226 </tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
227 <tr bgcolor="dbffa3">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
228 <th align="left">get_param</th><th align="left">パラメータを取得</th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
229 </tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
230 </table>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
231 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
232
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
233 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
234 <h2>TaskManager の構成</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
235 <div align="center">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
236 <img src='images/createtask.png' width="700">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
237 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
238 <ul>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
239 <li>TaskManagerと各Threadsの間には Syncronized な Mail Queueがある。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
240 <li>依存関係の解決された Task は TaskManager から Mail Queue に送られる。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
241 <li>Task に設定された CPUType に対応した Threads が Mail Queue から Task を取得し、並列実行していく。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
242 </ul>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
243 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
244
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
245 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
246 <h2>マルチコア CPU 上での並列実行</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
247 <div align="center">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
248 <img src="images/pipeline.png" width="600">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
249 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
250 <p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
251 Cerium は Cell 上で動作するフレームワークであったが MacOSX、Linux 上での並列実行に対応させた。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
252 </p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
253 <p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
254 マルチコア CPU 上での並列実行は、Synchronized Queue とパイプラインによって実現されている。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
255 TaskManager で依存関係を解決された Task は Scheduler に送信され、
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
256 Scheduler が持っているパイプラインの機構に沿って並列に実行する。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
257 </p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
258 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
259
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
260 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
261 <h2>マルチコア CPU におけるパイプラインの実装</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
262 <table>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
263 <tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
264 <th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
265 <pre class="code" align="left">void
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
266 Scheduler::run(SchedTaskBase* task1) {
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
267 SchedTaskBase* task2 = new SchedNop();
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
268 SchedTaskBase* task3 = new SchedNop();
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
269
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
270 // main loop
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
271 do {
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
272
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
273 task1->read();
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
274 task2->exec();
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
275 task3->write();
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
276
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
277 delete task3;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
278
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
279 task3 = task2;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
280 task2 = task1;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
281 task1 = task1->next(this, 0);
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
282
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
283 } while (task1);
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
284
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
285 delete task3;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
286 delete task2;
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
287 }</pre>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
288 </th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
289 <th align="left">
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
290 <p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
291 Cerium の Task は SchedTask と呼ばれるデータ構造で表現されている。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
292 SchedTask は read/exec/write のメソッドを持っており、
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
293 パイプラインの各ステージで段階的に実行される。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
294 </p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
295 <p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
296 引数として TaskList を受け取り、List 内の Task をパイプライン実行する。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
297 task3 が write を担当しており、write が終わった Task は終了となる。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
298 </p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
299 <p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
300 終了した task は delete して良い。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
301 task3=task2、task2=task1 と SchedTask をずらして行き、TaskList から 次の Task を読み込む。
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
302 </p>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
303 </th>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
304 </tr>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
305 </table>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
306 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
307
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
308 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
309 <h2>DMA の prefetch を用いた改良</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
310 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
311
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
312 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
313 <h2>マルチコア CPU におけるデータ並列</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
314 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
315
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
316 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
317 <h2>GPGPU への対応</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
318 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
319
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
320 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
321 <h2>GPGPU におけるパイプラインの実装</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
322 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
323
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
324 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
325 <h2>GPGPU におけるデータ並列</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
326 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
327
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
328 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
329 <h2>Cerium の I/O(mmap による読み込み)</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
330 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
331
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
332 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
333 <h2>BlockedRead による I/O の並列化</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
334 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
335
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
336 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
337 <h2>I/O 専用のThread</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
338 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
339
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
340 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
341 <h2>実験に利用する例題-Sort-</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
342 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
343
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
344 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
345 <h2>実験に利用する例題-WordCount-</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
346 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
347
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
348 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
349 <h2>実験に利用する例題-FFT-</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
350 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
351
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
352 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
353 <h2>実験環境</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
354 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
355
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
356 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
357 <h2>マルチコア CPU による並列実行のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
358 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
359
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
360 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
361 <h2>DMA の prefecth に関するベンチマーク </h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
362 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
363
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
364 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
365 <h2>GPGPU のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
366 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
367
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
368 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
369 <h2>データ並列実行のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
370 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
371
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
372 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
373 <h2>GPGPU のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
374 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
375
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
376 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
377 <h2>FFT による GPGPU のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
378 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
379
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
380 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
381 <h2>BlockedRead による並列 I/O のベンチマーク</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
382 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
383
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
384 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
385 <h2>まとめ</h2>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
386 </div>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
387
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
388 <div class='slide'>
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 58
diff changeset
389 <h2>今後の課題</h2>
58
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 </div>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
391
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 </div> <!-- presentation -->
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 </bodypp>
8057614d5b77 add slide
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
394 </html>