[分享] GCC 的 libstdc++ 自動平行化模式

看板C_and_CPP作者 (KITO)時間15年前 (2010/06/28 12:12), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
前陣子修某堂課寫了一些平行程式,無意間在GCC線上文件挖到寶 文件量沒很多就順便翻一翻 GCC 中的 libstdc++ 自動平行化模式大致上底層是由 OpenMP 所實作 包含許多常用的C++標準函數,例如 sort, search, find, for_each... 簡單來說就是可以妥善利用多核心資源來達到程式加速 而且最棒的是可以不用更動程式碼! 如果懶的k文件的話只要知道下列幾件事就可以 1. GCC 版本需求 4.3+ 若版本為4.3.x的話請注意有無安裝libgomp 2. 編譯時加入 -march=native -fopenmp -D_GLIBCXX_PARALLEL 這三個參數 3. 看 Using Specific Parallel Components 查看哪些函數有支援 4. 想要平行化的部份請注意side effect,否則可能會有race condition 5. 不要把有開Parallel Mode跟沒開的混在一起Link(詳情參閱 Using Parallel Mode ) 6. 它不是 exception-safe gcc 版本可透過 gcc -v 來查詢 官方文件 http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 中文文件 http://tinyurl.com/libstdc-pm -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.160.95

06/28 20:44, , 1F
第一點是不是少個g,libgomp
06/28 20:44, 1F
※ 編輯: akasan 來自: 118.167.160.95 (06/28 20:56)

06/28 20:56, , 2F
真的耶 感謝提醒XD
06/28 20:56, 2F

06/28 22:35, , 3F
如果會造成 Racing.. 那還是要改code = =
06/28 22:35, 3F
文章代碼(AID): #1CA96Ooc (C_and_CPP)