成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenMP并行程序設計(一)

開發 前端
OpenMP是一個支持共享存儲并行設計的庫,特別適宜多核CPU上的并行程序設計。今天在雙核CPU機器上試了一下OpenMP并行程序設計,發現效率方面超出想象,因此寫出來分享給大家。
OpenMP是一個支持共享存儲并行設計的庫,特別適宜多核CPU上的并行程序設計。今天在雙核CPU機器上試了一下OpenMP并行程序設計,發現效率方面超出想象,因此寫出來分享給大家。
 
在VC8.0中項目的屬性對話框中,左邊框里的“配置屬性”下的“C/C++”下的“語言”頁里,將OpenMP支持改為“是/(OpenMP)”就可以支持OpenMP了。
 
先看一個簡單的使用了OpenMP程序
  1. int main(int argc, char* argv[]) 
  2. #pragma omp parallel for 
  3.      for (int i = 0; i < 10; i++ ) 
  4.      { 
  5.          printf("i = %d/n", i); 
  6.      } 
  7.      return 0; 
  8. 這個程序執行后打印出以下結果: 
  9. i = 0 
  10. i = 5 
  11. i = 1 
  12. i = 6 
  13. i = 2 
  14. i = 7 
  15. i = 3 
  16. i = 8 
  17. i = 4 
  18. i = 9 
可見for 循環語句中的內容被并行執行了。(每次運行的打印結果可能會有區別)
這里要說明一下,#pragma omp parallel for 這條語句是用來指定后面的for循環語句變成并行執行的,當然for循環里的內容必須滿足可以并行執行,即每次循環互不相干,后一次循環不依賴于前面的循環。
 
有關#pragma omp parallel for 這條語句的具體含義及相關OpenMP指令和函數的介紹暫時先放一放,只要知道這條語句會將后面的for循環里的內容變成并行執行就行了。
 
 將for循環里的語句變成并行執行后效率會不會提高呢,我想這是我們最關心的內容了。下面就寫一個簡單的測試程序來測試一下:
  1. void test() 
  2.      int a = 0
  3.      clock_t t1 = clock(); 
  4.      for (int i = 0; i < 100000000; i++) 
  5.      { 
  6.          a = i+1; 
  7.      } 
  8.      clock_t t2 = clock(); 
  9.      printf("Time = %d/n", t2-t1); 
  10.   
  11. int main(int argc, char* argv[]) 
  12.      clock_t t1 = clock(); 
  13. #pragma omp parallel for 
  14.      for ( int j = 0; j < 2; j++ ){ 
  15.          test(); 
  16.      } 
  17.      clock_t t2 = clock(); 
  18.      printf("Total time = %d/n", t2-t1); 
  19.   
  20.      test(); 
  21.      return 0; 
  22.   
  23. 在test()函數中,執行了1億次循環,主要是用來執行一個長時間的操作。 
  24. 在main()函數里,先在一個循環里調用test()函數,只循環2次,我們還是看一下在雙核CPU上的運行結果吧: 
  25. Time = 297 
  26. Time = 297 
  27. Total time = 297 
  28. Time = 297 

可以看到在for循環里的兩次test()函數調用都花費了297ms, 但是打印出的總時間卻只花費了297ms,后面那個單獨執行的test()函數花費的時間也是297ms,可見使用并行計算后效率提高了整整一倍。

下一篇文章中將介紹OpenMP的具體指令和用法。

原文鏈接:http://blog.csdn.net/drzhouweiming/article/details/1131537

責任編輯:陳四芳 來源: blog.csdn.net
相關推薦

2013-12-16 16:58:47

OpenMP并行

2013-12-18 10:34:42

OpenMP線程

2011-11-17 10:34:44

并行程序

2012-03-12 12:34:02

JavaF#

2011-07-05 15:22:04

程序設計

2013-12-12 16:30:20

Lua腳本語言

2010-12-23 11:18:16

程序員

2009-12-04 10:53:06

VS WEB

2010-12-28 10:12:39

PHP

2010-06-03 19:28:02

Hadoop

2017-08-30 17:59:20

Linux程序設計優化措施

2017-09-05 08:16:29

代碼判斷函數

2009-12-25 16:36:45

WPF程序設計

2010-01-28 09:54:27

C++程序設計

2009-02-10 09:53:41

多線程程序設計Java

2011-08-05 15:46:32

Objective-C 程序設計

2010-09-25 13:47:14

Java跨平臺

2010-09-17 09:08:49

Java多線程

2009-06-23 17:52:04

Linux程序設計

2009-06-23 18:13:21

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区久久久久久久久 | 亚洲社区在线 | 亚洲男人天堂 | 99久久精品国产麻豆演员表 | 免费日本视频 | 特级生活片 | 免费精品久久久久久中文字幕 | 欧美综合一区 | 国产精品久久久久久福利一牛影视 | 高清免费av | 国产成人综合av | 国产精品久久久久久久久久 | 久久久久久久一区二区三区 | 久久久激情 | 国产 亚洲 网红 主播 | 国产电影一区二区在线观看 | 男人的天堂久久 | 亚洲一区亚洲二区 | 国产美女黄色片 | 久久久天天 | 欧美一级特黄aaa大片在线观看 | 久久久久久成人 | 国产日韩精品一区二区 | 日韩在线一区二区 | 亚洲天堂精品一区 | 国产精品毛片无码 | 国产成人麻豆免费观看 | 精品在线一区 | 亚洲在线免费观看 | 日韩在线免费视频 | 一区二区三区在线 | 欧 | 色小姐综合网 | 亚洲精品久久久久久久久久吃药 | 日本三级全黄三级三级三级口周 | 欧美一级欧美一级在线播放 | 亚洲二区在线观看 | 久久精品亚洲一区二区三区浴池 | 日本亚洲欧美 | 精品国产成人 | 九九伊人sl水蜜桃色推荐 | 久久久久久国产精品 |