# 2016 年成大秋季班分組 (第二次) ###### tags: `sysprog2016` :::info 主講人: [jserv](http://wiki.csie.ncku.edu.tw/User/jserv) / 課程討論區: [2016 年系統軟體課程](https://www.facebook.com/groups/system.software2016/) :mega: 返回「[進階電腦系統理論與實作](http://wiki.csie.ncku.edu.tw/sysprog/schedule)」課程進度表 ::: ## Policy * 在分組的共筆中,應該清楚標注 GitHub 和每週 YouTube 錄影連結 * Nov 18 安排分組報告,需要事先更新好共筆、GitHub 更新,還有相關的錄影。屆時會在課堂以 1.5x 或 2x 速度播放 ## Team1 (READY) - [ ] jserv (黃敬群) - [ ] louielu (呂紹榕) - [ ] c14006078 (吳彥寬) - [ ] Shaoyu-Chen (陳少宇) * 開發紀錄: [F9 microkernel & ARM hypervisor](https://hackmd.io/s/r16AUMbJe) * 針對低功耗 IoT 應用,打造一個高效、安全的 microkernel * 以過去發展的程式碼,如 MPU + address space 和 L4 API 等等,重新設計一個針對 ARM Cortex-M4 的 hypervisor,符合第三代 microkernel 的設計 ## Team2 (READY) - [ ] CheHsuan (林哲亘) - [ ] kevinbird61(瞿旭民) - [ ] SwimGlass (謝永勁) - [ ] carolc0708 (陳柔安) * 開發紀錄: [透過 SIMD 加速高斯模糊運算](/s/BJOTYoHge) * 延續 [開發紀錄: 使用 SSE/AVX 對圖檔作高斯模糊處理](https://hackmd.io/s/ByEmp4ike) 和 [SIMD + prefetching](https://hackmd.io/s/rk8ivCT0) 的成果,提供 Intel 架構 SSE/AVX 和 ARM 架構 NEON 的效能最佳化實做 * 可參考 OpenCV 程式碼,但不能直接複製 ## Team3 (READY) - [ ] 0140454 (吳勃興) - [ ] linachiu (邱婉菱) - [ ] kaizsv (林振凱) - [ ] HuangWenChen (陳鍠文) - [ ] aweimeow (陳威祐) * 開發紀錄: [以 SIMD 加速矩陣乘法](https://hackmd.io/s/Hk-llHEyx) * 持續改善效能,並針對記憶體操作提出改進方案 (注意 cache 的影響) * 研讀 [Memory Hierarchies and Optimizing Matrix Multiplication](https://people.eecs.berkeley.edu/~demmel/cs267_Spr99/Lectures/Lect_02_1999b.pdf), [Optimizing matrix multiplication](http://networks.cs.ucdavis.edu/~amitabha/optimizingMatrixMultiplication.pdf), [Optimizing Parallel Multiplication Operation for Rectangular and Transposed Matrices](http://hpc.pnl.gov/srumma/srumma-icpads.pdf) * 提出測試矩陣乘法正確性和效能之有效機制 * 設計類似 Matlab 語法的簡單程式語言,至少能銜接上述矩陣相乘。一併研究 [muparserSSE - A Math Expression Compiler](http://beltoforion.de/article.php?a=muparsersse&p=implementation) ## Team4 - [ ] kobe0308 (余孟勳 - [ ] youchihwang(王佑誌) - [ ] vjux (廖宥勛) - [ ] mingnus (蔡明宏) * 開發紀錄: [Concurrent Optimizing Brainfuck JIT compiler](https://hackmd.io/s/B1n0oiNxx) * 參考 [rdebath/Brainfuck](https://github.com/rdebath/Brainfuck) 的成果 * 可對照的實做: [Parallel Brainfuck](https://github.com/cmdli/parallel-brainfuck),[報告投影片](https://docs.google.com/presentation/d/1Y8uwsh_5bmUASmyRE4i3S4fL5OvA2Q92edivIXpsEaM/edit#slide=id.p) ## Team5 - [ ] andy19950 (吳庭安) - [ ] TotallyWrong (林鑫宏) - [ ] cjTsai3030 (蔡承哲) - [ ] f5120125 (張耕華) - [ ] diana0651 (何岱璇) * 開發紀錄: [Optimizing Brainfuck JIT Compiler](https://hackmd.io/MYEwpg7FBs0LQgEbHgFmgBjHAHARljgGY8cxpEBWECAQzGCA) * 延續 [Brainfuck JIT 編譯器最佳化研究](https://hackmd.io/s/HJjoxbvke) 和相關同學的成果,重新整理共筆,需要闡述編譯器原理、IR、JIT 編譯器設計,還有考慮到 cache 的議題 * 參考 [rdebath/Brainfuck](https://github.com/rdebath/Brainfuck) 的成果,思考進階的效能最佳化 * 參考 [The Brainf*ck Compiler Project](http://www.clifford.at/bfcpu/bfcomp.html),提出高階語言轉換到 Brainfuck 的機制,並且針對特定情況作效能改善 ## Team6 - [ ] tundergod (林文盛) - [ ] Tempojiji (邱靖吉) - [ ] jeff60907 (陳致佑) - [ ] chenan00 (王振安) * 開發紀錄: [針對多執行緒環境設計的 Memory allocator](/s/HkICAjeJg) * 延續 [SuperMalloc](http://supertech.csail.mit.edu/papers/Kuszmaul15.pdf) 成果,對比 Daniel Micay 的 [allocator](https://github.com/thestinger/allocator),並考慮 small/large/huge object 等情況 * 思考 [aggressive load balancing](https://github.com/thestinger/allocator/commit/d658d27116af63ca0c97b410024b09b3c54f55f6) 的效益,並且試圖延展 ## Team7 (READY) - [ ] HaoTse (鄭皓澤) - [ ] shelly4132 (賴劭芊) - [ ] HahaSula(黃呂源) - [ ] nekoneko (林建宏) - [ ] Fzzzz(陳易) - [ ] abba123(洪勤硯) * 開發紀錄: [MapReduce](https://hackmd.io/s/Hkb-lXkyg) * 設計更好的 thread pool (lock-free 版本),並重現 Google 論文裡面的排序動作 ## Team8 (READY) - [ ] LanKuDot (李昆憶) - [ ] ktvexe (劉亮谷) - [ ] judy66jo (周純靜) - [ ] JonSyuGithub (徐仲緯) * 開發紀錄: [server-framework](https://hackmd.io/s/B1s8hX1yg) * 整合 [cgi-server + facebooc](https://embedded2016.hackpad.com/ep/pad/static/EqEoM4o7nVv),設計更好的物件導向封裝 * 整合 freeboard 以提供豐富的網頁呈現,並分析過程中伺服器端的行為,提出效能改善機制 ## Team9 (READY) - [ ] petermouse (林軒毅) - [ ] heathcliffYang (楊惟晶) - [ ] janetwei (魏孜昀) * 開發紀錄: [Natural merge sort 在特定硬體的加速](https://hackmd.io/IwIwnAHGDGDsCsBaMYCmxEBYAmBDEi+EmiCqs+AzLnCLkA==) * 考慮 [Natural merge sort in C](http://codereview.stackexchange.com/questions/119377/natural-merge-sort-in-c),思考透過 clz 一類硬體指令加速,延續 [mergesort + branch prediction](https://hackmd.io/s/HJUFIeg1g) * 延續 [clz 應用](https://hackmd.io/s/S153n-G1g) 的成果,收集更多應用並且著手比較 `__builtin_clz` 和查表法對程式效能的影響。需要從計算機組織架構的觀點解釋 * 一併對照 [第18題: branch predictor](https://embedded2016.hackpad.com/2016q1-Week-2--Sc7AmIvN7EN),注意:裡頭的描述不全然正確 * 延伸閱讀: [Segmented Sort and Locality Sort](https://nvlabs.github.io/moderngpu/segsort.html) 和 [Mergesort](https://nvlabs.github.io/moderngpu/mergesort.html) ## Team10 - [ ] oiz5201618 (王紹華) - [ ] ponsheng (陳博聖) - [ ] hugikun999 (何俊逸) - [ ] workfunction (黃鏡清) - [ ] ierosodin (許耕福) - [ ] shengwen1997 (鄭聖文) - [ ] YuehChuan (張岳傳) * 開發紀錄: [無人車控制系統設計和實做](https://hackmd.io/CwIwjAzMDsBsCGBaAnCazHABzAAyJABNgBTRAJhIFZyBjaYQrMEwoA==) ## Team11 (READY) - [ ] vic85821 (張友誠) - [ ] jkrvivian (林京樺) - [ ] snoopy831002 (李中皓) - [ ] ruby0109 (施雨妏) * 開發紀錄: [concurrent B+ tree](https://hackmd.io/EYTgJiCs4AwLQDZgDNJwCwEYCG24gGMBmYOYAdmQQXWAuDAKA===?view) * 延續春季班 [concurrent B+ tree](https://embedded2016.hackpad.com/concurrent-B-tree-p459m7tm2Ea) 成果,回頭研究程式行為和深入效能分析 * 提出 lock contention 的解決機制 ## Team12 - [ ] raypan7 (潘祈睿) - [ ] finalallpass (顏子皓) - [ ] a530788140 (李儂偉) * 開發紀錄: [Concurrent Linked List 研究](https://hackmd.io/s/rkhBeeZyx) * 延伸閱讀: [lock-free/wait-free algorithms ](https://embedded2016.hackpad.com/lock-freewait-free-algorithms-jUNeD0UC94q) ## Team13 - [ ] green0413 (游玉青) - [ ] shouchengH (黃少呈) - [ ] SarahYuHanCheng (程鈺涵) - [ ] eeuserp (簡伯丞) * 開發紀錄: [Concurrent Rubi](https://hackmd.io/s/HkDeFrlxg) * 探討編譯器設計,以 DynASM 為例,解說 Rubi 運作原理,並提出 code refactoring 與效能改善機制 * 實做 concurrency 語法支援,不必跟 Ruby 相容