view 13/Sep-2013/24th.html @ 51:d8f499590d82

rename 201* to 1*
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Sun, 16 Mar 2014 13:36:04 +0900
parents 2013/Sep-2013/24th.html@e4748bca1eb3
children
line wrap: on
line source

<!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-09-24</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>
          24th September , 2013
        </p>
      </article>
      
      <article>
        <h3>
        研究目的
        </h3>
        <p>
        本研究室では、Cell用に作られたCeriumにて並列プログラミングを行なっている。様々な例題を実装することにより、どのような問題でも並列処理ができることを証明する。
        </p>
        <p>
        現在は文字列サーチを実装している段階で、ボイヤームーア法を実装している。
        セミグループという、分割したファイルに対して並列処理をさせるような手法によって、既存の文字列サーチと処理速度を比較し、どれだけ速く、どれだけ効率よくなるのかを測定する。
        </p>
        <p>
        並列処理は逐次処理よりも処理時間を短縮できる可能性があるが、I/O命令がボトルネックになる。
        このボトルネックを軽減させるにはどのような処理をさせればよいのか考察し、処理全体の効率化の改善を図る。
        </p>
      </article>

      <article>
      <h3>
      したこと
      </h3>
      <p>
      ・SDLによる三角波、矩形波の実装
      </p>
      <p>
      ・mmapをfreadへの書き換え
      </p>
      </article>

      <article class='smaller'>
      <h3>波形</h3>
      <p>三角波</p>
      <section><pre>
double tri(double t){ 

    double decimal_part = t - abs(t);

    if(abs(t) % 2 != 0){ 
        return decimal_part < 0.5 ? decimal_part : 1 - decimal_part;
    }else{ 
        return decimal_part < 0.5 ? -decimal_part : 1 - decimal_part;
    }   
}
      </pre></section>

      <p>矩形波</p>
      <section><pre>
double square(double t){ 
    double decimal_part = t - abs(t);
    return decimal_part < 0.5 ? 1 : -1; 
}
      </pre></section>
      </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_fread(TaskManager *manager,char *filename)
{
    FILE *fd;
    st_mmap_t st_mmap;
    struct stat sb;

    if ((fd=fopen(filename,"r"))==NULL) {
        fprintf(stderr,"can't open %s\n",filename);
    }

    if (fstat(fileno(fd),&sb)) {
        fprintf(stderr,"can't fstat %s\n",filename);
    }

    st_mmap.size = fix_byte(sb.st_size,4096);

    st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size);
    fread(st_mmap.file_mmap,st_mmap.size,1,fd);
    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>
  </body>
</html>