使用Intel ArBB的Visual Studio 2010上的Hello World?

时间:2011-08-28 22:11:52

标签: visual-studio-2010 intel

我正在尝试开始使用英特尔的阵列构建模块,而http://www.hpc.lsu.edu/training/tutorials/sc10/tutorials/SC10Tutorials/docs/M07/M07.pdf似乎只有一个关于“Hello World”的教程。我并没有真正得到它。

我正在使用Visual Studio 2010,这是我从上面链接获得的代码,有点。

#include <C:/Program Files/intel/arbb/Beta6/include/arbb.hpp> 
//What do I have to do to make just "#include <arbb.hpp>" work?

using namespace arbb;

void my_function(f32& result, f32 input){
    std::cout << "Hello, world!" << std::endl;
    result = input + 1.0f; //"Error: no operator "+" matches these operands
}

int main(){
    typedef closure<void (f32&, f32)> mfc;
    mfc a = capture(my_function);
    mfc b = call(my_function);
    mfc c = call(my_function);
}

让“Hello World”工作还需要做些什么?

1 个答案:

答案 0 :(得分:0)

arbb安装路径中有许多样本可用。您可以使用visual studio解决方案文件从任何示例开始。这是最简单的方法。

为了从头开始编译和运行您自己的应用程序,您必须设置包含和依赖项。

在Linux上,您可以使用-I

在编译选项中添加路径〜/(whatever)/ intel / arbb / Beta6 / include

在Windows上,您可以执行以下操作: 设置INCLUDE = C:/ Program Files / intel / arbb / Beta6 / include / arbb.hpp;

或者有一个批处理脚本,可以确保默认设置所有环境变量。

---批处理文件的内容---

SET ARBB_OPT_LEVEL = O3 SET PATH =%ARBB_ROOT%\ bin \ ia32;%ARBB_ROOT%\ bin \ ia32 \ vs%MSVS_VERSION%;%OPENCV_ROOT%\ bin;%FFTW_ROOT%;%FREEGLUT_ROOT%;%PTHREADS_ROOT%\ lib;%PATH%

----这是arbb中的hello world程序---

#include <arbb.hpp>

void arbb_hello_map(arbb::i32& val)
{
  val = val * 2;
}
void arbb_hello(arbb::dense<arbb::i32>& data) 
{
  using namespace arbb;
  map(arbb_hello_map)(data);
}

int main() 
{
  using namespace arbb;
  int size = 5;
  dense<i32> data = dense<i32>(size);
  range<i32> write_data = data.write_only_range();
  for (int i = 0; i < size; ++i) 
    write_data[i] = i;

  arbb::call(arbb_hello)(data);
  std::cout << "hello: " << std::endl;
  const_range<i32> read_data = data.read_only_range();
  for (int i = 0; i < size; ++i)
    std::cout <<"data["<<i<<"] = " << read_data[i] <<"\n";
  return 0;
}

使用

编译它
g++ -m64  -I/home/YOUR_NAME/arbb/install//include -Wall -Werror -O3 -W -Wshadow temp.cpp -o temp -L/home/YOUR_NAME/arbb/install/lib/intel64 -larbb_dev -ltbb -littnotify

使用运行它 ./temp