• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            jianlinzhang

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              16 隨筆 :: 2 文章 :: 17 評(píng)論 :: 0 Trackbacks
            包含 <omp.h>

            OpenMP的指令有以下一些:
                   parallel,用在一個(gè)代碼段之前,表示這段代碼將被多個(gè)線程并行執(zhí)行
                   for,用于for循環(huán)之前,將循環(huán)分配到多個(gè)線程中并行執(zhí)行,必須保證每次循環(huán)之間無(wú)相關(guān)性。
                   parallel for, parallel 和 for語(yǔ)句的結(jié)合,也是用在一個(gè)for循環(huán)之前,表示for循環(huán)的代碼將被多個(gè)線程并行執(zhí)行。
                   sections,用在可能會(huì)被并行執(zhí)行的代碼段之前
                   parallel sections,parallel和sections兩個(gè)語(yǔ)句的結(jié)合
                   critical,用在一段代碼臨界區(qū)之前
                   single,用在一段只被單個(gè)線程執(zhí)行的代碼段之前,表示后面的代碼段將被單線程執(zhí)行。
                   flush
            barrier,用于并行區(qū)內(nèi)代碼的線程同步,所有線程執(zhí)行到barrier時(shí)要停止,直到所有線程都執(zhí)行到barrier時(shí)才繼續(xù)往下執(zhí)行。
            atomic,用于指定一塊內(nèi)存區(qū)域被制動(dòng)更新
            master,用于指定一段代碼塊由主線程執(zhí)行
            ordered, 用于指定并行區(qū)域的循環(huán)按順序執(zhí)行
            threadprivate, 用于指定一個(gè)變量是線程私有的。
            OpenMP除上述指令外,還有一些庫(kù)函數(shù),下面列出幾個(gè)常用的庫(kù)函數(shù):
                   omp_get_num_procs, 返回運(yùn)行本線程的多處理機(jī)的處理器個(gè)數(shù)。
                   omp_get_num_threads, 返回當(dāng)前并行區(qū)域中的活動(dòng)線程個(gè)數(shù)。
                   omp_get_thread_num, 返回線程號(hào)
                   omp_set_num_threads, 設(shè)置并行執(zhí)行代碼時(shí)的線程個(gè)數(shù)
            omp_init_lock, 初始化一個(gè)簡(jiǎn)單鎖
            omp_set_lock, 上鎖操作
            omp_unset_lock, 解鎖操作,要和omp_set_lock函數(shù)配對(duì)使用。
            omp_destroy_lock, omp_init_lock函數(shù)的配對(duì)操作函數(shù),關(guān)閉一個(gè)鎖
             
            OpenMP的子句有以下一些
            private, 指定每個(gè)線程都有它自己的變量私有副本。
            firstprivate指定每個(gè)線程都有它自己的變量私有副本,并且變量要被繼承主線程中的初值。
            lastprivate主要是用來(lái)指定將線程中的私有變量的值在并行處理結(jié)束后復(fù)制回主線程中的對(duì)應(yīng)變量。
            reduce用來(lái)指定一個(gè)或多個(gè)變量是私有的,并且在并行處理結(jié)束后這些變量要執(zhí)行指定的運(yùn)算。
            nowait忽略指定中暗含的等待
            num_threads指定線程的個(gè)數(shù)
            schedule指定如何調(diào)度for循環(huán)迭代
            shared指定一個(gè)或多個(gè)變量為多個(gè)線程間的共享變量
            ordered用來(lái)指定for循環(huán)的執(zhí)行要按順序執(zhí)行
            copyprivate用于single指令中的指定變量為多個(gè)線程的共享變量
            copyin用來(lái)指定一個(gè)threadprivate的變量的值要用主線程的值進(jìn)行初始化。
            default用來(lái)指定并行處理區(qū)域內(nèi)的變量的使用方式,缺省是shared



















            文章出處:
            http://blog.csdn.net/drzhouweiming/archive/2006/08/28/1131537.aspx
            http://blog.csdn.net/drzhouweiming/archive/2006/09/04/1175848.aspx
            posted on 2009-05-14 09:11 張建林 閱讀(864) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久av免费天堂小草播放| 精品免费久久久久久久| 久久国产乱子精品免费女| 国内精品久久人妻互换| 久久婷婷综合中文字幕| 国内精品免费久久影院| 久久精品视屏| 久久精品人妻中文系列| 国产国产成人精品久久| 青青久久精品国产免费看| 久久久无码精品亚洲日韩京东传媒 | 久久久久国色AV免费看图片| 伊人久久五月天| 国内精品久久久人妻中文字幕| 国产午夜福利精品久久| 久久精品中文无码资源站| 久久精品人人做人人爽电影| 久久人人爽人人人人爽AV| 亚洲午夜精品久久久久久人妖| 一本久道久久综合狠狠躁AV| 久久线看观看精品香蕉国产| 中文字幕无码av激情不卡久久| 国产69精品久久久久777| 2020久久精品亚洲热综合一本 | 日本欧美久久久久免费播放网| 成人精品一区二区久久久| 亚洲中文字幕久久精品无码喷水 | 蜜桃麻豆WWW久久囤产精品| 久久精品成人国产午夜| 天天爽天天狠久久久综合麻豆| 女同久久| 色婷婷久久综合中文久久一本| 久久香蕉综合色一综合色88| 亚洲AV无码久久| 色综合久久综合中文综合网 | 亚洲香蕉网久久综合影视| 久久亚洲高清综合| 久久久噜噜噜久久中文字幕色伊伊| 久久福利青草精品资源站| 精品久久久久久国产| 久久人爽人人爽人人片AV|