[問題] OpenMP 讀取文字檔

看板C_and_CPP作者 (我思故我怪)時間10年前 (2015/09/30 05:45), 編輯推噓2(207)
留言9則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Tifflib, armadillo 問題(Question): 想使用OpenMP 加速讀取文字檔資料 餵入的資料(Input): N*3的文字檔(.txt) 如: 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 預期的正確結果(Expected Output): 正確且順序的數值 錯誤結果(Wrong Output): 數值正確,但是順序錯誤 程式碼(Code):(請善用置底文網頁, 記得排版) double x,y,z; ifstream txt_in("Data.txt"); #pragma omp parallel for private(x,y,z) for(int j=0;j<N;j++){ //假設已知文字檔行數 txt_in>>x; txt_in>>y; txt_in>>z; printf("%f %f %f\n",x,y,z); } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 137.132.44.53 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443591907.A.D17.html

09/30 13:47, , 1F
Opennp在io上不會變快
09/30 13:47, 1F

09/30 17:43, , 2F
那有什麼方法可以加速讀取呢? 用SSD?
09/30 17:43, 2F

09/30 18:07, , 3F
有順序的東西就不能平行化跑啦
09/30 18:07, 3F

09/30 18:08, , 4F
或是想辦法用binary存檔
09/30 18:08, 4F

10/01 02:03, , 5F
mmap
10/01 02:03, 5F

10/01 06:23, , 6F
嚴格講起來mmap也沒辦法變快,只是讓他能用類似記憶體
10/01 06:23, 6F

10/01 06:24, , 7F
的方式來操作file descriptor而已
10/01 06:24, 7F

10/01 06:24, , 8F
加速讀取啊,如果SSD都算選項的話,那就raid 0啦...
10/01 06:24, 8F

10/01 14:22, , 9F
如果資料是數值,直接用二進位存取會快一些
10/01 14:22, 9F
文章代碼(AID): #1M2tRZqN (C_and_CPP)