Time-stamp: <2000-12-11 22:47:18 satoru-t>

$BJ,3d%=!<%H$NItJ,$r(B pthread $B$r;H$C$F%^%k%A%9%l%C%I2=$7$?!#(B
<http://sary.namazu.org/sorting-merging/> $B$K%0%i%U$rCV$$$?!#(B

30 MB$B$N%F%-%9%H%U%!%$%k$rBP>]$K(B Suffix Array $B$r:n@.$9$k<B83(B
$B$r9T$C$?!#(B

$B"#<B834D6-(B

  Digital UNIX V4.0F + Alpha 21164A 466MHz x 4 + 2 GB

$B"#A4BN$r0l5$$K%=!<%H(B ($BJ,3d$7$J$$(B)

  % time ./mksary  30MB.txt 
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:03:37
  182.22s user 61.68s system 99% cpu 243.98s total

$B"#J,3d%=!<%H(B: ($B%V%m%C%/%5%$%:(B: 1MB)

  % time ./mksary -t1 -b 30MB.txt 
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:03
  merge:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:34
  164.92s user 19.37s system 99% cpu 184.31s total

$B"#J,3d%=!<%H(B + $B%^%k%A%9%l%C%I(B: ($B%V%m%C%/%5%$%:(B: 1MB + $BJBNsEY(B: 2)

  % time ./mksary -t2 -b 30MB.txt  
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:38
  merge:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:23
  170.53s user 14.58s system 124% cpu 148.50s total

$B"#J,3d%=!<%H(B + $B%^%k%A%9%l%C%I(B: ($B%V%m%C%/%5%$%:(B: 1MB + $BJBNsEY(B: 4)

  % time ./mksary -t4 -b 30MB.txt 
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:04:18
  merge:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:26
  350.25s user 326.95s system 182% cpu 371.32s total

$B"#J,3d%=!<%H(B: ($B%V%m%C%/%5%$%:(B: 60MB - $B$A$g$&$I(B2$BEyJ,$G$-$k%5%$%:(B)

  % time ./mksary -t1 -b61440 30MB.txt 
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:03:31
  merge:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:00
  207.83s user 90.57s system 99% cpu 298.48s total

$B"#J,3d%=!<%H(B + $B%^%k%A%9%l%C%I(B: ($B%V%m%C%/%5%$%:(B: 60MB + $BJBNsEY(B: 2)

  % time ./mksary -t2 -b61440 30MB.txt 
  index:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:27
  sort:   100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:01:28
  merge:  100% |ooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:59
  214.17s user 26.05s system 137% cpu 174.17s total

$B"#9M;!(B

  * $B%^%k%A%9%l%C%I2=$K$h$jJ,3d%=!<%H$O(B 2$BG\6a$/B.$/$J$C$?(B

  * $BA4BN$r0l5$$K%=!<%H$9$k$h$jJ,3d$7$?J}$,B.$$(B
    - Alpha Server$B$G$O$=$&$J$N$G$9$,(B PC$B$G$O$=$&$G$b$J$$$_$?$$(B
    - $B%F%-%9%H$,Bg$-$$$H$-$OJ,3d%=!<%H$NJ}$,B.$$$h$&$G$9(B

  * $B%^!<%8=hM}$N%^%k%A%9%l%C%I2=$O$"$j$,$?$/$J$5$=$&(B
    - 2$BEyJ,$7$?$H$-$N(B 00:00:59 $B$,:G>.%3%9%H$N%^!<%8(B ($B$3$l$,8B3&(B)
    - 120$BJ,3d$7$F$b(B 00:01:23 $B$G%^!<%8$G$-$k(B
    - 00:01:23 $B$,(B 00:00:59 $B$K9bB.2=$7$F$b$5$[$I4r$7$/$J$$(B

  * 4$B$D$N(B CPU $B$r@Q$s$G$$$k$N$KJBNsEY$r(B 4 $B$K$9$k$H5U$KCY$/$J$k(B
    - $B%^%k%A%9%l%C%I2=$N$d$jJ}$,0-$$$N$+$b$7$l$J$$(B
    - 32 CPU $B$N(B SGI Orign 2000 $B$G$OJBNsEY$r(B 4, 8 $B$H>e$2$F$$$C(B
      $B$F$bJ?5$$@$C$?!#(BOrigin 2000 $B$G$OJBNsEY(B 4 $B$,$$$$$_$?$$(B
      80 MB$B$N%F%-%9%H$r%V%m%C%/%5%$%:(B 1MB$B$GJ,3d%=!<%H$7$?7k2L(B:

                   =====================
                    $BJBNsEY(B | $B%=!<%H;~4V(B
                   --------+------------
                       1   |  00:09:23
                       2   |  00:04:56
                       4   |  00:03:46
                       8   |  00:04:12
                      16   |  00:05:21
                      32   |  00:06:39
                   ---------------------

$B"#%a%b(B

  * pthread $B$r%j%s%/$9$k$H%^%k%A%9%l%C%I$H$O4X78$J$$ItJ,$N(B
    fwrite $B$,5^7c$KCY$/$J$C$F:$$C$?(B
    - fwrite_unlocked $B$rBe$o$j$K;H$&$H$h$$(B ($B%7%9%F%`0MB8(B)
    - $B:Y!9$H=q$-=P$5$:$K<+A0$G%P%C%U%!%j%s%0$9$k$H$h$$(B
