2016/02/25

2016q1 Homework #1

http://wiki.csie.ncku.edu.tw/embedded/2016q1h1

作業要求

  • 在 GitHub 上 fork phonebook,然後適度修改 phonebook_opt.c 和 phonebook_opt.h 兩個檔案,使得這兩者執行時期的 cache miss 降低。請用 perf 驗證,而且改進的過程中,不能有功能方面的減損。

先安裝開發工具
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install linux-tools-common linux-tools-generic
$ sudo apt-get install astyle colordiff gnuplot
將ubuntu update 到最新版再安裝perf,就沒有出現下面的error message
sudo apt-get install linux-tools-common 
sudo apt-get install linux-cloud-tools-common
WARNING: perf not found for kernel 3.16.0-50
You may need to install the following packages for this specific kernel:
    linux-tools-3.16.0-50-generic
    linux-cloud-tools-3.16.0-50-generic

編寫程式,測試perf
#include 
#include 

double compute_pi_baseline(size_t N) {
    double pi = 0.0;
    double dt = 1.0 / N;
    for (size_t i = 0; i < N; i++) {
        double x = (double) i / N;
        pi += dt / (1.0 + x * x);
    }
    return pi * 4.0;
}
int main() {
    printf("pid: %d\n", getpid());
    sleep(10);
    compute_pi_baseline(50000000);
    return 0;
}
gcc -g -Wall -std=c99 perftest.c -o perftest

-g」是加入除錯資訊;「-Wall」是顯示所有的警告訊息 ;「-o」用來指定所生成的可執行程式的文件名。
要運行編譯後的perftest,會顯示pid number 例如16777
./perftest
打開另外一個terminal ,並輸入 perf top -p 16777
結果顯示函式 compute_pi_baseline() 佔了近 99.9%,跟預期一樣,此函式是程式中的「熱點」


2016/02/02

2016.01.31 鴻海忘年會-台大校園


又來到一年一度的鴻海忘年會,近幾年都是在台大校園舉辦
林口體育場和小巨蛋看來已經擠不下這麼多人

與往年不同的是,小糖前一天腳才打了針所以行動不便
她總是說一年之中最期待這一天了 -_-

今年有baby boss的活動,兩兄弟參加了皇家儀隊,有沒有很帥氣阿

演唱會的活動也相當的精彩,我們再一次的確定謝金燕真是很認真的藝人
而且那個腳真的是又直又美又白,連小糖看了都直流口水阿