Birkhoff-von Neumann Crossbar 光交換網路的排程方案
This is a summary aimed at looking for "high performance novel scheduling algorithm for fast optical switch in data center network"
主要基於 [1~6],也包含一些對 optical data center network 相關技術的理解,並且拿了一個自以為蠻漂亮的排程演算法做為了例子( •̀ ω •́ )✧,ゲームをする!
Network Architecture and Optical Switching Technology
這裡首先對 optical data center network 的目標優勢與挑戰進行一些概述 [1],而後介紹這一技術中佔據較重要地位的光交換機 (我有時也很隨意地直接叫它光開關) 技術
Demands of Optical Data Center Networks
光資料中心網路 (optical data center networks, optical DCNs) 是被用以符合高容量,低延遲,細粒度的 DCN 需求的一種架構,它有望彌補下面列舉的幾條傳統電子方案的缺陷 [1.1]
- In hierarchical tree-like topology based on electronic switch, the scaling issues of ball grid array (BGA) package causing bandwidth limited by application-specific integrated circuits (ASICs) input/output (I/O) bandwidth
- Electronic switch achieves higher bandwidth by stacking ASICs in multitier structure, which leads to larger latency and higher cost;
- Electronic circuit-based solution is facing a difficulties when large interconnectivity and fast reconfiguration are required;
- Storing and transmitting properties of electronic switch have significant power dissipation, and the optical/electronic/optical (O/E/O) conversions and format-dependent interfaces will perform lower power/cost efficiency.
這就成為了故事的開端,可以發現這些困境大體是電子器件的一些內稟性質 (fermion... ... 好麻煩... ...) 所導致的,有一些甚至是不可避免的
另一方面,從下面的表格就可以看出光子學解決方案的“顯著”優勢,它幾乎覆蓋了人們對於未來 DCN 的所有幻想,這樣,各種光交換機與一些排程演算法或許能在這裡擁有自己的一片天空... ...
Requirements | Optical Solution |
---|---|
Capacity <bandwidth for more inter-rack & intra-cluster communication> |
<wavelength division multiplex (WDM) to provide power per unit bandwidth> |
Latency <switch latency from buffering & routing algorithm & arbitration> |
<optical packet/burst switching (OBS, OPS) based on fast optical circuit switching (OCS)> |
Interconnectivity <support concurrent flows & bandwidth ultilization & service delivery> |
<(high-capacity) optical interconnection technology> |
Scalability <scale nodes number for future capacity & cost> |
<photonic integration may provide scaling without loss of capacity and power/cost> |
Flexibility <manage servise delivery & adapt to changing needs> |
<software-defined networking (SDN) is used to facilitate highly flexible provisioning> |
Power/Cost Efficiency <reduce cost & scale bandwidth> |
<data traffic in optical domain, no O/E/O power consumption> |
順帶一提,裡面涉及到的 OPS/OBS,光分組交換/光突發交換技術能借由突發流的統計複用實現亞波長的頻寬粒度,其中,OPS 網路在相同通道中同時/先後傳輸包頭 (package header) 與資料包 (package, \(\it10^2\rm\ ns\sim\it10^2\rm\ ms\)),不需要提前預留連線,也有很好的 bandwidth efficiency,適合於 DC 較小資料量的傳輸,OBS 則藉助於大量的突發 (burst, \(\it10\sim10^3\rm\ ms\)) 與先於其在 (物理上的) 分離通道中傳送的塊控制資料頭 (block control header, BCH) 實現資源預留,保留 OPS 的 flexibility 以及 efficiency 的同時降低了對光交換機和光快取的要求,因為一般光交換機的 reconfiguration time 需要遠小於包/突發的時長
作為 optical DCNs 架構的例項,可以參考 Opsquare: A flat DCN architecture based on flow-controlled optical packet switches [4] 以及 Torus-topology Data Center Network based on Optical Packet/Agile Circuit Switching with Intelligent Flow Management [5] 這兩種基於 OPS 的架構,它們在當前 (\(\it2020\pm\)) 各種架構中擁有相對較優的效能,都有將 electronic buffer (EB) 設定在網路連線部分,從而起到在衝突中重傳資料包或等待排程指令的作用。兩個網路分別是基於 OPS 與 OCS 的 Torus (同時使用了 Deflection, ODL 和 EB) 以及基於 OPS 的 OPSquare,順帶一提,它們在 scalability, flexibility 以及 power/cost 方面也都有不錯的表現
Optical Switches
由上所述,optical DCNs 的效能很大程度上受制於光交換機的效能。下面是一些比較常用,且有可能 (有些已經具備了商業化的能力甚至已經進入市場) 被用於整合的光交換機,它們的 switching time 基本都控制在 \(\it1\rm\ ns\sim\it10\rm\ \mu s\) 的範圍內 [1.1]
Switch Type | Switching Time | Scale | Loss |
---|---|---|---|
Mach-Zehnder interferometer (MZI, thermo-optic) | \(\sim\it10\rm\ \mu s\) | \(\it32\times32\) | High |
micro-ring resonator (MRR, thermo-optic) | \(\sim\it10\rm\ \mu s\) | \(\it8\times8\) | Fair |
PLZT MZI | \(\sim\it10\rm\ ns\) | \(\it8\times8\) | High |
InP MZI | \(\sim\it2.5\rm\ ns\) | \(\it8\times8\) | High |
LiNbO3 MZI | \(\sim\it1\rm\ ns\) | \(\it32\times32\) | High |
MZI + electro-absorption modulator (EAM) | \(<\it10\rm\ ns\) | \(\it8\times8\) | Fair |
tunable wavelength converters (TWCs) + arrayed waveguide grating router (AWGR) | \(\sim\it10s\rm\ ns\) | \(\it10s\times10s\) | Fair |
tunable lasers (TLs) + AWGR | \(\sim\it10s\rm\ ns\) | \(\it100s\times100s\) | Low |
semiconductor optical amplifier (SOA) multistage | \(<\it10\rm\ ns\) | \(\it16\times16\) | Fair |
稍慢一些的光交換機如基於微機電系統 (microelectromechanical system, MEMS) 的光交換機沒有列在上面,這些光交換機大體可以 (依據其構造原理) 分為如下幾類 [1.2]
Microelectromechanical system optical switch (基於控制微鏡的運動控制,大體分為利用反射機制改變光的傳播方向以及利用干涉衍射機制改變光的相位兩類,前者易於進行批量製造)
特徵數值 \(T=50\rm\ ms,IL=3.5\ dB\);
Beam-steering-based optical switch (通過 2D piezoelectric actuators 將束流引導至對應的 \(\varphi,\theta\) 位置,並由 integrated position sensor 探測光束指導反饋對束流的優化,具備軟體定義網路 (software-defined networking, SDN) 的特性)
Liquid crystal optical switch (利用電壓控制液晶 (liquid crystal, LC) 中分子取向實現極化或折射率的變更,有些設計涉及到了雙折射及 Liquid crystal on silicon (LCoS) 的技術,受限於 polarization-dependent loss (PDL) 以及較高的串擾)
Electro-optic optical switch (基於電光效應 (electro-optic effect, EO effect,外加電場改變材料折射率,具備 \(\rm ns\) 級的超快響應),結合相位調製和干涉機制設計,採用 LiNbO3,PLZT 等材料,較高的插損限制了 scalability)
Semiconductor optical amplifier-based switch (這個原理類似於一種開關器件,有外加電流的情況下,入射光就成功引發受激輻射光放大,沒有的話也就沒有了出射光,之後通過 broadcast-and-select 架構將其排列為光交換機的陣列,但是批量生產時這種設計需要 \(N^2\) 個 SOA)
Thermo-optic optical switch (電流控制電極溫度,進而影響材料的折射率,這樣就能製造一些耦合器件作為開關使用,但是需要一些熱光係數高且熱導率低的材料,其優勢在於不依賴於波長與偏振)
下面表格對這幾類光交換機的效能給出了更加詳細的評價 [1.2]
Characteristics | MEMS based | Beam-Steering | Liquid crystal | Electro-optic | SOA based | Thermo-optic |
---|---|---|---|---|---|---|
Switching speed | \(\it10\sim20\rm\ ms\) | \(\it25\rm\ ms\) | \(\it100\rm\ ms\) | \(\mathbf{\sim\ ns}\) | \(\mathbf{\sim\ ns}\) | \(\it5\sim10\rm\ ms\) |
Insertion loss | Medium | Low | High | High | Low | Low |
Power efficiency | Medium | Low | High | High | Low | Low |
Scalability | Large (\(\it320\times320\)) |
Large (\(\it384\times384\)) |
Medium (\(\it1\times20\)) |
Medium (\(\it32\times32\)) |
Medium (\(\it16\times16\)) |
Small (\(\it8\times8\)) |
Reliability | Low | Low | High | High | Medium | High |
Implementation cost | Medium | Medium | Low | High | High | Low |
Challenges of Optical DCN Solution
由於當前缺少有效的光記憶器件,DC 中重要的衝突解決 (contention resolution) 功能不易實現,作為解決方案,fixed fiber delay line (FDL) 可以在時域暫存衝突包/突發,wavelength conversion 方法能夠在頻域將衝突轉發到其它通道,deflection routing 提供在空域將衝突轉發到其它埠的方案,但是它們都不可避免地引入了路由控制 (routing control) 以及包同步的問題。另一方面,未來 DCN 對於光交換機的高速切換以及一些相應的系統控制機制提出了更高的要求,當前的 optical DCNs 在 scaling 方面也受制於光交換機的埠數目,要想在這方面既避免使用層次結構,又保留不錯的緩衝控制機制,或許得期待 photonic integration 的後續發展了
這些問題的解決方案更多來自於硬體方面如光器件的效能,但也並非不能考慮從一些排程演算法 (scheduling algorithm) 的軟體方面入手尋找思路,關於這一方面,可以直接轉到後面的 scheduling algorithm,那裡會有一些介紹性的內容,如果想看一個比較完整的演算法,請移步 crossbar switches as example (●'◡'●)
Switching Architectures and Scheduling Algorithms
下面將重點放在了關於高速交換技術的一些基礎知識,當然也涉及到了一些相關的排程演算法
Basic Knowledge on Packet Switching
設計一個交換網路 (基於轉發表 (forwarding table),注意交換和路由是不同的,前者是對於特定網路節點而言,而後者關注大規模網路中節點間的資訊傳遞),需要考慮“輸出衝突 (output contention)”、“出入埠連線的建立速度 (最好能夠具備 self-routing 的能力)”的問題。在這裡,首先我們需要一些定義來描述衝突,關於這點,有內部阻塞以及輸出衝突兩種型別,分別稱作 blocking 和 output contention,與此同時,一些無阻塞的交換網路也是存在的,如 crossbar switch
在以上基礎上,定義描述交換網路效能的兩個物理量 throughput \(X\propto\mathbb{E}[C_{\rm input}]/\mathbb{E}[\tau_{\rm output}]\) 以及 speedup \(S=T_{\rm input}/T_{\rm forwarding}\),更高的 speedup 說明網路具備更強的衝突化解能力,對應著更高的 throughput
交換架構可以分為如下幾類:
Packet switches ├── Time division switching (TDS) │ ├── Shared medium │ └── Shared memory └── Space division switching (SDS) ├── Single path │ ├── Crossbar │ ├── Fully interconnected │ └── Banyan └── Multipath ├── Augmented banyan ├── Clos ├── Multiplane └── Recirculation
其中,TDS 需要內部的通訊頻寬大於所有輸入埠聚集的頻寬,但能夠輕鬆支援多播/廣播,shared memory type 相比於 shared medium type 有更高的記憶體利用率但需要雙倍記憶體速度;SDS 中,crossbar (更多資訊見後面的 Crossbar Switches as Example) 是 fully interconnected type 的拓撲學等價,二者具備差不多的特性 (如 \(N^2\) 複雜度和非阻塞結構);而 banyan-based 交換機 (包含 Delta-Omega-Banyan 這三類同構的拓撲) 中,每條資訊需經 \(\log N\) 的節點以到達終點;Multipath 相比於 single path 具備了更強的容錯能力,其中的 multiplane type,recirculation type 還能增大 throughput,但 recirculation 有時會導致資訊的順序錯亂
資料緩衝策略有如下幾類:
Buffering strategy ├── Shared-memory queuing ├── Output queuing (OQ) ├── Input queuing ├── Virtual output queuing (VOQ) └── Combined input and output queuing (CIOQ) .(Crosspoint queuing? place incoming cells in crosspoing buffer (XB))
其中,shared-memory queuing structure 通過輸出端對於記憶體的共享實現了記憶體的最大利用率,但面臨尺寸的限制;而 OQ 在以上缺點的基礎上,又失去了記憶體利用率的優勢 ε=ε=ε=┏(゜ロ゜;)┛,在服務質量 (Quality of Service, QoS) 的控制上有了一些提高;相比於這兩個, input queuing 不受限於尺寸,但帶來了線段阻塞 (head-of-line blocking, HOL blocking,儘管輸出埠空閒,資料卻被堵在了輸入佇列) 的問題,這使得它的 throughput 稍低一些 (\(\it58.6\%\));為解決 HOL blocking,VOQ 中的每個輸入緩衝被分成 \(N\) 份,這個可能是當下的研究熱點 (\(\it 2020\pm\)),其排程演算法比前幾個要複雜;CIOQ 則是另一種用於解決 HOL 的策略,它通過交換結構的 speedup 換取更高的 throughput
大規模 (多模組) 交換結構分為如下兩種型別
Large-scale switch ├── Single-stage switch │ └── Parallel packet switch (PPS) └── Multistage switch ├── Partially connected multistage network │ └── Banyan-based switch └── Fully connected multistage network └── Clos-network switch
其中,PPS 有最大的 throughput,其效能隨 speedup 的大小而變化,但是 single-stage 難免無法支援龐大的埠數目;banyan-based network 和 Clos network 作為 multistage 則避免了上述缺陷,banyan network (\(N\times N\) network, \(\log_bN\) stages, \(b\times b\) switching elements) 也支援 self-routing,但會帶來內部阻塞,交換機數目的增大將導致其效能驟減;Clos network (\(N\times N\) network, \(\it3\) stages, \(n\) input lines, \(\it m\geq2n-1\) middle-stage switch modules, maximum number of crosspoints \(N_x=O(N^{\it3/2})\)) 儘管內部全連通,但需要相應 (複雜) 的調整才可使網路具備非阻塞性質,但即便如此也無法避免內部阻塞的發生,解決方案一般只能是粗暴地增加內部連線數目和頻寬了... ...
Performance Analysis
瞭解了一些基本交換結構後,下面利用一點基礎的排隊論知識給出 input-buffered switches, output-buffered switches 以及 completely shared-buffer switches 這三種交換策略的效能分析 [2]
注意,這裡採用的交通源模型是上圖所示的幾何分佈流,於是負載 \(\rho\) 就是每個時間間隔內信源處於啟用狀態的佔比
Input-Buffered Switches
在有 HOL blocking 存在的情形下,總是會有資訊傳輸延遲,因而這種方案無法獲得 \(\it100\%\) throughput,假若將信源定為無記憶型 (Markov),每個埠就相當於一個 \(\it M/D/1\) 排隊模型,穩態下應有每段時間內傳輸的資訊單元數 \(\bar{F}\) 與目標為 \(i\) 埠的,每段時間後仍滯留的資訊單元數 \(\bar{B}^i\) 滿足如下關係
又注意到 \(\bar{B}^i=\rho_0^2/[2(1-\rho_0)]\),\(\rho_0\) 是歸一化 throughput,可以由上式得到 \(\bar{B}^i\) 的另一種表示方式
由此可得 \(\rho_0=(2-\sqrt2)\approx0.586\),這也就是 input-buffered switches 在這種信源下的漸進吞吐量了,換句話說,一旦輸入速率大於這個值,系統就會飽和
下面藉由基於上述幾何分佈的 \(\it Geom/G/1\) 模型考察這種排程方式的等待時間,但是需要首先接受“到達每個埠的資訊單元遵循獨同分布以及擁有相同概率 \(p\)”以及“每個單位有相同機率選取任意輸出埠為目標”這兩個假設,再借助 \(\it Geom/G/1\) 模型的結論,就可以知道平均等待時間為 (用到了服務時間 \(S\),對於每段時間而言是一個隨機變數)
顯然,它的漸進形式還是蠻可憐的,隨著 \(N\to\infty\),它也以一個很快的速率趨近於 \(\infty\) [2]
Output-Buffered Switches
這裡 \(N\to\infty\) 將導致資訊單元到達輸出埠的數目遵循指數分佈 \(p^ke^{-p}/k!\),其中的 \(p\) 即為輸入負載,由此可以立刻得到所謂資訊單元丟失率 (若服務率/吞吐量無法滿足輸入負載的需求,則在輸出埠的資訊累積會導致溢位 output buffer 而丟失) 為 \(1-\rho_0/p\),舉個例子,對於 \(\it80\%\) 的負載,需要 buffer 大小大於 \(\it28\) 才能保證幾乎無丟失
我們可以運用 little's law 來求得平均等待時間,也即,平均到達數 \(\bar{Q}\) 等於平均等待時間 \(\overline{W}\) 乘以服務率 \(\rho_0\),對於 \(N\to\infty,b\to\infty\),有
Completely Shared-Buffered Switches
這裡的所有資訊單元都儲存在同一個 buffer 中,也就是說輸入與輸出共享 buffer,它的效能顯然會稍高於前兩種方案,但是似乎只能靠一些數值模擬的方式獲知它的具體的表現,與 output-buffered switches 不同的是,其丟失率隨 buffer 大小變化呈現非線性 (buffer 越大,丟失率以越大的斜率迅速減小),而前者是呈 (近似) 線性的恆定速率減小的,也就是說這裡可以使用較小的 buffer 達到 \(\it100\%\) throughput
Scheduling Algorithms
剛剛已經多次提到排程演算法的由來了,簡單概括一下,也就是說
- 首先由於日益增加的,對於高線速,高階口數的大規模交換機的需求,人們不再滿足於 output buffer 的記憶體高利用率,因為其不具備這種 scalability ;
- 但是一旦開始使用 input buffer 或 combined-input-output-buffered 策略,就不可避免地需要一些增大 throughput 的方法 (提高交換機速度或增大路徑數以解決 HOL blocking + 仲裁機制以解決衝突問題);
- 應運而生的就是這些排程演算法和路由技術了... ...
一個有不錯效能的排程演算法應具備如下特性
- Efficiency,有高 throughput 同時也能有較低的 delay,對每個時段選取最多邊的二部圖匹配;
- Fairness,能夠避免單個 VOQ 的過度呼叫;
- Stability,每個 VOQ 的佔有數目都為有限值;
- Implementation complexity,易於在硬體以較高速度實現
當然這裡有很多演算法都能符合要求,於是這裡就直截了當地介紹一些適用於 input-buffered switches 的排程演算法,也就是下面這些,它們不是全部,而且我也不會把每個都解釋清楚,總之先對這幾種演算法有個大致印象叭...
二部圖最大權匹配 (maximum weight matching,MWM, \(O(N^3)\)),是我覺得最直接的一種方法,也即
\[\begin{equation} \begin{split} \max_{w_{ij}}\sum_{e_{(i,j)\in M}}w_{ij}, \end{split} \end{equation} \]包含如 LQF (longest queue first, \(w_{ij}(t)\leftarrow L_{ij}(t)\)),OCF (oldest cell first, \(w_{ij}(t)\leftarrow \tau_{ij_{\rm HOL}}(t)\)) 和 LPF (longest port first, \(w_{ij}(t)\leftarrow\delta[L_{ij}(t)]\times[R_{i}(t)+C_{j}(t)]\)) 的一系列演算法
- 由它產生的有近似最大權 (1-APRX,犧牲了一些穩定性以換取低一些的複雜度) 和最大尺寸匹配 (maximum size matching, MSM, \(O(N^{2.5})\)),是當邊權為 \(\it1\) 時的 MWM
極大匹配 (maximal matching),對於 speedup \(N\),總是可以由最多 \(N\) 次迭代求出匹配結果,複雜度一般比較大
- 在其中已經有了如 parallel iterative matching (PIM), iterative round-robin matching (iRRM), iterative round-robin with SLIP (iSLIP), FIRM, dual round-robin matching (DRRM), pipelined maximal matching 和 exhaustive service dual round-robin matching (EDRRM) 等演算法
隨機匹配 (randomized matching),儘管不一定一直選到最好的,但卻有很高的穩定性和線性/對數複雜度
- 包含如 De-randomized, SERENA, HE-\(i\)SLIP 等演算法
幀匹配 (frame-based matching),為適應光交換的環境,採用多個 cells 合成單幀進行排程以提高效率,效能高開銷低
- 包含如 reducing the reconfiguration frequency (exact covering, minimum switching, double), fixed-size frame-based matching (frame-based MWM, frame-based maximal weight matching, frame-based multiple iteration weight matching) 和 asynchronous variable-size frame-based matching (EDRRM) 等匹配演算法
Speedup 下的穩定匹配,能夠保證已匹配的埠具有足夠高的優先順序
- 包含如 most-urgent-cell-first algorithm (MUCFA), critical cell first (CCF), last-in-highest-priority (LIHP) 和 lowest-output-occupancy-cell-first (LOOFA) 等匹配演算法
上面涉及到的符號都是網路科學中的慣常了,應該沒啥理解偏差了,在滿足一定條件的情形下,上述的各種排程演算法都可以達到 \(\it100\%\) 的 throughput
Crossbar Switches as Example
下面首先介紹一下 input buffered crossbar switches [3] 的基本結構,然後以一種適用於其的排程演算法 (這種演算法基於雙隨機矩陣的 Birkhoff-von Neumann 定理,且不需要 framing 以及 internal speedup) 作為例子來熟悉這類交換結構的功能
如上圖所示 (是一個 $\it4\times4$ 的 crossbar 的結構示意圖,以及它的基本衝突形式,這種結構顯然很簡單,且易於對其進行模組化與控制),所謂 crossbar 就是由 $N\times N$ 個全交叉的連線組成的一個陣列 (i.e.,共 $\it2N$ 個 bars,一種 single path 的 SDS),它們之間的連線在每一個時間都可以被一個置換矩陣 (permutation matrix) $P_k$ 描述,從 $i$ 埠到 $j$ 埠的 requested rate 為 $R=(r_{ij})$ 的矩陣元,若保證網路中沒有超額訂閱 (overbooking),則須使非負矩陣 $R$ 為雙隨機的 (doubly stochastic) $$ \begin{equation} \begin{split} \left\{ \begin{split} \sum_{i=1}^Nr_{ij}\leq1,\ \ \forall j,\\ \sum_{j=1}^Nr_{ij}\leq1,\ \ \forall i, \end{split} \right. \end{split} \end{equation} $$ 可以得知,只要能夠得到一組正數 (作為權值) $\phi_k$ (當然,滿足 $\sum_{k=1}^K\phi_k=1$ 且 $\it K\leq N^2-2N+2$) 與 $P_k$ 的組合,使得以下分解不等式成立,即可直接將每一個 $P_k$ 設定為與其對應的 $\phi_k$ 成正比的形式 $$ \begin{equation} \begin{split} R\leq\sum_{k=1}^K\phi_kP_k, \end{split} \end{equation} $$ 這種雙隨機矩陣的分解剛好對應著所謂 Birkhoff-von Neumann 演算法,其正規表述見 付録┍1┙,分解步驟可以虛擬碼的形式表示如下,注意,這裡涉及到共兩個步驟,首先是尋找更大元素的雙隨機矩陣 (von Neumann),而後對這個雙隨機矩陣進行分解,獲得對應的正權與置換矩陣乘積之和的形式 (Birkhoff),它們的複雜度都在下面標示出來了
\(\mathbf{Algorithm}\):\(\mathbf{\ Birkhoff}\)-\(\mathbf{von\ Neumann}\)
\(\mathbf{Input}\): the double stochastic matrix \({\color{#ff6347}{\boldsymbol{R}}}=[r_{ij}]\)
\(\mathbf{Output}\): the set/vector of positive numbers and permutation matrices \(\{{\color{#c71585}{\boldsymbol{\Phi}}}=[{\color{#c71585}{\boldsymbol{\phi}}}_k],{\color{#c71585}{\boldsymbol{\mathscr{P}}}}=[{\color{#c71585}{\boldsymbol{P}}}_k]\}\)// find doubly stochastic matrix \(\tilde{{\color{#ff8c00}{\boldsymbol{R}}}}=[\tilde{r}_{ij}],{\text{s.t.}}\forall i,j,\tilde{r}_{ij}\geq{r}_{ij}\), with total complexity of \(O(N^3)\)
\(\tilde{{\color{#ff8c00}{\boldsymbol{R}}}}\leftarrow{\color{#ff6347}{\boldsymbol{R}}}\);
// with complexity of \(O(2N-1)\sim O(N)\)
\(\color{#3cb371}{\mathbf{REPEAT}}\)
| // with complexity of \(O(N^2)\)
| \([i,j]\leftarrow{\color{#696969}{\mathbf{find}}}(\tilde{{\color{#ff8c00}{\boldsymbol{R}}}},{\color{#696969}{\mathbf{bind}}}(\sum_nr_{in}<1,\sum_mr_{mj}<1))\);
| \(\epsilon\leftarrow1-\max[\sum_nr_{in},\sum_mr_{mj}]\);
| \(r_{ij}\leftarrow\epsilon+r_{ij}\);
| \({\color{#696969}{\mathbf{update}}}(\tilde{{\color{#ff8c00}{\boldsymbol{R}}}})\);
\(\color{#3cb371}{\mathbf{UNTIL}}\) \(\sum_{n,m}r_{nm}=N\);// find set of positive numbers \({\color{#c71585}{\boldsymbol{\phi}}}_k>0\) with permutation matrices \({\color{#c71585}{\boldsymbol{P}}}_k,{\rm\ st.\ }\tilde{{\color{#ff8c00}{\boldsymbol{R}}}}=\sum_k{\color{#c71585}{\boldsymbol{\phi}}}_k{\color{#c71585}{\boldsymbol{P}}}_k\), with total complexity of \(O(N^{4.5})\), which further means \(\sum_{k=1}^K{\color{#c71585}{\boldsymbol{\phi}}}_k=1\), doubly stochastic matrices are within the convex hull of permutation matrices
\([i_1,i_2,\cdots,i_N]\leftarrow{\color{#696969}{\mathbf{find}}}(\tilde{{\color{#ff8c00}{\boldsymbol{R}}}},{\color{#696969}{\mathbf{bind}}}(\prod_{k=1}^N\tilde{r}_{ki_k}>0))\);
\(\phi'\leftarrow\min_{1\leq k\leq N}[\tilde{r}_{ki_k}]\);
// the permutation matrix of \([i_1,i_2,\cdots,i_N]\)
\(s_{perm}\leftarrow{\color{#696969}{\mathbf{to\_perm}}}([i_1,i_2,\cdots,i_N])\);
\(R'\leftarrow\tilde{{\color{#ff8c00}{\boldsymbol{R}}}}-\phi's_{perm}\);
// with complexity of \(O(N^2-2N+2)\sim O(N^2)\)
\(\color{#2e8b57}{\mathbf{FOR}}\) \({\color{#696969}{\mathbf{true}}}\)
| \(\color{#6b8e23}{\mathbf{IF}}\) \(\phi'<1\)
| | // with complexity improved to \(O(N^{2.5})\)
| | \([i_1,i_2,\cdots,i_N]\leftarrow{\color{#696969}{\mathbf{find}}}(R',{\color{#696969}{\mathbf{bind}}}(\prod_{k=1}^N\tilde{r}_{ki_k}>0))\);
| | \(R'\leftarrow R'/(1-\phi')\);
| | \(\phi'\leftarrow\min_{1\leq k\leq N}[\tilde{r}_{ki_k}]\);
| | \(\mathbf{s}_{perm}\leftarrow{\color{#696969}{\mathbf{to\_perm}}}([i_1,i_2,\cdots,i_N])\);
| | \(R'\leftarrow R'-\phi's_{perm}\);
| \(\color{#6b8e23}{\mathbf{ELSE}}\)
| | \(\color{#6b8e23}{\mathbf{BREAK}}\);
| \(\color{#6b8e23}{\mathbf{END}}\)
| \([{\color{#c71585}{\boldsymbol{\Phi}}},{\color{#c71585}{\boldsymbol{\mathscr{P}}}}].{\color{#696969}{\mathbf{emplaced\_back}}}[\phi',R']\);
\(\color{#2e8b57}{\mathbf{END}}\)
裡面的 \({\color{#2e8b57}{\mathbf{FOR}}}\)-\({\color{#6b8e23}{\mathbf{IF}}}\) loop 也可以直接表示為一個帶條件的 \({\color{#2e8b57}{\mathbf{FOR}}}\) loop,只是我自己覺得這樣寫會稍微清楚一些。這樣子得到了分解後,就可以進一步在每一輪仲裁中,都以每一個分解後的置換矩陣對應的正數的倒數作為此交換的虛完成時間 \(F_k^\ell=1/\phi_k\),作為一種方案,這裡將所有 \(F_k^\ell,k=1,\cdots,K\) 從小到大排序,每次選最小的那個作為這輪的連線方式,若這一輪選了 \(F_k^\ell\),那麼下一輪的 \(F_k^{\ell+1}=F_k^\ell+1/\phi_k\) 就好了,這個複雜度顯然可以由 \(K\leq N^2-2N+2\) 看出,是 \(O(\log N)\) (這種方法算是 packetized generalized processor sharing, PGPS 演算法的簡化版本)
為了得到一種既考慮 efficiency 又顧及 fairness 的排程方案,上面用到的速率矩陣 \(R\) 需要仔細地進行測量,這顯然是一個優化問題 (resource sharing problem),首先記 guaranteed-rate services 為 \(R^g=(r_{ij}^g)\),再以下面的 online measurement 方法迭代求得第 \(n\) 次測量週期下的 demand rate \(r_{ij}^e(n)\)
裡面的 \(\alpha(n)\) 算是可調整佔比的常數,如果網路流變化很迅速的話,適當調高 \(\alpha(n)\) 有利於排程演算法快速適應變化,\(T\) 為測量週期,\(A_{ij}\) 為累計到達量。可以看出,我們所需要的最優解必須介於 demand rate \(r_{ij}^e\) 與 guaranteed-rate \(r_{ij}^g\) 之間,把它當作一種約束,這就轉化為一個對於效益函式 \(U(\cdot)\) 的優化問題
效益函式的不同取值就代表了 efficiency 與 fairness,前者對應一個最大流問題,而後者可以用水漫法 (water filling) 進行求解,這就完成了整個排程演算法的流程,據模擬結果顯示 [3] 它能夠達到 \(\it100\%\) 的 throughput,只是平均佇列長度要稍微高於 output buffered switch 的模擬值
這種 crossbar 結構也可以通過多層網路的連線而獲得 scalability,基本思路就是將每一個 crossbar 模組看作一個單元,用網路拓撲將它們連線起來,例如可以用 Banyan 拓撲將 \(\it4\times4\) 的 Birkhoff-von Neumann crossbar switches連線成一個二層網路,然而這種結構具有三條關於 no overbooking 的約束 (前面只有兩個),其速率受到限制,為此可以再加一層網路,這相當於使用十二個 \(\it4\times4\) 的置換矩陣來表示一個 \(\it16\times16\) 的置換矩陣,在這裡的排程演算法就需要先求解優化問題得到 allocated rate matrix \(R\),只不過這個 \(R\) 應該是一個 \(\it16\times16\) 的矩陣,對它作分解得到 \(\it16\times16\) 的 \(K\) 個置換矩陣們,再以 Slepian-Duguid 演算法將它們分解為 \(\it12K\) 個 \(\it4\times4\) 的置換矩陣,將它們反過來合成 \(\it1\sim12\) crossbar 對應的 \(R\) 陣,最後用 Birkhoff-von Neumann 進行分解求得排程權值進行排程即可
[0.0] 面號:[OPTSxca75]
[1] Optical switching in next generation data centers[M]. Springer, 2017.
[1.1] Calabretta N, Miao W. Optical switching in data centers: Architectures based on optical packet/burst switching[M]//Optical Switching in Next Generation Data Centers. Springer, Cham, 2018: 45-69.
[1.2] Huang Q. Commercial Optical Switches[M]//Optical Switching in Next Generation Data Centers. Springer, Cham, 2018: 203-219.
[2] Chao H J, Liu B. High performance switches and routers[M]. John Wiley & Sons, 2007.
[3] Chang C S, Chen W J, Huang H Y. Birkhoff-von Neumann input buffered crossbar switches[C]//Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No. 00CH37064). IEEE, 2000, 3: 1614-1623.
[4] Yan F, Miao W, Raz O, et al. Opsquare: A flat DCN architecture based on flow-controlled optical packet switches[J]. IEEE/OSA Journal of Optical Communications and Networking, 2017, 9(4): 291-303.
[5] Kitayama K I, Huang Y C, Yoshida Y, et al. Torus-topology data center network based on optical packet/agile circuit switching with intelligent flow management[J]. Journal of Lightwave Technology, 2015, 33(5): 1063-1071.
付録┍1┙
這裡稍微嚴格一點寫一下先前提到的 Birkhoff-von Neumann 定理,首先是文字表述,也即雙隨機矩陣都包含於置換矩陣的凸包 (convex hull),反之亦然,那麼現在記一個雙隨機矩陣 \(R=[r_{ij}]\),則定理表述為
不失普遍性,可以令 \(M\leq n^2-n+1\),其證明過程用到 Frobenius‐König 定理 [6] ,思路如下
對於 \(\boxplus(R)=|\{(i,j):r_{ij}\neq0\}|\) 進行歸納,\(\boxplus(R)=n\) 對應著 \(R\) 置換矩陣的情形,此時若假設以上命題對 \(\boxplus(\cdot)=N\) 成立,考慮 \(\boxplus(R)=N>n\),下列條件滿足
則由 Frobenius‐König 定理,總能取置換 \(\tau\in S_n{\ \text{s.t.}\ }R[i,\tau(i)]\neq0\),這裡記 \(\phi=\min_{1\leq i\leq n}R[i,\tau(i)]\in(0,1)\),則有分解 \(R=\phi\tau+(1-\phi)R'\),其中的 \(R'=(1-\phi)^{-1}(R-\alpha\tau)\) 仍為雙隨機矩陣,又有 \(\boxplus(R')<\boxplus(R)=N\),由歸納假設得證 \(\blacksquare\)