- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简易的程式平行化方法-OpenMP
簡易的程式平行化方法-OpenMP (一)簡介
本文原發表於:/blog/cns!E0070FB8ECF9015F!1018.entry
嗯~首先,Heresy 也是最近才開始試著用 openMP 的,所以其是這篇與其說是教學或介
紹,倒不如說是學習心得會更為恰當。會不會繼續用?說實話也是未知數。總之,看著辦囉~
也希望有人對這東西有 研究的話,能多多指教。
多執行緒的概念
目前雙核心的 CPU 當道,AMD 的 Athlon64x2 、Intel 的 Pentium-D 、Core Duo,以及
即將上市的 Core 2 Duo ,儼然將成為下一代電腦的主流(尤其是超低價的 Pentium D ,絕
對是現階段 C/P 值極高的雙核心 CPU )。但是雙核心有什麼用呢?
對於一般單一執行緒(single thread )的程式,多核心的處理器並沒有辦法提升它的處理效
能;不過對於多執行緒(multi thread)的程式,就可以透過不同的核心同時計算,來達到
加速的目的了!簡單的例子,以單執行緒的程式來說,一件事做一次要十秒的話,要做十次,
都丟 給同一顆核心做的話,自然就是 10 秒 * 10 次,也就是 100 秒了;但是以多執行
緒的程式來說,它可以把這一件事,分給兩顆核心各自做,每顆核心各做 5 次,所以所需
要的時間就只需要 50 秒!
當 然,多執行緒的程式實際上沒這麼簡單。在工作的切割、結合上,也是要多花時間的,
所以在現實中,即使最佳狀況,雙核心的效能也不會是 1 + 1 = 2 這樣的理想化。除此之外,
也不是所有工作都是可以切割的!很多工作是有關聯性的,這樣如果直接切割給不同的處理
核心各自去平行運算,出來的結果是肯定有問 題的。而且,多執行緒的程式在編寫、維護
上,也都比單一執行緒的程式複雜上不少。
不過,如果電腦本身是多處理器、多核心處理器,或是 處理器擁有像 Intel Hyper-Threading
Technology 這類的能在同一個時間處理多個執行緒的功能的話,那把各自獨立的工作由單
一執行緒改成多執行緒,在執行的效率上,大多還是會有增進的!
多執行緒的程式
寫程式的時候該怎麼去寫多 執行緒的程式呢?一般的方法,就是真的利用 thread 的控制,
去實際在程式中去產生其他的 thread 來處理。像 POSIX Threads 這套 library ,就是用來
產生、控制執行緒的函式庫。而像 Microsoft VisualStudio 2005 中,也有提供控制 thread 的
功能。這種方法,大多就是產生多個 thread ,而再由主要的 thread 把工作拆開,分給各
thread 去運算,最後再由主要的 thread 回收結果、整合。
但是,實際上要去控制 thread 是滿麻煩的~在程式的編寫上,也會複雜不少;而如果我們
只是想要把一些簡單的迴圈平行化處理,用 thread library 來控制,實在有點殺雞用牛刀的
感覺。這時候,用 Open MP 就簡單多了!OpenMP 是一種能透過高階指令,很簡單地將
程式平行化、多執行緒化的 API ;在最簡單的情形,甚至可以只加一行指令,就可以將迴
圈內的程式平行化處理了!
OpenMP 的基本使用
要在 Visual C++ 2005 中使用 openMP 其實不難,只要將 Project 的 Properties 中
C/C++ 裡 Languag
您可能关注的文档
- 第四章_软件功能模型建模方法.pdf
- 第四章_短波通信系统和超短波通信系统.pdf
- 第四章地震作用计算.pdf
- 第四章——铁路车站.pdf
- 第四章lxc-3 [兼容模式].pdf
- 第四章基本开关型调整器——BUCK变换器.pdf
- 第四章、语法分析 Syntax analysis.pdf
- 第四章第八节抗血拴药.pdf
- 第四章质点系的平衡B.pdf
- 第四章光电子学基础.pdf
- 教科版(2017秋)科学二年级上册2.6 做一顶帽子 教学设计.docx
- 河北高频考点专训四 质量守恒定律的应用教学设计---2024-2025学年九年级化学人教版(2024)上册.docx
- 大单元教学【核心素养目标】6.3 24时计时法教学设计 人教版三年级下册.docx
- 河南省商城县李集中学2023-2024学年下学期九年级历史中考模拟八(讲评教学设计).docx
- 第18章 第25课时 正方形的性质2023-2024学年八年级下册数学课时分层作业教学设计( 人教版).docx
- Module 8 模块测试 教学设计 2024-2025学年英语外研版八年级上册.docx
- 2024-2025学年小学数学五年级下册浙教版教学设计合集.docx
- 2024-2025学年小学劳动四年级下册人民版《劳动》(2022)教学设计合集.docx
- 2024-2025学年小学数学三年级上册冀教版(2024)教学设计合集.docx
- 2024-2025学年高中生物学必修1《分子与细胞》人教版教学设计合集.docx
最近下载
- 航海英语译文.pdf VIP
- 2024-2025学年全国中学生天文知识竞赛备赛试题库(含答案).docx
- 捷信达gshis捷云酒店管理软件v2.0-操作说明书(2019年9月版).pdf VIP
- 生物科技公司绩效管理办法.docx
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案).docx
- 优化酸洗工艺降低黑斑缺陷培训课件.ppt
- N7K新设备开机标准预配置.doc
- 常见古巴雪茄品牌手册(27个雪茄品牌)(1).pdf
- 2023年天翼云高级解决方案架构师理论考试复习题库-下(多选、判断题).pdf VIP
- 风险管理(中央财经大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
文档评论(0)