• Visual Studio 2015 OpenMP: (1) 初涉江湖


    环境:Windows 10 + Visual Studio 2015 Community

    第一步:新建win32 console project

    第二步:新建cpp文件,填入类似hello world的代码:

     1 #include <iostream>
     2 #include <time.h>
     3 #include <omp.h>
     4 
     5 void sumintegrers()
     6 {
     7     int a = 0;
     8     for (int i = 0; i < 1e8; ++i)
     9     {
    10         ++a;
    11     }
    12 }
    13 
    14 
    15 int main()
    16 {
    17     clock_t t1 = clock();
    18 
    19 #pragma omp parallel for
    20     for (int i = 0; i < 8; ++i)
    21     {
    22         sumintegrers();
    23     }
    24 
    25     clock_t t2 = clock();
    26 
    27     std::cout << "time: " << t2 - t1 << std::endl;
    28 }

    第三步,打开工程属性->C/C++下Language页面,将Open MP Support状态修改为Yes (/openmp).

    即可。在我的电脑上运行时间是200ms.

    对于这个例子, #include <openmp.h> 可以不要。

    此外,还有一个很好玩的可以测试线程执行顺序的代码:

    1 int NUMofProcs = omp_get_num_procs();
    2 fprintf(stdout, "Number of Processors: %3d
    ", NUMofProcs);
    3 
    4 #pragma omp parallel for
    5     for (int i = 0; i < NUMofProcs; ++i)
    6     {
    7         fprintf (stdout, "ID of the curret thread: %d
    ", omp_get_thread_num());
    8         fprintf(stdout, "%5d
    ", i);
    9     }

    其中, omp_get_num_procs() 获取计算单元总个数, omp_get_thread_num() 获取当前线程编号。我的结果如下:

     

  • 相关阅读:
    mysql数据库
    is not in the sudoers file.This incident will be reported
    linux的一些命令
    u盘安装linux(windows7+linux双系统)
    优惠券、礼品卡、礼券
    优惠营销管理
    优惠营销管理
    hdu 1166 线段树单点更新
    hdu 1542 扫描线求矩形面积的并
    hdu 2444 二分图判断与最大匹配
  • 原文地址:https://www.cnblogs.com/make217/p/5305771.html
Copyright © 2020-2023  润新知