精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenMP創建線程中的鎖及原子操作性能比較

開發 前端
在多核CPU中鎖競爭到底會造成性能怎樣的下降呢?相信這是許多人想了解的,因此特地寫了一個測試程序來測試原子操作,windows CriticalSection, OpenMP的鎖操作函數在多核CPU中的性能。

在多核CPU中鎖競爭到底會造成性能怎樣的下降呢?相信這是許多人想了解的,因此特地寫了一個測試程序來測試原子操作,windows CriticalSection, OpenMP的鎖操作函數在多核CPU中的性能。

原子操作選用InterlockedIncrement來進行測試,

對每種鎖和原子操作,都測試在單任務執行和多任務執行2000000次加鎖解鎖操作所消耗的時間。

測試的詳細代碼見后面。

測試機器環境: Intel 2.66G 雙核CPU 機器一臺

測試運行結果如下:

SingleThread, InterlockedIncrement 2,000,000: a = 2000000, time = 78

MultiThread, InterlockedIncrement 2,000,000: a = 2000000, time = 156

SingleThread, Critical_Section 2,000,000:a = 2000000, time = 172

MultiThread, Critical_Section, 2,000,000:a = 2000000, time = 3156

SingleThread,omp_lock 2,000,000:a = 2000000, time = 250

MultiThread,omp_lock 2,000,000:a = 2000000, time = 1063

在單任務運行情況下,所消耗的時間如下:

原子操作                 78ms

Windows CriticalSection 172ms

OpenMP 的lock操作        250ms

因此從單任務情況來看,原子操作最快,Windows CriticalSection次之,OpenMP庫帶的鎖最慢,但這幾種操作的時間差距不是很大,用鎖操作比原子操作慢了2~3倍左右。

在多個任務運行的情況下,所消耗的時間如下:

原子操作                 156ms

Windows CriticalSection 3156ms

OpenMP 的lock操作        1063ms

在多任務運行情況下,情況發生了意想不到的變化,原子操作時間比單任務操作時慢了一倍,在兩個CPU上運行比在單個CPU上運行還慢一倍,真是難以想象,估計是任務切換開銷造成的。

Windows CriticalSection則更離譜了,居然花了3156ms,是單任務運行時的18倍多的時間,慢得簡直無法想象。

OpenMP的lock操作比Windows CriticalSection稍微好一些,但也花了1063ms,是單任務時的7倍左右。

由此可以知道,在多核CPU的多任務環境中,原子操作是最快的,而OpenMP次之,Windows CriticalSection則最慢。

同時從這些鎖在單任務和多任務下的性能差距可以看出,,多核CPU上的編程和以往的單核多任務編程會有很大的區別。

需要說明的是,本測試是一種極端情況下的測試,鎖住的操作只是一個簡單的加1操作,并且鎖競爭次數達200萬次之多,在實際情況中,一由于任務中還有很多不需要加鎖的代碼在運行,實際情況中的性能會比本測試的性能好很多。

測試代碼如下:

  1. // TestLock.cpp : OpenMP任務中的原子操作和鎖性能測試程序。 
  2. // 
  3.   
  4. #include <windows.h> 
  5. #include <time.h> 
  6. #include <process.h> 
  7. #include <omp.h> 
  8. #include <stdio.h> 
  9.   
  10. void TestAtomic() 
  11.      clock_t t1,t2; 
  12.      int      i = 0; 
  13.      volatile LONG      a = 0; 
  14.   
  15.      t1 = clock(); 
  16.   
  17.      for( i = 0; i < 2000000; i++ ) 
  18.      { 
  19.          InterlockedIncrement( &a); 
  20.      } 
  21.      
  22.      t2 = clock(); 
  23.      printf("SingleThread, InterlockedIncrement 2,000,000: a = %ld, time = %ld/n", a, t2-t1); 
  24.   
  25.      t1 = clock(); 
  26.   
  27. #pragma omp parallel for 
  28.      for( i = 0; i < 2000000; i++ ) 
  29.      { 
  30.          InterlockedIncrement( &a); 
  31.      } 
  32.      
  33.      t2 = clock(); 
  34.      printf("MultiThread, InterlockedIncrement 2,000,000: a = %ld, time = %ld/n", a, t2-t1); 
  35.   
  36. void TestOmpLock() 
  37.      clock_t t1,t2; 
  38.      int i; 
  39.      int a = 0; 
  40.      omp_lock_t    mylock; 
  41.   
  42.      omp_init_lock(&mylock); 
  43.   
  44.      t1 = clock(); 
  45.   
  46.      for( i = 0; i < 2000000; i++ ) 
  47.      { 
  48.          omp_set_lock(&mylock); 
  49.          a+=1; 
  50.          omp_unset_lock(&mylock); 
  51.      } 
  52.      t2 = clock(); 
  53.      
  54.      printf("SingleThread,omp_lock 2,000,000:a = %ld, time = %ld/n", a, t2-t1); 
  55.   
  56.      t1 = clock(); 
  57.   
  58. #pragma omp parallel for 
  59.      for( i = 0; i < 2000000; i++ ) 
  60.      { 
  61.          omp_set_lock(&mylock); 
  62.          a+=1; 
  63.          omp_unset_lock(&mylock); 
  64.      } 
  65.      t2 = clock(); 
  66.      
  67.      printf("MultiThread,omp_lock 2,000,000:a = %ld, time = %ld/n", a, t2-t1); 
  68.   
  69.      omp_destroy_lock(&mylock); 
  70.   
  71.   
  72.   
  73. void TestCriticalSection() 
  74.      clock_t t1,t2; 
  75.      int i; 
  76.      int a = 0; 
  77.      CRITICAL_SECTION   cs; 
  78.   
  79.      InitializeCriticalSection(&cs); 
  80.   
  81.      t1 = clock(); 
  82.   
  83.      for( i = 0; i < 2000000; i++ ) 
  84.      { 
  85.          EnterCriticalSection(&cs); 
  86.          a+=1; 
  87.          LeaveCriticalSection(&cs); 
  88.      } 
  89.      t2 = clock(); 
  90.   
  91.      printf("SingleThread, Critical_Section 2,000,000:a = %ld, time = %ld/n", a, t2-t1); 
  92.   
  93.      t1 = clock(); 
  94.   
  95. #pragma omp parallel for 
  96.      for( i = 0; i < 2000000; i++ ) 
  97.      { 
  98.          EnterCriticalSection(&cs); 
  99.          a+=1; 
  100.          LeaveCriticalSection(&cs); 
  101.      } 
  102.      t2 = clock(); 
  103.   
  104.      printf("MultiThread, Critical_Section, 2,000,000:a = %ld, time = %ld/n", a, t2-t1); 
  105.   
  106.      DeleteCriticalSection(&cs); 
  107.   
  108.   
  109. int main(int argc, char* argv[]) 
  110.   
  111.      TestAtomic(); 
  112.      TestCriticalSection(); 
  113.      TestOmpLock(); 
  114.   
  115.      return 0; 

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

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

2017-12-14 10:16:01

CaddySSLDockerNginx

2016-12-07 10:42:57

排序算法實例

2011-04-15 10:26:38

JavaMVC

2013-12-16 10:20:48

MySQL數據庫

2012-12-03 10:26:51

Scala

2009-05-25 08:39:08

iPhone蘋果移動OS

2011-05-18 14:52:04

XML

2009-07-01 18:12:18

JSP的優勢性能比較

2020-10-23 07:43:37

Log配置性能

2011-07-06 14:18:40

Percona SerMySQL

2020-07-27 08:24:42

編程語言C語言Java

2015-02-05 09:25:51

HTTPSSPDYHTTP2

2010-03-10 16:35:23

Python編程語言

2011-08-09 10:21:55

SQL Server存儲過程分頁

2023-11-20 10:34:09

語言

2009-12-04 19:28:25

FreeBSD 8.0Ubuntu 9.10性能比較

2023-11-19 21:17:58

GoRust

2010-12-27 16:01:45

jQuery選擇器

2009-12-16 14:10:12

路由技術性能比較

2014-08-20 09:49:50

虛擬機Linux Conta
點贊
收藏

51CTO技術棧公眾號

国产中文在线播放| 欧美日韩精品在线观看视频 | 国产精品久久久久影视| 国产综合香蕉五月婷在线| 欧美黄色免费看| 九一亚洲精品| 91精品国产91久久久久久最新毛片 | 亚洲免费黄色片| 久久久久久9| 欧美老女人性视频| av网在线播放| 精品久久ai电影| 欧美日韩在线免费视频| 国产精品入口芒果| 婷婷成人激情| 91麻豆国产精品久久| 成人国产精品久久久| 亚洲午夜18毛片在线看| 欧美人成网站| 中文字幕亚洲欧美在线 | 国产又大又黄的视频| 中文高清一区| 美乳少妇欧美精品| 你懂得视频在线观看| 久久影院资源站| 日韩欧美中文字幕公布| 在线观看免费黄网站| 亚洲精品88| 亚洲一区二区av在线| 亚洲一区二区不卡视频| 可以在线观看的黄色| 成人免费观看男女羞羞视频| 国产欧美日韩视频| 免费观看日批视频| 99综合视频| 欧美精品久久久久久久久| 国产成人免费在线观看视频| 久久91精品| 日韩麻豆第一页| 91丨porny丨对白| 亚洲综合影院| 欧美一区二区女人| 国产精品嫩草影院8vv8| 成人在线中文| 欧美婷婷六月丁香综合色| 国产乱子夫妻xx黑人xyx真爽| 成人免费一区二区三区牛牛| 亚洲精品日韩综合观看成人91| 亚洲人成77777| 99精品老司机免费视频| 国产目拍亚洲精品99久久精品| 欧美一区二区三区四区在线观看地址 | 日韩精品综合在线| 婷婷色在线资源| 一二三四社区欧美黄| 日韩精品福利片午夜免费观看| 麻豆视频在线播放| 亚洲日本护士毛茸茸| 日日噜噜夜夜狠狠久久丁香五月| 毛片在线看片| 国产精品久久久久久久岛一牛影视| 亚洲国产一区在线| 麻豆视频网站在线观看| 一区二区三区中文字幕精品精品| 法国空姐在线观看免费| 欧美色图天堂| 精品美女国产在线| 黄色片久久久久| 日本精品另类| 欧美日韩不卡一区二区| 中文字幕av一区二区三区人妻少妇| 国产日韩一区二区三免费高清| 日韩视频中午一区| 特大黑人巨人吊xxxx| 女人丝袜激情亚洲| xvideos国产精品| 久久久久久免费观看| 国产一区二区精品| 国产精品久久久久久久美男| 国产伦精品一区二区三区四区| 国产激情视频一区二区在线观看 | 天天影视色综合| 538任你躁精品视频网免费| 日韩一区二区免费视频| 91麻豆蜜桃一区二区三区| xx欧美xxx| 日韩免费成人av| 国产精品suv一区二区88| 亚洲色图综合| 日韩片之四级片| 一女三黑人理论片在线| 日韩黄色大片网站| 超碰97成人| 亚洲精品网站在线| 久久久91麻豆精品国产一区| 欧美成人福利视频| 国产全是老熟女太爽了| 久久精品青草| 91a在线视频| 91影院在线播放| av一区二区三区四区| 污视频在线免费观看一区二区三区 | 成人在线免费观看黄色| 在线观看视频欧美| 日批视频免费看| 欧美综合久久| 九色精品免费永久在线| 伊人久久久久久久久久久久| 成人中文字幕在线| 一区不卡字幕| 亚洲天堂一区二区| 亚洲国产精品va在线观看黑人| 少妇高潮在线观看| 天堂在线亚洲视频| 动漫一区二区在线| 黄网站在线播放| 色哟哟一区二区| 国产十八熟妇av成人一区| 久久美女视频| 国产精品大陆在线观看| 性xxxx视频| 国产乱码精品一品二品| 欧美高清一区| 久久精品九色| 欧美三级黄网| 成人黄色网址在线观看| 亚洲国产高清国产精品| www在线看| 欧美日韩高清一区二区三区| 欧亚精品中文字幕| 无码人妻av免费一区二区三区| 成人深夜在线观看| 久久久久亚洲av无码专区喷水| 欧美日韩精品一区二区三区视频| 日韩精品在线影院| 天天操天天射天天爽| 国产精品一区二区三区网站| 中文字幕在线亚洲精品| 久久青草视频| 一区二区av在线| 最新中文字幕在线观看视频| 2023国产精品视频| 欧美日韩中文在线视频| 午夜欧洲一区| 日本中文字幕成人| 久久天堂电影| 欧洲一区二区三区在线| 人与嘼交av免费| 日韩精品电影一区亚洲| 日韩欧美精品一区二区三区经典| 夜鲁夜鲁夜鲁视频在线播放| 亚洲精品成人久久电影| 在线观看黄网站| 久久一区二区视频| 日本女优爱爱视频| 不卡在线一区二区| 国产免费一区二区三区在线能观看 | 麻豆精品传媒视频| jizz内谢中国亚洲jizz| 亚洲片av在线| 在线免费看91| 亚洲美女屁股眼交| 欧美熟妇精品一区二区蜜桃视频| 亚洲人成高清| 日本在线播放不卡| 色综合视频一区二区三区日韩| 欧美成人三级视频网站| 六月丁香综合网| 欧美日韩激情美女| 亚洲色成人网站www永久四虎| 美女性感视频久久| 影音先锋男人的网站| 136福利精品导航| 日韩av免费在线播放| xxxxx日韩| 91精品国产91热久久久做人人| 免费视频一二三区| 久久久综合网站| 三区视频在线观看| 亚洲高清激情| 日韩色妇久久av| 四虎国产精品永久在线国在线| 久久国产天堂福利天堂| 色就是色亚洲色图| 欧美放荡的少妇| 日韩欧美三级在线观看| 国产精品网友自拍| 香港三日本8a三级少妇三级99| 日韩综合小视频| 国产精品久久久久久久久电影网| 日本久久成人网| 国产日韩精品电影| 97人人爽人人澡人人精品| 尤物九九久久国产精品的分类 | 国产婷婷97碰碰久久人人蜜臀| 国产美女www爽爽爽| 亚洲在线视频网站| 人妻精品久久久久中文| 大尺度一区二区| 蜜臀av免费观看| 亚洲永久视频| 欧美黄网在线观看| 精品视频国产| 国产在线观看一区| 99久久久国产| 国产成人涩涩涩视频在线观看| 色黄网站在线观看| x99av成人免费| 黄色软件在线观看| 亚洲第一精品自拍| 国产www视频| 欧洲av在线精品| 亚洲男人第一av| 亚洲美女在线国产| 欧美巨胸大乳hitomi| 99精品国产99久久久久久白柏| 爽爽爽在线观看| 美女mm1313爽爽久久久蜜臀| 国产视频九色蝌蚪| 亚洲一本视频| 高清无码一区二区在线观看吞精| 久久激情电影| 日本免费高清一区| 欧美精美视频| 蜜桃91精品入口| 神马日本精品| 国产专区一区二区三区| 在线精品国产亚洲| 91午夜在线播放| 国产精选久久| 亚洲v日韩v综合v精品v| 涩涩涩久久久成人精品| 国产日本欧美一区二区三区在线| 婷婷激情一区| 国产成人鲁鲁免费视频a| 伊人久久av| 青青精品视频播放| 小视频免费在线观看| 69影院欧美专区视频| av手机在线观看| 97在线视频精品| 一个人www视频在线免费观看| 97视频在线观看视频免费视频 | 视频一区二区三区在线观看 | 91网站视频在线观看| 日韩Av无码精品| 99久久久久久99| 内射中出日韩无国产剧情| 91免费看`日韩一区二区| 特级西西人体wwwww| 久久夜色精品一区| 亚洲av无码国产精品麻豆天美| 国产亚洲精品中文字幕| 欧美做受高潮6| 国产精品久久久久影院老司| 少妇视频一区二区| 亚洲黄网站在线观看| 久久久久久福利| 精品国产福利视频| 无码人妻熟妇av又粗又大| 欧美午夜不卡在线观看免费| 国产精品久久久久久无人区| 日韩欧美在线综合网| 午夜视频在线播放| 国产午夜精品视频| 黄色网址在线免费播放| 欧美精品精品精品精品免费| a一区二区三区| 国产日韩欧美在线| eeuss鲁片一区二区三区| 欧美精品123| 久久久久久免费视频| 青青草成人免费在线视频| 巨乳诱惑日韩免费av| 久久久久久久久久久久久久久国产| 国产河南妇女毛片精品久久久| 少妇被狂c下部羞羞漫画| 久久精品一区蜜桃臀影院| 亚洲天堂精品一区| 亚洲在线成人精品| 欧美一区二区三区网站| 欧美高清激情brazzers| 国精产品一品二品国精品69xx| 日韩黄在线观看| 黄色网址在线免费| 欧美一级高清免费| 99热这里有精品| 久久国产日韩欧美| 99久久久久| 91成人在线观看喷潮教学| 免费观看日韩av| 污片免费在线观看| 一色屋精品亚洲香蕉网站| 91看片在线播放| 7777精品伊人久久久大香线蕉的| 天堂在线观看视频| 爱福利视频一区| 亚洲精品成人图区| 97人人干人人| 欧美色蜜桃97| 国产精品后入内射日本在线观看| 国内欧美视频一区二区| 99久久久无码国产精品衣服| 亚洲国产婷婷综合在线精品| 这里只有精品免费视频| 亚洲国产欧美一区二区丝袜黑人| 青青影院在线观看| 欧美在线影院在线视频| 深夜福利一区二区三区| 婷婷五月色综合| 香蕉亚洲视频| 老熟妇精品一区二区三区| 亚洲同性gay激情无套| 日韩精品久久久久久久酒店| 欧美美女黄视频| 国产中文字幕在线视频| 777午夜精品福利在线观看| 精品精品视频| 一区二区不卡在线观看| 日韩不卡手机在线v区| av在线网站观看| 天天操天天色综合| 国产成人手机在线| 久久综合88中文色鬼| 人人精品久久| 亚洲精品国产精品国自产观看| 先锋影音久久| a视频免费观看| 精品久久久久久国产| 污污视频在线观看网站| 久久久久久久国产| 日韩中文字幕| 日韩精品久久一区二区| 国产一区二区福利视频| 91香蕉视频网| 欧美一区二区视频网站| www免费在线观看| 91久久国产婷婷一区二区| 日韩在线观看| 久久人人爽av| 中文字幕人成不卡一区| 国产精品久久久久久久免费看| 日韩中文字幕亚洲| 欧美视频免费看| 一区二区三区欧美在线| 精品无人码麻豆乱码1区2区 | 日韩伦理在线电影| 国产一区欧美二区三区| 欧美激情另类| 手机在线观看日韩av| 亚洲线精品一区二区三区八戒| 超碰免费在线97| 久久久综合免费视频| 欧美sss在线视频| 成人在线观看a| 国产精品久久久久天堂| 国产免费不卡av| 欧美精品18videos性欧| 欧美一性一交| 国产免费人做人爱午夜视频| 中文字幕av一区二区三区免费看 | 国产精品毛片aⅴ一区二区三区| 日韩中文字幕亚洲精品欧美| 国产成人精品一区二| 日本少妇毛茸茸高潮| 亚洲欧美国产精品| 国产成人77亚洲精品www| 一区二区av| 丁香激情综合五月| 狠狠人妻久久久久久| 日韩中文字幕免费看| 欧美久久亚洲| 尤物av无码色av无码| 国产精品素人视频| 国产www免费观看| 欧美最猛黑人xxxx黑人猛叫黄| 欧美先锋资源| 亚洲精品久久久久久| 色综合天天综合色综合av | 亚洲免费观看高清完整版在线| 亚洲黄色在线观看视频| 欧洲亚洲在线视频| 国产精品久久观看| 人体私拍套图hdxxxx| 欧美日产国产精品| 丁香花在线观看完整版电影| 欧美日韩三区四区| 国产自产v一区二区三区c| 在线能看的av| 久久亚洲影音av资源网| 日本国产精品| 午夜视频在线免费看| 色综合视频一区二区三区高清| 大地资源网3页在线观看| 欧美不卡三区| 国产精品 日产精品 欧美精品| 国产一区免费看| 久久久久久久一| 久久精品久久久| 国产精品免费无码|