日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2C4T与4C4T在计算密集型任务下的效率对比

發(fā)布時間:2023/12/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2C4T与4C4T在计算密集型任务下的效率对比 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 1. 環(huán)境
  • 2. 代碼
  • 3. 結果

1. 環(huán)境

機器1:Intel? Core? i5-4200H CPU @ 2.80GHz,雙核四線程,win10 x64,16G內存
機器2:Intel? Core? i3-9100T CPU @ 3.10GHz,四核四線程。wn10 x64,8G內存

目的:大概測試一下2C4T與4C4T在計算密集型任務下的效率提升對比,內存大小、頻率暫且忽略。

方法:使用openMP控制計算任務中的線程使用數(shù)量,測試12層for循環(huán)所消耗的時間(12是1、2、3、4的公倍數(shù),防止openMP分配任務不均)。實際是測120層的耗時,再除以10。

2. 代碼

環(huán)境:

#include <iostream> #include <omp.h>using namespace std;const int N = 1e9;int main() {int ans = 0;int peat = 120;double start = omp_get_wtime(); #pragma omp parallel for num_threads(1)for (int i = 0; i < peat; ++i) {for (int j = 0; j < N; ++j) {++ans;}}double end = omp_get_wtime();// 計算12層for循環(huán)所消耗的時間cout << "time: " << (end - start)/10 << endl;return 0; }

3. 結果

機器1(2C4T):

線程數(shù)耗時(秒)
12.0653
21.37322
31.15472
41.10587

機器2(4C4T):

線程數(shù)耗時(秒)
11.72509
20.877413
30.618491
40.49988

在雙核四線程的機器上,單線程執(zhí)行與雙線程執(zhí)行有明顯的效率提升,但是當線程數(shù)開到3、4時,效率提升幾乎可以忽略不計。原因在于,雙核四線程,真正的核心只有2個,也就只有兩個物理線程。多出來的兩個線程是模擬出來的。但是,這種計算密集型的任務,類似等待IO這種耗時的操作也比較少,核心也就不會切換,虛擬出來的線程幾乎派不上用場。所以,最多就是兩個線程的效率。

而,四核四線程,是實打實的四個線程在工作。從任務耗時來看,所消耗的時間與線程數(shù)量成反比,4線程的僅是1線程耗時的四分之一,4倍左右的效率提升。

總結

以上是生活随笔為你收集整理的2C4T与4C4T在计算密集型任务下的效率对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。