愛鋒貝

 找回密碼
 立即注冊

只需一步,快速開始

扫一扫,极速登录

查看: 2038|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

盤點CMU SCS計算機(jī)學(xué)院的硬核系統(tǒng)課

[復(fù)制鏈接]

1356

主題

1397

帖子

5663

積分

Rank: 8Rank: 8

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-4-10 22:31:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

一鍵注冊,加入手機(jī)圈

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊   

x
開篇

時光如梭, 白馬過隙. 在北美知名技校的兩年讀研時光很快就要過去. 臨畢業(yè)前夕, 想要來記錄盤點一下自己上的SCS計算機(jī)學(xué)院下的15-XXX開頭的硬核系統(tǒng)課, 為后來者提供一些介紹和見解. 兩年下來, 雖然自己也勉強(qiáng)算是本科CS科班出身, 但是本科的課程和在CMU這里感覺難度上天壤之別, 也算是回爐重造"轉(zhuǎn)碼"了.
其實項目一開始的時候我選的是Analytics機(jī)器學(xué)習(xí)方向, 但學(xué)了一學(xué)期后果斷決定半路跳車去學(xué)System系統(tǒng)方向. 原本三學(xué)期就可以畢業(yè)了, 愣是為了把System Track想上的課上完多在匹村帶了一學(xué)期. 做決定的時候其實內(nèi)心也有過掙扎: 真的有必要學(xué)這些課嗎? 畢竟現(xiàn)在的北美市場找工作只要會做Leetcode就行, 剩下就是看命和運(yùn)氣.
但或許是因為年輕, 我的觀點或許是錯的. 我總還是覺得有些東西只有在學(xué)校里才能靜下心來學(xué)扎實了, 未來才能在技術(shù)的道路上走得順利走得長遠(yuǎn). 未來要工作20年, 30年, 在此之前多花一學(xué)期的時間扎實基礎(chǔ)應(yīng)該還是不虧的. 但愿如此吧!
15-513 Introduction to Computer Systems

版本: Spring 2022
傳送門: Introduction to Computer Systems
性質(zhì): 公開課
編程語言: C
個人評分: ★★★★★
課業(yè)壓力: ★★★★☆

這門課便是網(wǎng)上無人不知無人不曉的計算機(jī)系統(tǒng)入門神課, CSAPP這本書的配套課程. 在知乎上我看到過好多同學(xué)自學(xué)CSAPP并做這門課配套的lab, 以及對一些lab的詳解, 學(xué)習(xí)氣氛非常濃厚.
課程的內(nèi)容主要是針對現(xiàn)在計算機(jī)系統(tǒng)的一個比較廣泛, 但點到為止的介紹. 其中的一些核心概念包括:

  • 字節(jié)碼的底層表示
  • 匯編語言的理解
  • x86架構(gòu)的指令執(zhí)行
  • 內(nèi)存結(jié)構(gòu)與布局
  • 硬件緩存與策略
  • 虛擬內(nèi)存的架構(gòu)實現(xiàn)
  • 信號、中斷、異常
  • 基礎(chǔ)網(wǎng)絡(luò)通信
  • 基礎(chǔ)并發(fā)編程
Labs主要是以C語言為主, 都是單人project, 其中attack labbomb lab是人眼分析解讀匯編并寫輸出.

  • data lab是熱身lab, 熟悉一下各種位運(yùn)算的小tricks
  • cache lab是寫一個in-memory cache
  • malloc lab是在一個虛擬出來的heap上分配管理內(nèi)存, 需要由簡到難逐步實現(xiàn)implicit list, explicit list 和 segregate list 外加一些mini-block管理的優(yōu)化. 是所有l(wèi)ab里代碼量上最多的一個, 大概得有1500-2000行左右最后.
  • shell lab是要實現(xiàn)一個terminal, 能支持前端/后端運(yùn)行指令. 這個lab是個人覺得最詭異的一個, 因為本身對signal信號不是很了解, 做的時候有點懵懂, 犯了好多race condition的錯. 但其實做完后吧, 還是感覺對signal信號有點心里發(fā)怵, 敬而遠(yuǎn)之.
  • proxy lab是要實現(xiàn)一個坐落于client和server中間的網(wǎng)絡(luò)代理層來進(jìn)行緩存, 加快服務(wù)器的響應(yīng)時間. 這個lab其實是比較輕松的, 因為底層套接字socket都被提供的starter code封裝好了, 很大程度上調(diào)包就完事兒了.
總體而言, 個人覺得這是來CMU但凡學(xué)計算機(jī)相關(guān)的專業(yè), 絕對值得一上的神級基礎(chǔ)課. 很多時間感覺, 上和沒上過這個課是一個"有無基本系統(tǒng)知識素養(yǎng)"的分水嶺.
15-619 Cloud Computing

版本: Spring 2022
傳送門: CMU 15-619 Spring 2020 Home Page
性質(zhì): 封閉課
編程語言: Java & Python
個人評分: ★★☆☆☆
課業(yè)壓力: ★★★★★

這門課是15學(xué)分的云計算導(dǎo)論, 其實對他的評價是比較矛盾的. 一方面來說, 這課給我?guī)砹嗽贑MU最狠的熬夜的一學(xué)期, 做team project的時候常常是一周和隊友一起熬大夜: 中午12點在自習(xí)室集合, 坐牢坐到第二天早上4、5點太陽出來了再離開回家睡覺. 這樣的日子一周能有兩三天 (要夸一下我的兩個隊友都是神仙隊友, 一起干活毫不馬虎都全力以赴). 另一方面來說, 這門課的team project真的是非常扎實, 是那種可以寫在簡歷上和面試官好好吹噓一番的有深度的感覺. 但其實現(xiàn)在感覺, 課上很多搞配置的那些知識又遺忘的差不多了, 可能以后重新需要的時候可以快一點的pick up.
先說一下每兩周一個的單人individual project:

  • AutoScaling: 讓你用Amazon AWS的Java或Python API集來監(jiān)考你的cluster的workload, 如果高了就要加機(jī)器, 如果低了就要減機(jī)器, 最后根據(jù)滿足的requests數(shù)量和VM的時間總和來算分. 中規(guī)中矩的一個project, 代碼量倒是不少, 需要仔細(xì)的閱讀Amazon AWS的API手冊
  • Web Tier: 這個project主要是讓我們熟悉Web的不同tier的結(jié)構(gòu)和使用Helm來操作K8S cluster. 最終是需要為了容災(zāi)的考慮, 把服務(wù)器同時部署在Microsoft Azure和Google GCP的云上, 并分流. 還是比較讓人開眼界的
  • Database: 這個project是讓我們操練不同的database. 從正常的relational的MySQL開始, 然后是NoSQL的HBase, 最后是GraphSQL. 感覺還是比較有趣的, 工作量中等
  • Large-Scale Processing: 這個project是讓人用Spark做一個PageRank的算法. 要求用Scala完成. 非常的簡單, 代碼加起來不超過50行就能做得到. 之前從沒用過Scala, 稍微看了一會兒入門手冊, 函數(shù)式編程倒是讓人感覺有點意思.
  • Kafka/Samza: 這個project是讓人操作流式Streaming數(shù)據(jù)的. 具體的是說有一個打車軟件, 你需要實時匹配乘客和司機(jī)并更新大家的位置. 純調(diào)Apache Kafka和Samza的包, 問題不是很大, 還算挺有意思的.
  • Machine Learning: 沒做. 只需要完成6個projects里的5個, 由于我前5個都做了, 這個直接跳過沒做.
再來說說噩夢般team project:
三人組隊. 這個project一共分三個階段, 會先讓你寫出3個microservices然后優(yōu)化他們的表現(xiàn), 部署在AWS上用不同的配置和容器. 在階段二和階段三的時候分別有一小時的live test來橫向比較所有team的表現(xiàn)來排名, 排名高的有extra bonus points. 這個team project大部分時間都在試錯, 因為從零開始部署一個Service會需要經(jīng)歷各種各樣奇怪的問題: Docker build不起來, build了但跑不了, load balancer連不上網(wǎng), load balancer特別慢, database連不上, database disk I/O太高被AWS卡住了, etc. 每一步都是血與淚與熬大夜的經(jīng)驗教訓(xùn)所得. 很多時候非常氣人的是, 在piazza上如果你去提問問助教問題, 助教要么是不回復(fù)你, 要么是回復(fù)得牛頭不對馬嘴, 或者索性謎語人說不能告訴你要自己去解決. 很多時候真的是看了piazza感覺生氣得當(dāng)場要腦淤血昏過去了.
好在在三人一起熬了一學(xué)期努力下, 最后我們的team project還算是成功, 在二階段和三階段都分別拿下了全班前三的成績 (其實發(fā)現(xiàn)前幾名基本上全是同屆的MCDS的同學(xué), 因為這是必修課).
總體來說, 我覺得這個課其實是比較綜合的, 并不是很上來大家一來CMU就直接上. 我有聽說別的學(xué)院轉(zhuǎn)碼的同學(xué)一來就選這門課, 說是因為這門課是online的所以沒有SCS名額限制才能選的上. 我覺得這個是比較誤區(qū)的, 一上來就上這個課會讓你的一學(xué)期生活非常悲慘和倍受打擊, 我覺得大可不必. 如果是為了了解一下云計算方面的知識, 我覺得上本科版本課號的15-419就可以, 因為本科版本不需要做team project, 那樣的話體驗還是會更不錯的.



階段三的最終排名, 我們組叫ThreeCobblers, 寓意三個臭皮匠頂一個諸葛亮

15-645 Database Systems

版本: Fall 2022
傳送門: CMU 15-445/645 :: Intro to Database Systems (Fall 2022)
性質(zhì): 公開課
編程語言: C++
個人評分: ★★★★★
課業(yè)壓力: ★★★☆☆

這也是一節(jié)有名火爆的數(shù)據(jù)課方向的公開課, 網(wǎng)上也有不少人自學(xué)做labs. 之前寫過一篇關(guān)于這門課的文章, 可以移步:
總體而言是非常好評的這節(jié)課.
lectures來說, 教授Andy他是真的懂?dāng)?shù)據(jù)庫的, 講得非常清楚, 課上還經(jīng)常會直接terminal打開mysql, sqlserverpostgres開始demo做演示. 核心內(nèi)容包括:

  • 數(shù)據(jù)存儲形式與壓縮
  • 哈希索引和B+數(shù)索引
  • 并發(fā)管理算法
  • 排序、集合、Join的不同算法
  • Two-Phase Locking
  • Timestamp Locking
  • MVCC
  • 故障恢復(fù)
  • 分布式數(shù)據(jù)庫簡介
labs來說, 這節(jié)課BusTub的labs自成一體, 單人projects, 選取4個比較重要的compoents讓同學(xué)實現(xiàn). 我上的這個學(xué)期分別是:

  • P1 (緩沖池 Buffer Pool Manager): 為了更好的管理磁盤頁和內(nèi)存頁之間的映射同步, 要求實現(xiàn)可擴(kuò)展哈希表(Extensible HashTable)LRU-K置換算法
  • P2 (B+ Tree Index B+樹索引): 為了更快地檢索和遍歷數(shù)據(jù)表中的大量數(shù)據(jù), 要求實現(xiàn)了一個支持并發(fā)的B+樹索引迭代器
  • P3 (查詢執(zhí)行 Query Execution): 為支持SQL查詢(最新版的BusTub增加了基礎(chǔ)SQL語句的Parse和Query Planning), 要求實現(xiàn)了順序掃描,索引掃描,插入,刪除,投影,過濾,嵌套循環(huán)join,索引join,哈希join,聚合,排序,limit,top-N等核心執(zhí)行功能
  • P4 (并發(fā)事務(wù)管理 Lock Manager): 為了管理并發(fā)事務(wù), 要求實現(xiàn)資源鎖管理器來根據(jù)不同的事務(wù)授予/阻塞資源鎖請求.它支持READ_UNCOMMITED,READ_COMMITTEDREPEATABLE_READ作為事務(wù)隔離級別和分層的資源鎖
個人感覺, 從難度來說P2 > P1 = P4 > P3. 不知道為什么, CMU很少課是用C++的, 要么是C要么就是Python. 所以這節(jié)課還可以操練一下Modern C++, 感覺還挺珍貴的. labs都是在gradescope上自動評分的, 可以無限次提交. 而且TA的回答問題非常到位和迅速, 給予很大的幫助 (和上面15619形成了鮮明的對比). 而且數(shù)據(jù)庫這個概念本身, 在實操中就非常常用,所以我覺得在眾多15-XXX系統(tǒng)課里是屬于優(yōu)先級比較高需要上的.
此外, 這節(jié)課的gradescope有個排行榜, 一學(xué)期下來累計在排行榜上排名高的, Andy會發(fā)一件BusTub短袖衣服. 穿著這衣服在CMU校園里逛的時候可神氣了!


15-641 Computer Network

版本: Fall 2022
傳送門: Networking and the Internet, Fall 2022
性質(zhì): 封閉課
編程語言: C
個人評分: ★★★☆☆
課業(yè)壓力: ★★★☆☆

計算機(jī)網(wǎng)絡(luò)也算得上是計算機(jī)教育體系里非?;A(chǔ)的課程了. 在本科階段我沒選上計算機(jī)網(wǎng)絡(luò)的選修課, 所以心里一直有點遺憾念叨著這門課, 來CMU強(qiáng)行拉著我的隊友總算圓夢了. 這門課人數(shù)挺少的, 在一個小教室里上大概30,40個人, 并不算是一門熱門的SCS系統(tǒng)課.
教授Justine Sherry's Homepage 比較的風(fēng)趣幽默, 很典型的美國白人女孩兒風(fēng)格, 上課還會給大家?guī)浅? 課程的內(nèi)容其實還比較分散, 大概2~3節(jié)lectures就能講完一個話題. 核心概念有:

  • 鏈路層: Routing算法(Distance Vector, Linked State Routing, SDN)
  • 網(wǎng)絡(luò)層: IP Routing, Ipv4/6, Subnetting, BGP算法, Gao-Rexford條件
  • 傳輸層: UDP, TCP(三次握手四次揮手, 阻塞調(diào)控)
  • DNS, CDN, 視頻傳輸?shù)腂BA算法
  • TLS, 對稱與非對稱性加密傳輸, 安全認(rèn)證
  • 網(wǎng)絡(luò)虛擬化
這節(jié)課一共有3個雙人組隊labs的, 其實內(nèi)容本身還算比較的有趣solid, 唯一不足的地方就是自動評分的gradescope時常有bugs, 比如它卡時間卡的非常緊, 你一個包非得在1秒到2秒之間到, 你0.8秒和2.2秒都算你錯, 而且gradescope掩掉了stdout所以你并不知道到底是哪里出了問題, 究竟是代碼crash了還是只是單純的和他的要求不符等. 具體的3個labs內(nèi)容包括:

  • mixnet安全混合源路由:為了在網(wǎng)絡(luò)中實現(xiàn)安全通信,Mixnet實現(xiàn)了鏈路層(Linker Layer)的報文路由的加密,重定向混合, 以防止網(wǎng)絡(luò)中的竊聽者. 從生成樹協(xié)議(Spanning Tree Protocol)來構(gòu)建網(wǎng)絡(luò)拓?fù)? 并用Dijkstra最短路徑加上混合路由來傳包
  • TCP Protocol: 直接了當(dāng), 請實現(xiàn)個TCP協(xié)議. 使得可以在兩端用戶之間建立雙向有序可靠的數(shù)據(jù)傳輸, 是網(wǎng)絡(luò)模型結(jié)構(gòu)中傳輸層的一個協(xié)議. 要點包括:三次握手四次揮手(SYN/FIN),數(shù)據(jù)塊排序重組(stream reassembl),流量控制(滑動窗口),重發(fā)機(jī)制(指數(shù)補(bǔ)償),狀態(tài)轉(zhuǎn)換(有限狀態(tài)自動機(jī)), 等
  • Http: 分別實現(xiàn)HTTP server和client. 服務(wù)器端解析和驗證HTTP請求, 并支持GET,HEAD,POST方法且能I/O復(fù)用同時服務(wù)多個客戶端. 客戶端會根據(jù)依賴關(guān)系構(gòu)建圖, 并為單個客戶端實現(xiàn)流水線多請求和并行連接, 以獲得更好的性能
這節(jié)課其實在所有SCS系統(tǒng)課里, 并算不上是優(yōu)先級特別高的課. 大部分人的工作中, 對計算機(jī)網(wǎng)絡(luò)有個大致的了解其實就可以了, 很多細(xì)節(jié)最多只能算是錦上添花的good to know.
但我個人somehow非常喜歡這些計算機(jī)網(wǎng)絡(luò)的話題內(nèi)容. 在十二月份結(jié)課后的圣誕節(jié), 我決定把這節(jié)課的labs的內(nèi)容合起來規(guī)整一下做成一個自己的項目 -- 一個輕量的C++網(wǎng)絡(luò)庫. 持續(xù)更新中, 現(xiàn)在github已經(jīng)收集了100顆星星?. 我在知乎也有直播這個項目的進(jìn)度, 希望有興趣的同學(xué)可以關(guān)注并star一下我的Turtle.
15-640 Distributed System

版本: Spring 2023
傳送門: Distributed Systems
性質(zhì): 封閉課
編程語言: Java為主
個人評分: ★★★
課業(yè)壓力: ★★☆☆

這門640分布式系統(tǒng)應(yīng)該是很多來CMU上課的同學(xué)的心中夢課了. 它有兩個版本, 秋季很潮流是用Go來做labs, 春季比較復(fù)古是C(1個project)和Java(3個projects).
教授Satya 資歷非常老, 是上個世紀(jì)80,90年代主導(dǎo)編寫CMU的andrew file system的主力軍. 他的lectures風(fēng)格是那種, 一節(jié)課80分鐘只講了10頁P(yáng)PT但卻讓你聽的津津有味的類型. 我個人覺得這種風(fēng)格挺不錯, 把要講的東西都講的很清楚, 雖然也有別的同學(xué)覺得講的太慢了. 不過可能是因為上過不少系統(tǒng)課了的話, 并沒有覺得在這門課里學(xué)到很多新東西, 大多時候都更像是一種復(fù)習(xí). 核心概念包括:

  • 分布式系統(tǒng)的歷史與演進(jìn)
  • 網(wǎng)絡(luò)通信的不穩(wěn)定性對分布式系統(tǒng)帶來的挑戰(zhàn)
  • RPC與實現(xiàn)
  • 緩存和Prefetching的重要性
  • 分布式系統(tǒng)中各種錯誤的可能性與防范
  • 系統(tǒng)擴(kuò)容
  • 分布式共識協(xié)議: Two-Phase Commit, Quorum, Paxos
  • 分布式系統(tǒng)的安全
一共有4個單人project, 前兩個代碼量稍微大一些, 后面兩個好做一些. 內(nèi)容分別是:

  • (C) 文件rpc遠(yuǎn)程過程調(diào)用: 用TCP Socket實現(xiàn)rpc call來"重載"一系列基本的如open, write, read, lseek, close等system call使得這些指令被傳輸?shù)竭h(yuǎn)程機(jī)器上執(zhí)行并打包返回. 服務(wù)端可以并發(fā)地處理對不同文件進(jìn)行操作的多個客戶端, 并來回序列化/反序列化參數(shù)和錯誤碼. 比較扎實和tedious的一個project, 讓人深刻的明白寫rpc的stub是多么的麻煩, 所以在現(xiàn)實生活中應(yīng)該盡可能去調(diào)現(xiàn)成的rpc的包
  • (Java) 分布式文件緩存代理: 多個客戶端可以連接到一個本地代理; 多個本地代理可以連接到一個中心服務(wù)器. 文件緩存提供打開文件時會話語義的一致性(session-semantics consistency),并使用Check-On-Use方法保證緩存的新鮮度
  • (Java) 自擴(kuò)容與縮容: 這是我個人覺得比較無聊的一個project. 它用Process來模擬VM, 然后會不斷的給你的Server發(fā)請求, server需要根據(jù)當(dāng)前的流量決定是否需要擴(kuò)容或者縮容. 和15619的第一個project非常的類似. 但有點搞笑的是, starter code里給了一些library 是 java class的形式, 但是用現(xiàn)代IDE比如IntelliJ打開后, 可以直接反編譯讀到一些重要變量的值, 比如一個request需要多久執(zhí)行, 前后端process所需要用時等等, 直接就能很簡單的計算出需要多少的VM了. 我很懷疑老師是不是以為給大家一個Java class而不給源碼大家就看不到這些值了
  • (Java) 分布式事務(wù)-兩階段提交: 這個就是比較經(jīng)典的Two-Phase Commit的實現(xiàn). 在階段一中, 主節(jié)點向每個參與節(jié)點提出事務(wù), 希望獲得一致同意. 在收集完所有參與者節(jié)點的投票后, 主節(jié)點做出最終決定(提交Commit或中斷Abort)并進(jìn)入第二階段, 將該決定分發(fā)給每個參與節(jié)點. 為了應(yīng)對各種可能的故障, 主節(jié)點和參與節(jié)點都使用預(yù)寫式日志(Write-Ahead Logging)來實現(xiàn)狀態(tài)持久化和崩潰恢復(fù). 整體比較的直觀, 很快就能寫完. 感覺autolab的test case其實是不太全的, 稍微處理一下failure case就能過, 但我其實心里知道某個角落里估計代碼還有些小問題
整體而言, 這節(jié)課還是比較值得一上的, 尤其是在如果你只能選很有限的SCS系統(tǒng)課的限制下, 這門課因為比較包容萬象, 優(yōu)先級應(yīng)該比較高. 但也能感覺到課上有些同學(xué)的基礎(chǔ)比較薄弱, 應(yīng)該是沒上過15513就來上了這門課. 我是比較喜歡在piazza上回答問題的, 但有些同學(xué)的問題實在是有點好笑讓人忍俊不禁, 沒法回答.
15-618 Parallel Computer Architecture and Programming

版本: Spring 2023
傳送門: 15-418/15-618: Parallel Computer Architecture and Programming, Spring 2023
性質(zhì): 封閉課
編程語言: C++
個人評分: ★★★☆☆
課業(yè)壓力: ★★★★☆

這門課我覺得可能是SCS 15-XXX課里對硬件講得最多的一門課了. 在本科階段的時候就上過一門并行計算的, 當(dāng)時對那些機(jī)器結(jié)構(gòu)啥的學(xué)的迷迷糊糊, 在這門課里總算是都學(xué)明白了. 但這門課的workload有點大: 首先它每周要上3節(jié)lectures,  一節(jié)課可以講上100頁P(yáng)PT, 快得像開飛機(jī).  lectures上70%學(xué)期, 2次考試. 然后放你4周時間做一個final project.
課程的核心概念非常的多和扎實, 包括:

  • 不同的并行編程模型概述
  • GPU架構(gòu)與CUDA編程
  • 共享內(nèi)存并行 OpenMP, Clik
  • 進(jìn)程間通信并行 MPI
  • 調(diào)度scheduling和locaity
  • 硬件緩存一致性(cache coherence)的架構(gòu)與實行
  • Interconnect的不同硬件建筑方式
  • 內(nèi)存一致性模型(memory consistency)
  • 精細(xì)鎖與lock-free無鎖編程
  • 事務(wù)性內(nèi)存(transactional memory)
  • 深度學(xué)習(xí)中的并行運(yùn)用
整個學(xué)期有4個雙人組隊的projects:

  • ISPC: 用Intel的ispc指令集來寫vectorization向量化的代碼來加速計算
  • CUDA: 用CUDA來編寫GPU的程序來處理一個圖像處理的問題
  • OpenMP: 用共享內(nèi)存的并行編程的方式來加速經(jīng)典物理模擬問題N-body-simulation
  • MPI: 用進(jìn)程間通信的方式來加速同一個N-body-simulation問題
雖然我在上面輕描談寫的描述了這4個projects, 其實他們都是有很大的workload的. 首先, 每個projects都對應(yīng)一種不同的并行編程模型語言, 要寫一個正確的版本已經(jīng)需要花一定的功夫了, 而且每個projects的要求都非常高, 常常需要用perf和gprof去仔細(xì)profile程序每一步的耗時和瓶頸在在哪里, 要優(yōu)化到非常極限的地方才能拿滿分. 這點我其實不是特別喜歡, 很多時候其實只有1種特定的優(yōu)化算法可以達(dá)到要求的性能, 你不斷的迭代優(yōu)化提升都非常有限, 直到你最終想到了那種特殊的優(yōu)化算法后一下子就柳暗花明了. 但做出來后確實是非常有成就感: 最終優(yōu)化的版本可能比你寫出來第一個正確的版本要快上千倍, 都是你和隊友一點一點優(yōu)化出來的.
學(xué)期末有個為期4周的組隊final project, 任何和并行計算相關(guān)的話題都可以, 時間其實還是挺緊張的沒法做太大的project. 我和隊友現(xiàn)在正在施工中, 打算做一個線程獨立隊列、帶工作偷取功能的threadpool來取得更好的workload balance.有興趣的話可以持續(xù)關(guān)注
總體來說, 這門課比較的底層low-level, 對硬件感興趣的同學(xué)可能會覺得非常有趣, 不感興趣的同學(xué)可能碰都不會碰. 在選課優(yōu)先級上應(yīng)該也不算是特別的高, 即不是特別熱門的課. 對底層優(yōu)化有興趣的同學(xué)可以挑戰(zhàn)一下.
遺憾

最遺憾的就是沒有時間和精力, 或許也沒有膽量, 去上15-610 Operating System Design and Implementation. 這課最終的成果是你寫一個操作系統(tǒng), 然后load進(jìn)一個光盤里可以在一個老舊的電腦上跑起來. 在朋友圈我有看到過成功上下來的同學(xué)拍的視頻, 在教授的辦公室里那個老舊的電腦上把自己寫的操作系統(tǒng)跑起來的成就感.
但我沒有足夠的時間去上了, 如果上這門課的話可能一學(xué)期啥別的事兒都不用干了. 我們項目里有基礎(chǔ)很不錯的同學(xué)曾挑戰(zhàn)上這個課, 最后都是期中后drop了這門課因為workload太大了, 沒能完成.
立個flag: 以后得了空, 一定得把MIT那門公開課的那個OS lab給他寫出來, 實現(xiàn)一下我想要自己寫操作系統(tǒng)的小目標(biāo).
結(jié)語

兩年的時光, 我覺得值了. 村里真的很枯燥無聊, "好在"CMU作業(yè)夠多讓人一起忙碌著沒空閑下來.
最近如果空了的話應(yīng)該會繼續(xù)修修補(bǔ)補(bǔ)我的Turtle項目, 把Timer定時器做完后, 爭取能在6月前第一版定型收尾.
有興趣的小伙伴可以關(guān)注我的github: https://github.com/YukunJ 求粉求星星

-----------------------------
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

40

帖子

3

積分

Rank: 1

沙發(fā)
發(fā)表于 2023-4-10 23:35:39 | 只看該作者
[驚喜]居然沒上15410
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

46

帖子

9

積分

Rank: 1

板凳
發(fā)表于 2023-4-11 00:40:45 | 只看該作者
媽的 本科期間刷到就好了[生氣][生氣]
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

39

帖子

3

積分

Rank: 1

地板
發(fā)表于 2023-4-11 02:18:05 | 只看該作者
[笑哭]實力不允許啊
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

53

帖子

3

積分

Rank: 1

5
發(fā)表于 2023-4-11 03:41:32 | 只看該作者
[害羞]現(xiàn)在看看也不晚的!
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

48

帖子

3

積分

Rank: 1

6
發(fā)表于 2023-4-11 05:02:51 | 只看該作者
羨慕能夠接受這么優(yōu)質(zhì)的教育[贊]
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

55

帖子

0

積分

Rank: 1

7
發(fā)表于 2023-4-11 06:24:21 | 只看該作者
看完受益良多,感謝!
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

43

帖子

2

積分

Rank: 1

8
發(fā)表于 2023-4-11 08:17:28 | 只看該作者
作者是美本嗎[思考]
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

51

帖子

3

積分

Rank: 1

9
發(fā)表于 2023-4-11 09:24:48 | 只看該作者
是滴. 看我主頁~[愛]
精選高品質(zhì)二手iPhone,上愛鋒貝APP

0

主題

50

帖子

3

積分

Rank: 1

10
發(fā)表于 2023-4-11 10:31:03 | 只看該作者
帶我走吧 [大哭][大哭][大哭][大哭]
精選高品質(zhì)二手iPhone,上愛鋒貝APP
您需要登錄后才可以回帖 登錄 | 立即注冊   

本版積分規(guī)則

QQ|Archiver|手機(jī)版|小黑屋|愛鋒貝 ( 粵ICP備16041312號-5 )

GMT+8, 2025-2-7 20:49

Powered by Discuz! X3.4

© 2001-2013 Discuz Team. 技術(shù)支持 by 巔峰設(shè)計.

快速回復(fù) 返回頂部 返回列表