comparison 2013/Sep-2013/24th.html @ 9:e4748bca1eb3

mkdir 2013
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Tue, 14 Jan 2014 04:18:59 +0900
parents Sep-2013/24th.html@c9b2998eb516
children
comparison
equal deleted inserted replaced
8:0ce451f35622 9:e4748bca1eb3
1 <!DOCTYPE html>
2
3 <!--
4 Google HTML5 slide template
5
6 Authors: Luke Mahé (code)
7 Marcin Wichary (code and design)
8
9 Dominic Mazzoni (browser compatibility)
10 Charles Chen (ChromeVox support)
11
12 URL: http://code.google.com/p/html5slides/
13 -->
14
15 <html>
16 <head>
17 <title>2013-09-24</title>
18
19 <meta charset='utf-8'>
20 <script
21 src='http://html5slides.googlecode.com/svn/trunk/slides.js'></script>
22 </head>
23
24 <style>
25 /* Your individual styles here, or just use inline styles if that’s
26 what you want. */
27 .slides article { background-image: none !important; background-color: white; }
28
29
30 </style>
31
32 <body style='display: none'>
33
34 <section class='slides layout-regular template-default'>
35
36 <!-- Your slides (<article>s) go here. Delete or comment out the
37 slides below.-->
38
39 <article>
40 <h1>
41 Ceriumによる
42 <br>
43 正規表現マッチャの実装
44 </h1>
45 <p>
46 Masataka Kohagura
47 <br>
48 24th September , 2013
49 </p>
50 </article>
51
52 <article>
53 <h3>
54 研究目的
55 </h3>
56 <p>
57 本研究室では、Cell用に作られたCeriumにて並列プログラミングを行なっている。様々な例題を実装することにより、どのような問題でも並列処理ができることを証明する。
58 </p>
59 <p>
60 現在は文字列サーチを実装している段階で、ボイヤームーア法を実装している。
61 セミグループという、分割したファイルに対して並列処理をさせるような手法によって、既存の文字列サーチと処理速度を比較し、どれだけ速く、どれだけ効率よくなるのかを測定する。
62 </p>
63 <p>
64 並列処理は逐次処理よりも処理時間を短縮できる可能性があるが、I/O命令がボトルネックになる。
65 このボトルネックを軽減させるにはどのような処理をさせればよいのか考察し、処理全体の効率化の改善を図る。
66 </p>
67 </article>
68
69 <article>
70 <h3>
71 したこと
72 </h3>
73 <p>
74 ・SDLによる三角波、矩形波の実装
75 </p>
76 <p>
77 ・mmapをfreadへの書き換え
78 </p>
79 </article>
80
81 <article class='smaller'>
82 <h3>波形</h3>
83 <p>三角波</p>
84 <section><pre>
85 double tri(double t){
86
87 double decimal_part = t - abs(t);
88
89 if(abs(t) % 2 != 0){
90 return decimal_part < 0.5 ? decimal_part : 1 - decimal_part;
91 }else{
92 return decimal_part < 0.5 ? -decimal_part : 1 - decimal_part;
93 }
94 }
95 </pre></section>
96
97 <p>矩形波</p>
98 <section><pre>
99 double square(double t){
100 double decimal_part = t - abs(t);
101 return decimal_part < 0.5 ? 1 : -1;
102 }
103 </pre></section>
104 </article>
105
106 <article class='smaller'>
107 <h3>mmapからfreadへの書き換え(1)</h3>
108 <p>変更前</p>
109 <section><pre>
110 static st_mmap_t
111 my_mmap(char *filename)
112 {
113 int fd = -1;
114 int map = MAP_PRIVATE;
115 st_mmap_t st_mmap;
116 struct stat sb;
117
118 if ((fd=open(filename,O_RDONLY,0666))==0) {
119 fprintf(stderr,"can't open %s\n",filename);
120 }
121
122 if (fstat(fd,&sb)) {
123 fprintf(stderr,"can't fstat %s\n",filename);
124 }
125
126 st_mmap.size = fix_byte(sb.st_size,4096);
127
128 st_mmap.file_mmap = (char*)mmap(NULL,st_mmap.size,PROT_READ,map,fd,(off_t)0); if (st_mmap.file_mmap == (caddr_t)-1) {
129 fprintf(stderr,"Can't mmap file\n");
130 perror(NULL);
131 exit(0);
132 }
133 return st_mmap;
134 }
135 </pre></section>
136 </article>
137
138 <article class='smaller'>
139 <h3>mmapからfreadへの書き換え(2)</h3>
140 <p>変更後</p>
141 <section><pre>
142 my_fread(TaskManager *manager,char *filename)
143 {
144 FILE *fd;
145 st_mmap_t st_mmap;
146 struct stat sb;
147
148 if ((fd=fopen(filename,"r"))==NULL) {
149 fprintf(stderr,"can't open %s\n",filename);
150 }
151
152 if (fstat(fileno(fd),&sb)) {
153 fprintf(stderr,"can't fstat %s\n",filename);
154 }
155
156 st_mmap.size = fix_byte(sb.st_size,4096);
157
158 st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size);
159 fread(st_mmap.file_mmap,st_mmap.size,1,fd);
160 if (st_mmap.file_mmap == (caddr_t)-1) {
161 fprintf(stderr,"Can't mmap file\n");
162 perror(NULL);
163 exit(0);
164 }
165 return st_mmap;
166 }
167 </pre></section>
168 </article>
169 </body>
170 </html>