簡體   English   中英

運行英特爾線程構建塊的 XCode 8 環境變量是什么

[英]What are XCode 8 Environment Variables to run Intel Threading Building Blocks

我安裝了英特爾線程構建模塊。 我無法為 XCode 設置環境變量(lib 和包含路徑)。

首先,我想編寫一個簡單的 parallel_for 程序,我什至無法在我的程序中添加命名空間tbb

有人可以幫忙嗎?

在此處輸入圖像描述

這很簡單:安裝它的最佳方法:

brew install tbb

需要Homebrew ,強烈推薦給任何想要使用各種開源工具的 Mac 用戶。

調整 3 個項目設置

之后執行brew info tbb以查看安裝目錄,在我的情況下

/usr/local/Cellar/tbb/2017_U7

結果是

/usr/local/Cellar/tbb/2017_U7/include/
/usr/local/Cellar/tbb/2017_U7/lib/

對於各自的項目設置, Header Search PathsLibrary Search Paths

Other Linker Flags中輸入-ltbb就可以了。

測試代碼示例

我已經用 Xcode 8.3 中的上述設置驗證了這個例子

#include "tbb/parallel_for.h"
#include "tbb/task_scheduler_init.h"
#include <iostream>
#include <vector>

struct mytask {
    mytask(size_t n)
    :_n(n)
    {}
    void operator()() {
        for (int i=0;i<1000000;++i) {}  // Deliberately run slow
        std::cerr << "[" << _n << "]";
    }
    size_t _n;
};

int main(int,char**) {
    
    //tbb::task_scheduler_init init;  // Automatic number of threads
    tbb::task_scheduler_init init(tbb::task_scheduler_init::default_num_threads());  // Explicit number of threads
    
    std::vector<mytask> tasks;
    for (int i=0;i<1000;++i)
        tasks.push_back(mytask(i));
    
    tbb::parallel_for(
                      tbb::blocked_range<size_t>(0,tasks.size()),
                      [&tasks](const tbb::blocked_range<size_t>& r) {
                          for (size_t i=r.begin();i<r.end();++i) tasks[i]();
                      }
                      );
    
    std::cerr << std::endl;
    
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM