Try   HackMD

2016q3 Homework3 (mergesort-concurrent)

contributed by <HuangWenChen>

開發環境

  • Description : Ubuntu 16.04.1 LTS
  • linux kernel version : 4.4.0-38-generic
  • CPU : AMD A6-4455M APU with Radeon HD Graphics
  • Cache :
    • L1d cache : 16K
    • L1i cache : 64K
    • L2 cache : 2048K

可使用$ lscpu and $ cat /etc/os-release 查看規格

簡單測試

$ make
$ ./sort

程式輸出,提示以下用法:
usage: ./sort [thread_count] [input_count]
在 GNU bash 中,可善用 $RANDOM 環境變數,取得介於 0~32767 之間的亂數,下指令來作自動測試。

$ (for i in {1..8}; do echo $RANDOM; done) | ./sort 4 8 

結果

input unsorted data line-by-line

sorted results:
[570] [7158] [9019] [15576] [22505] [22590] [27815] [28834]

但是在 Z Shell 重複下此指令會產生相同數值,在 bash 無發生此問題。

RANDOM <S>
    A  pseudo-random  integer  from 0 to 32767, newly generated each
    time this parameter is referenced.  The random number  generator
    can be seeded by assigning a numeric value to RANDOM.

    The   values   of   RANDOM   form   an  intentionally-repeatable
    pseudo-random sequence; subshells  that  reference  RANDOM  will
    result  in  identical  pseudo-random  values unless the value of
    RANDOM is referenced or seeded in the parent  shell  in  between
    subshell invocations.

上網查了有關RANDOM的文件