本文屬於論文導讀系列,這次針對的是高速網路(RDMA)的應用,來源是 SICCOM 2017 會議上。這篇文章有趣的地方在於他不是單純的介紹架構,而是透過一個實際的應用程式來闡述當該應用程式搭配上 RDMA 後獲得了 Zero Copy 的特色,在此特色加持下,原先應用程式的效能提升了多少。本文的標題是 Towards Zero Copy Dataflows using RDMA, 其內容跟 AI 的訓練過程有關,採用了由 Google 開源的訓練框架, Ternsorflow, 並且分析了在原先分散式的訓練模型中,資料不論在 CPU/GPU UserSpace/KernelSpace 甚至節點間都有大量的資料複製行為。透過 RDMA 的幫忙減少了這些行為最後證明了整體分散式訓練的時間大幅度縮短,是個非常有趣的短文.
Translate jupyter notebook to python script
有在接觸 AI 領域與 Python 程式設計的人,想必都對 Jupyter Notebook 這個應用工具不陌生。在某些特殊的情境下,會有部分的需求想要透過命令列直接執行該 Jupyter Notebook,由於 Jupyter Notebook 檔案本身不是一個被認得的執行檔,所以這時候都要特殊方法將該 Jupyter Notebook 轉換成 Python(IPython) 檔案來執行。 Jupyter Notebook 本身的工具就有提供這樣的功能可以來轉換,而本文想要介紹的是如何使用程式化的方式來轉換,透過自行撰寫 Python 腳本來轉換,可以讓我們在轉換的時候進行一些中間處理,譬如過濾些特殊用法,如IPython的語法。
ONOS Trellis Testing
[論文導讀] Re-architecting datacenter networks and stacks for low latency and high performance
本文屬於論文導讀系列,這次針對的是SIGCOMM 2017所發表的論文中關於Data Center架構的論文。SIGCOMM這個 Conference裡面都有很多跟網路相關且高品質的論文,除了學界之外,也常常有很多業界會將相關的研究與產品設計投稿於此,因此是個滿好學習網路概念的一個資源。本篇文章針對的主題是 Re-architecting datacenter networks and stacks for low latency and high performance, 該文主旨希望重新打造一個有真正高傳輸效能的資料中心,其中涉及了非常多的面相,從交換機的實現到上層 TCP 協定的修正,從諸多面向來探討傳統的諸多協定為什麼沒有辦法達到真正的高效能傳輸,該論文非常精彩,可以學習到非常多的概念與知識,非常歡迎閱讀。
OVS + DPDK + Docker 共同玩耍(二)
本文延續前篇文章關於 Docker/OpenvSwitch/DPDK 整合遇到的連線問題,此文章會專注於這個連線問題,從問題發生的原因到如何解決,以及該問題為什麼會在上述的組合中發生都進行一些研究與分析,雖然最後還沒有找到真正造成封包損壞的原因,但是至少也把問題範圍給縮小到 OpenvSwitch/DPDK 上.
OVS + DPDK + Docker 共同玩耍
本文介紹了一種將 Contaienr 創建於 OpenvSwitch 與 DPDK 整合的網路拓墣下所遇到的連線問題。開頭先闡述了拓墣架構以及相關的軟體版本,接者介紹是如何搭建起整個測試環境,並且在測試環境中遇到了網路連線的問題,眾多的測試組合中,卻只有一種組合能夠正常的在 Container 間建立起能夠傳輸的 TCP 連線。最後透過 AB 測試的方法歸納出一些會造成問題出現的環境。
How to download http file in Android
本篇文章用來記錄如何在Android裡面透過 Http 抓取檔案
這邊主要會用到兩個物件,分別是 URL 以及 HttpURLConnection。
步驟如下
- 根據目標的
URL
去初始化對應的URL物件 - 透過該 URL 得到對應的 HttpURLConnection
- 從該 HttpURLConncetion 取得回應,譬如
Header
或是Body
[論文導讀] Maglev: A Fast and Reliable Software Network Load Balancer
本篇文章是屬於論文導讀系列,這次的對象是Google所推出的Software Network Load Balancer, Meglev. 透過對該論文的研究後可以學習到Google對於一個 Network Load Balancer 的期許以及設計的思考脈絡,並且實際理解其架構來學習到如何設計一個通用(可運行在任意的 Linux Server上), 分散式且易於擴充的彈性架構以及高PPS(Packet Per Second)處理能力的軟體程式。最後透過論文中的實驗與效能評估來觀察實際上 Meglev 的效能以及是否有滿足Google對該軟體架構的期望。
NAT Lookback Introduction
其實網路上關於 NAT Loopback 的文章到處都有,從原理,到如何在Linux
實作等網路上各種資源都有,那這篇文章跟網路上的教學又有什麼不同?
我唯一能夠貢獻的是 NAT Loopback 關於 Linux Kernel
的問題,在某些情況下,NATLoop Back
會因為 Linux Kernel Network Stack
的關係導致無法運作。當初我遇到這個問題時也是百思不得其解,於 google 世界到處尋找,都沒有看到任何線索。
最後只好自己深入 kernel 內找尋原因,從 Linux Kernel Network Stack 開始翻找。
經過一些時間的研究與証實後,也終於確認了某個原因,然後將這個問題的關鍵字轉換後,也有找到一個沒有上到 upstream 的 kernel patch 針對此問題處理。
Anki 使用感想 (tutorial)
Anki 使用感想 (後)
有鑑於之前的文章 Anki 使用感想 所提到的自動爬網站並加入卡片的功能對於一般使用者不方便理解與使用。
但是目前也時間沒有什麼多的時間去將其改善成一個友善的one-click的程式來完成這件事情,所以決定先寫一篇文章來手把手教學如何在 Windows 上面設定這個程式。等之後有時間與想法可以再來將其整個改善。
畢竟此程式一開始就只是為了讓自己方便使用而已,所以在程式撰寫上各種醜陋XD
Dict
本程式主要主要的字典查詢網站是透過 Yahoo Dict 為主,以 infest 當作範例。
目前抓取的邏輯非常簡單!
卡片的正面是該單字的英文與其英標,而其背面則是剩下的所有解釋。
如下圖所示
如果對於這邊卡片的正反面,字典抓取來源網站有任何想法的都可以提出來。