我試圖從多臺(8臺)遠程計算機向單臺計算機(主進程)傳輸大量數據(long int數組)。所有這些都通過一個100 MBps的局域網連接,並且是相同的機器(所以不用擔心內存不足)。通過套接字傳輸大型數組的最快方法
每臺遠程機器都有一個長8GB的int數組,我必須將它傳輸到單臺計算機進行處理。我的問題是將這些陣列快速轉移到主流程的最佳方式是什麼。我嘗試使用傳統的TCP來完成這項工作,並且傳輸數據需要大量時間(大約28分鐘)。有什麼辦法可以提高速度嗎? 。將切換到UDP幫助我嗎?會使用多個端口/套接字幫我緩衝嗎?什麼是解決這些問題的最佳方法?
我可能不會壓縮數據(其中大部分是唯一的),我需要發送的一切(我的主要工序進行重要的操作)
只是一個想法 - 你有沒有嘗試過壓縮? –
你真的需要一次發送所有的數據嗎?也許你可以將它存儲在某個地方(例如,在某個數據庫中)並通過塊遞增獲取它?如果您不解釋數據的真實含義以及它來自哪裏,我們無法提供幫助...... –
嘗試將算法移至數據,而不是將數據移至算法。也許map-reduce可以幫助你。 – nwp