突破交易系統(tǒng)技術瓶頸,中匯攜手微軟亞洲研究院探索流水線并行架構
編者按:本幣交易系統(tǒng)與外匯交易系統(tǒng)是中國外匯交易中心核心系統(tǒng),系統(tǒng)處理能力需超過每秒10萬筆,延遲要控制在毫秒以內(nèi)。作為承擔系統(tǒng)建設和研發(fā)的中匯信息技術(上海)有限公司,為了突破系統(tǒng)性能瓶頸,與微軟亞洲研究院合作共同研究系統(tǒng)優(yōu)化方案,實驗顯示,“流水線并行”方案可將系統(tǒng)整體吞吐量提升20%,如果對撮合引擎進行更深入的優(yōu)化,整體性能還將有進一步提升。
中國外匯交易中心以建設“全球人民幣及相關產(chǎn)品交易主平臺和定價中心”為目標,為****間外匯市場、貨幣市場、債券市場等現(xiàn)貨及衍生產(chǎn)品提供交易、交易后處理、發(fā)行、基準、數(shù)據(jù)和投資者教育服務。2020年,中國外匯交易中心交易量達1637萬億元人民幣,約占上海各類金融要素市場交易總量的3/4。目前,交易中心向全球50多個國家和地區(qū)的3萬余家機構投資者提供服務,日均交易規(guī)模超過6萬億元人民幣。中匯信息技術(上海)有限公司(以下簡稱“中匯公司”)是中國外匯交易中心的全資子公司,承擔交易系統(tǒng)的建設工作。隨著中國的****間市場蓬勃發(fā)展,金融市場交易量飛速增長,參與的機構數(shù)量越來越多,****間交易模式不斷創(chuàng)新發(fā)展,各種因素都對交易系統(tǒng)的性能提出了更高的要求。
與此同時,市場機構之間的交易已從人工協(xié)商向高頻化、程序化發(fā)展,交易機制也隨著全球金融業(yè)務創(chuàng)新而隨時發(fā)生變化。為了滿足業(yè)務的快速、可持續(xù)發(fā)展,中匯公司必須未雨綢繆,在系統(tǒng)性能方面,為未來的業(yè)務增長提供新動力。
因此,中匯公司與微軟亞洲研究院展開合作研究,針對交易系統(tǒng)的性能優(yōu)化問題進行了可行性研究與實驗。作為微軟亞洲研究院創(chuàng)新匯成員,中匯公司此前曾與研究院就個性化推薦系統(tǒng)等問題展開過合作研究,并聯(lián)合發(fā)表了論文,雙方的再次合作創(chuàng)新可以說是水到渠成。
交易撮合引擎由“串行”轉(zhuǎn)“并行”,
性能提升20%
隨著市場參與機構和交易量的增長,交易平臺必須具備可靠性、可擴展性和安全穩(wěn)定性,底層系統(tǒng)架構必須能夠滿足上層交易需求。這類平臺的最大特點是高吞吐、低延時,對于性能要求極高。此次雙方通力合作,成功將交易系統(tǒng)的核心組件——撮合引擎并行化,使系統(tǒng)整體性能得以大幅提升。
中匯公司的撮合引擎是基于傳統(tǒng)串行計算模式,這是為了確保金融交易正確性的核心原則——“價格優(yōu)先、時間優(yōu)先”,即價高買單或價低賣單優(yōu)先處理,相同價格的交易訂單按照其到達時間的先后處理。隨著業(yè)務的發(fā)展,該串行架構在性能上體現(xiàn)出一定的局限性。對撮合引擎進行并行化無疑可以給系統(tǒng)性能帶來最大的提升空間,但同時確?!皟r格優(yōu)先、時間優(yōu)先”的原則并不容易,稍有差池就會影響交易的公平。
為此,微軟亞洲研究院項目團隊首先對行業(yè)知識和業(yè)務邏輯進行快速學習,并對現(xiàn)有系統(tǒng)進行深入的分析和測試,針對系統(tǒng)性能提升問題提出了三種并行架構思路:數(shù)據(jù)并行、任務并行、流水線并行,最終結(jié)合外匯交易中心的實際業(yè)務,選擇了流水線并行方案。
微軟亞洲研究院系統(tǒng)研究組高級研究員林昊翔表示,相較于其它并行方案,流水線并行擁有四個明顯優(yōu)勢。首先,它可以確保多個訂單的不同階段雖然在同時執(zhí)行,但是訂單整體是按照規(guī)定順序進行撮合,而其它并行方案沒有內(nèi)建的執(zhí)行順序保障機制;其次,流水線清晰定義了可以并發(fā)執(zhí)行的代碼塊,方便理解、細化需要同步原語保護的臨界區(qū);第三,流水線并行的擴展性更好,階段內(nèi)部的執(zhí)行相對獨立,擴展只需增加更多的流水線階段即可;最后,該方式對原有撮合引擎的改造是非入侵式、可控的,并行化的實現(xiàn)、測試和后期維護的代價相對較小。
“交易撮合的串行執(zhí)行更容易保證正確性,流水線并行的計算模式可以在不打破兩個優(yōu)先原則的前提下達到更高的系統(tǒng)性能“。初步的實驗結(jié)果表明,該方案可將系統(tǒng)整體性能提升20%左右,系統(tǒng)吞吐率 TPS 在實驗室環(huán)境達到了14萬/秒?!敝袇R信息技術(上海)有限公司副總經(jīng)理李正介紹道,“之前我們做過應用代碼級別的系統(tǒng)性能優(yōu)化工作,像這次能深入到 CPU 指令、系統(tǒng)和處理架構級別的探索,對我們來說是全新的嘗試。如果未來對撮合引擎進行更深入的優(yōu)化,相信系統(tǒng)整體性能將會有進一步的提升。我們會將此次的研究成果應用于不同的業(yè)務系統(tǒng)中去。”
最大收獲:
用系統(tǒng)性思維去解決優(yōu)化難題
系統(tǒng)、全面地去看待和解決系統(tǒng)優(yōu)化問題,在中匯信息技術(上海)有限公司高級經(jīng)理包曉晶看來,是中匯團隊在項目合作研究過程中的最大收獲。通過前期調(diào)研,團隊確定了 CPU 指令、系統(tǒng)、處理架構三個優(yōu)化方向。在指令層面,研究員們會根據(jù)翻譯后援緩沖器(TLB)和緩存的命中率去優(yōu)化訪存、分支等指令,以及嘗試先進的編譯技術用于生成更高效的硬件指令;在系統(tǒng)層面,會使用高性能同步原語、批處理 I/O、大內(nèi)存頁等技術;在架構層面,他們會試圖突破串行的傳統(tǒng)思維束縛,探討并行架構的可能。
在中匯公司看來,微軟亞洲研究院最具有吸引力的地方在于其與企業(yè)的合作方式更具創(chuàng)新性,研究院擁有非常多的科學家和資深工程師,可以真正幫助企業(yè)解決具有挑戰(zhàn)性的問題。這也正是微軟亞洲研究院“跨界共創(chuàng)”的核心。
應用工程師看待系統(tǒng)優(yōu)化時,容易局限在應用設計和代碼本身,很難有系統(tǒng)性的優(yōu)化體系,包曉晶表示,“我們發(fā)現(xiàn),微軟亞洲研究院的研究員做系統(tǒng)優(yōu)化時首先是基于一套完整的優(yōu)化方法論,然后在充分了解實際問題的基礎上實施論證,并且非常善于利用各種先進工具。在與研究員們近距離、手把手的合作中,我們也學到了很多?!?/p>
微軟亞洲研究院(上海)創(chuàng)新工程組主管研發(fā)經(jīng)理楊玉慶表示,“中匯公司的技術團隊本身就是一個具有成長性思維(Growth Mindset)和開放心態(tài)的團隊,與微軟的創(chuàng)新文化非常貼近,所以雙方的溝通非常順暢。”
不過,不同類型的業(yè)務系統(tǒng)所受到的約束各不相同。為了確保串行改并行不出錯,研究員們大量閱讀源代碼,一步步熟悉中匯公司的交易系統(tǒng);并在 Azure 云平臺上部署了接近真實系統(tǒng)的模擬環(huán)境,精細地執(zhí)行每一步業(yè)務流程;利用各類工具進行測試和驗證,找到影響系統(tǒng)性能的各個瓶頸;同時還要思考如何將對系統(tǒng)的影響最小化……
“微軟亞洲研究院系統(tǒng)組多年來在構建高吞吐、低延遲、安全可靠、可擴展的并發(fā)系統(tǒng)和分布式系統(tǒng)方面擁有深厚的技術積累,并形成了一整套方法論。金融系統(tǒng)有很多獨特的約束,對于我們而言,這也是一個全新的應用場景。與中匯公司的合作拓寬了我們的研究方向,加深了我們對技術的理解,對我們未來的研究工作有著寶貴的啟發(fā)和指導意義,”林昊翔表示。分析、優(yōu)化和擴展一個已經(jīng)部署多年的系統(tǒng)非常困難,對此林昊翔建議道,“對于大規(guī)模并發(fā)系統(tǒng)和分布式系統(tǒng),一定要在設計之初就全面考慮系統(tǒng)演化的問題??梢钥紤]采用微內(nèi)核、可插拔、工具化的系統(tǒng)構建架構來建立應用系統(tǒng),這樣才能更加靈活地支撐后續(xù)的系統(tǒng)擴展和業(yè)務發(fā)展?!?/p>
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。
超級電容器相關文章:超級電容器原理
電容相關文章:電容原理 電容傳感器相關文章:電容傳感器原理 汽車防盜機相關文章:汽車防盜機原理