diff 2013/Oct-2013/8th.html @ 9:e4748bca1eb3

mkdir 2013
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Tue, 14 Jan 2014 04:18:59 +0900
parents Oct-2013/8th.html@c9b2998eb516
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2013/Oct-2013/8th.html	Tue Jan 14 04:18:59 2014 +0900
@@ -0,0 +1,196 @@
+<!DOCTYPE html>
+
+<!--
+  Google HTML5 slide template
+
+  Authors: Luke Mahé (code)
+           Marcin Wichary (code and design)
+           
+           Dominic Mazzoni (browser compatibility)
+           Charles Chen (ChromeVox support)
+
+  URL: http://code.google.com/p/html5slides/
+-->
+
+<html>
+  <head>
+    <title>2013-10-08</title>
+
+    <meta charset='utf-8'>
+    <script
+      src='http://html5slides.googlecode.com/svn/trunk/slides.js'></script>
+  </head>
+  
+  <style>
+    /* Your individual styles here, or just use inline styles if that’s
+       what you want. */
+  .slides article { background-image: none !important; background-color: white; }
+    
+    
+  </style>
+
+  <body style='display: none'>
+
+    <section class='slides layout-regular template-default'>
+      
+      <!-- Your slides (<article>s) go here. Delete or comment out the
+           slides below.-->
+
+      <article>
+        <h1>
+          Ceriumによる
+          <br>
+          正規表現の実装
+        </h1>
+        <p>
+          Masataka Kohagura
+          <br>
+          8th October , 2013
+        </p>
+      </article>
+      
+      <article>
+        <h3>
+        研究目的
+        </h3>
+        <p>
+        本研究室では、Cell用に作られたCeriumにて並列プログラミングを行なっている。Ceriumにて正規表現を実装し、既存の正規表現との処理速度、処理効率がどれだけ良くなるのかを測定する。
+        </p>
+        <p>
+        現在は文字列サーチ(Boyer-Moore String Search Algorithm)を実装している。
+        セミグループという、分割したファイルに対して並列処理をさせるような手法によって、効率化を測る。
+        </p>
+      </article>
+
+      <article>
+        <h3>
+        今週のしたこと
+        </h3>
+        <p>
+        mmapからfreadに変更していたものを、readに変更。
+        </p>
+        <p>
+        ・シンヤさんのRegenを動かしてみた
+        </p>
+        <p>
+        ・シンヤさんの論文「並列化と実行時コード生成を用いた正規表現マッチングの高速化」読み
+        </p>
+      </article>
+
+      <article class='smaller'>
+      <h3>mmapからfreadへの書き換え(1)</h3>
+      <p>変更前</p>
+      <section><pre>
+static st_mmap_t
+my_mmap(char *filename)
+{
+    int fd = -1; 
+    int map = MAP_PRIVATE;
+    st_mmap_t st_mmap;
+    struct stat sb; 
+
+    if ((fd=open(filename,O_RDONLY,0666))==0) {
+        fprintf(stderr,"can't open %s\n",filename);
+    }   
+
+    if (fstat(fd,&sb)) {
+        fprintf(stderr,"can't fstat %s\n",filename);
+    }   
+
+    st_mmap.size = fix_byte(sb.st_size,4096);
+
+    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) {
+        fprintf(stderr,"Can't mmap file\n");
+        perror(NULL);
+        exit(0);
+    }       
+    return st_mmap;
+}
+      </pre></section>
+      </article>
+
+      <article class='smaller'>
+      <h3>mmapからfreadへの書き換え(2)</h3>
+      <p>変更後</p>
+      <section><pre>
+my_read(TaskManager *manager,char *filename)
+{
+    int fd = -1;
+    st_mmap_t st_mmap;
+    struct stat sb;
+
+    if ((fd=open(filename,O_RDONLY,0666))==0) {
+        fprintf(stderr,"can't open %s\n",filename);
+    }
+
+    if (fstat(fd,&sb)) {
+        fprintf(stderr,"can't fstat %s\n",filename);
+    }
+
+    st_mmap.size = fix_byte(sb.st_size,4096);
+    <font color="red">st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size);</font>
+
+    <font color="red">sread(fd,st_mmap.file_mmap,st_mmap.size);</font>
+
+    if (st_mmap.file_mmap == (caddr_t)-1) {
+        fprintf(stderr,"Can't mmap file\n");
+        perror(NULL);
+        exit(0);
+    }
+    return st_mmap;
+}
+</pre></section>
+      </article>
+
+      <article class='smaller'>
+      <h3>mmapからreadへの書き換え(2)</h3>
+      <p>変更後</p>
+      <section><pre>
+my_read(TaskManager *manager,char *filename)
+{
+    int fd = -1;
+    st_mmap_t st_mmap;
+    struct stat sb;
+
+    if ((fd=open(filename,O_RDONLY,0666))==0) {
+        fprintf(stderr,"can't open %s\n",filename);
+    }
+
+    if (fstat(fd,&sb)) {
+        fprintf(stderr,"can't fstat %s\n",filename);
+    }
+
+    st_mmap.size = fix_byte(sb.st_size,4096);
+    <font color="red">st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size);</font>
+
+    <font color="red">read(fd,st_mmap.file_mmap,st_mmap.size);</font>
+
+    if (st_mmap.file_mmap == (caddr_t)-1) {
+        fprintf(stderr,"Can't mmap file\n");
+        perror(NULL);
+        exit(0);
+    }
+    return st_mmap;
+}
+</pre></section>
+      </article>
+
+
+      <article>
+        <h3>
+        並列化と実行時コード生成を用いた正規表現マッチングの高速化について
+        </h3>
+        <p>
+        ・NFA/DFAから同時初期状態有限オートマトン(SSFA)を構成
+        </p>
+        <p>
+        ・Simultaneous Start-state Finite Automata
+        </p>
+        <p>
+        ・「NFAの全状態について、それぞれを初期状態とした場合の状態遷移」を
+         同時初期状態遷移(SST)と呼んでいる。
+        </p>
+      </article>
+
+  </body>
+</html>