我有一臺運行在雙Xeon芯片的計算機上的C應用程序(VStudio 2010,win7 64bit),意思是12個物理核心和24個邏輯核心,以及192個ram。編輯:操作系統是win7(即Windows 7,64位)。優化對磁盤的大容量寫入
該應用程序有24個線程(每個線程都有自己的邏輯核心)進行計算並填充大量C結構的不同部分。當所有線程完成時(線程完全平衡以便它們同時完成),結構大約爲60千兆字節。 (我對硬件設置有控制權,所以我打算使用6個運行RAID 0的2TB驅動器,這意味着寫入時的物理限制大約是平均順序寫入速度的6倍,即約2吉秒/秒)
什麼是最有效的方式將其存入磁盤?很顯然,I/O時間會縮短計算時間。從我對這個主題的研究中看來,write()(而不是fwrite())是一種可行的方式。但是,在設置緩衝區大小等方面,我可以在軟件方面進行哪些其他優化?mmap會更高效嗎?
請添加一個標籤,你想寫哪種語言,以幫助他人輕鬆找到這個問題。 – Buddha
計算需要多長時間? –
我看到一個'mmap'標籤。這可用於您的系統嗎? –