主講人: jserv / 課程討論區: 2017 年系統軟體課程
#
」,如 lonely (梅仁耀)#
參照到 Wikipedia 時,一律用英文版本; 缺乏足夠的效能分析; 錄影字體太小,應該先切換到瀏覽器的 fullscreen 模式;
[May 2] 洽詢 champ 學長
注意螢幕字體,目前過小; 注意音量的一致性;
錄影分段過多,請用合併;
Part 3 / 1:30: memory 的台灣慣用翻譯是「記憶體」,不是「內存」;
Part 7 / 1:03: atomics 描述不精確;
Part 8 / 1:12: full barrier 為何?
Part 8 / 3:19: 如何解釋 add 的時間成本?
避免使用 bandicam,多用開放原始碼解決方案; data flow
[May 2] 移轉到 Team 10
顯示效果佳,程式碼請繼續
[May 2] new task: 參考 Joshua Barczak 的 SIMD Raytracing 實作,改寫原有的程式碼,但是 model 應該和 B02: raytracing 一致
錄影字體太小,應該先切換到瀏覽器的 fullscreen 模式;
4:35: 延伸閱讀 Data Alignment
5:45: 執行 gdb
時,加上 -q
參數以抑制冗長的授權聲明輸出;
10:53: 如何解釋程式執行結果?
25:58: data alignment 的衝擊為何?
[May 2] new task: 擴充 MathEX,設計高效能的數學表示式運算器,參考 muparserSSE - A Math Expression Compiler
2:47 補上 tqueue_{push,pop} 的實作示意圖; 4:47 描述整合時期所遇到的問題時,應一併探討如何修改 (patch); 缺乏效能分析
5:48: 是否考慮到 ABA problem?
[May 2] 併入 Team 2
改用 GraphViz 製圖; 08:51 刪除的時間計算不精準/不正確;
理工人不要隨便說「好像」;
0:5 是 "concurrent",不是 "concurrency";
3:59: 時間刻度改為 ms,不要用 sec;
4:09: 用統計模型來表示 append
的時間成本;
4:39: 需要更好的正確性檢驗機制;
[May 2] 移轉到 Team 4
錄影字體太小,應該先切換到瀏覽器的 fullscreen 模式; 程式碼列表的字體也過小; ns 中文翻譯是「奈秒」;
[May 2] 併入 Team 5
錄影的字體太小, 注意 Galois 的發音;
需要考慮數值分佈
避免用雙欄 (both) 模式,改用全螢幕瀏覽; 畫面偶有閃爍; 程式碼呈現用白底黑字; 重構前應該全面指出既有問題;
使用 Visual Studio Core 很潮!
2:01: 學習 Linux 核心 list_for_each_entry 的技巧;
3:20: localPtr
的命名過於累贅;
3:41: 需要說明如何分離 interface 和 implementation,以及後續如何做 polymorphism;
4:47: findLastName
和 removeByLastName
命名不夠簡潔,只要能找到明確的人名,就可用 remove
移除,搜尋方法可能很多種 (如透過 regex [regular expression]); checkAPI
的存在是否必要?
5:29: optProvider
的命名不直覺;
5:39: 個別 phonebook 實作無可避免伴隨著各自的 structure,該如何用一致的 interface 去操作?
6:02: 與其用編譯時期挑選實作,不如在執行時期。還能因此設計更好的 benchmark suite;
6:39: main
函式應該簡化,將呼叫 interface 對應實作和效能比較的部分獨立出來;
6:57: 同前面討論,這部分的 abstraction 設計不佳;
8:53: 共用的程式碼如 _Generic 的處理,應該獨立出新的檔案;
9:52: 檔名和 build rules 應調整,將可共用的程式名稱放到 SRCS_common
,個別的 phonebook 實作可用 impl_naive.c
, impl_hash.c
, impl_mempool.c
去區分;
10:49: 如何追蹤已配置的資源 (resources) 呢?該如何避免 leak 或者 shared memory 沒釋放的狀況?
編譯時應加上 -g
選項; 減少使用 Sublime 這類私有軟體,多用開放原始碼解決方案; 缺乏更深入的效能分析 (lock contention)
[May 2] new task: 延續上學期 MapReduce 的成果,強化效能和應用案例
YouTube 網址用較短的版本,如 youtube.com/watch?v=EmDuuLygwHY
;
螢幕字體太小,請調整;
用軟體去除背景噪音,如 Audacity;
5:17: 在工程中,如何控制 error rate 並取捨呢?
[May 2] 移轉到 Team 6
螢幕字體太小,請調整;
用軟體去除背景噪音,如 Audacity;
合併影片;
Part 1 / 8:44: 如何避免 sequential access 呢?能否透過多執行緒加速?又,如果資料是會持續變動 (考慮到 enqueue 和 dequeue),該如何調整?
13:08: 在多執行緒環境中,如何透過 lock-free memory pool 來改善操作?參考: How to write a thread-safe and efficient, lock-free memory allocator in C? 和 Allocating Memory in a Lock-Free Manne
13:30: fuzzy 音標拼音: [f'ʌzi];
18:30: 預期達到怎樣的效果呢?如何整合呢?
Part 2 / 3:40: 考慮到 first_name 和 last_name 的組合,該怎樣設計有效的資料結構呢?
Part 3 / 2:14: 命名方式應調整; djb2
Part 3 / 3:48: 為何不用 Part 2 的資料來測試;
[May 2] 合併到 Team 11
[May 2] 合併到 Team 12