问题标签 [cilk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
454 浏览

c++ - 内部和外部并行

内部并行度和外部并行度有什么区别?如果一个解决方案(视觉工作室)有 2 个项目,那么我们如何通过内部或外部定义并行性?

谢谢

0 投票
1 回答
101 浏览

openmp - 线程数和时间结果一致性

我正在尝试学习至强 phi 编程。

我在 cpu 上运行这段代码,我正在使用卸载编译指示来处理我想在协处理器上运行的部分。

由于我在 cpu 上编译并且我使用卸载,我正在使用:

为了指定线程数。

我的问题:

1) 运行代码,显示始终使用了 40 个线程。

2)一次又一次地运行代码而不编译,我得到不同的时间结果。

代码:

我正在编译:

0 投票
1 回答
1168 浏览

c++ - 是否可以将功能卸载到显卡?

我有一个 C++ 多线程应用程序,我想通过使用 Intel HD Graphics 获得更好的性能并降低 CPU 的总使用率。

我没有使用 CILK。(应用程序是用纯 C++ 编写的)

我阅读了以下链接: 如何将计算卸载到 Intel(R) Graphics Technology

但是没有找到一种方法来处理图形卡上的写入函数或线程。

是否可以 ?有没有办法使用英特尔编译器将函数(或线程)卸载到英特尔高清显卡中?

谢谢

0 投票
1 回答
110 浏览

c++ - 通过安装 intel parallel X studio 使用 Cilk 库

我安装了 Intel studio,我有 Visual Studio 2013,我想编写一个使用线程的程序。我想由 Intel 编译它,我做了这些步骤:

  1. 我创建了一个空项目
  2. 我右键单击 cpp 源并选择 using Intel compiler 然后选择 using intel c++ for selected file 并在选择 All configuration 后,单击 On Ok 按钮。
  3. 然后我右键单击项目并从英特尔编译器项目中选择使用英特尔 c++。
  4. 为了确定我去属性管理器并检查配置管理器,平台必须是 X64。更多,我在 c/c++ ,优化[英特尔 c++] 或一般 [英特尔 c++] 中看到。

所以我认为所有设置都正确完成。但是当我使用 Cilk/cilk.h 编写代码时出现这些错误

在此处输入图像描述

这是代码

我应该说我尝试使用 _Cilk_for 而不是 cilk_for 但问题没有解决。

谁能告诉我有什么问题?

0 投票
2 回答
249 浏览

c++ - What is the right way to compute Fibonacci using cilk?

While I'm learning cilk, I countered with 2 opposite examples:

  1. From intel

  2. from wiki (or other examples in the net):

The oppposite lies on those 2 lines:

The first site says:

You do not need to add a cilk_spawn attribute to the second recursive call to fib() because that will create an empty continuation

  1. I dont understand why?
  2. What is the right way? (using 2 spawn commands or just one ? )
0 投票
2 回答
1092 浏览

c++ - 为什么我在编译cilk程序时收到“错误预期的表达式”

我正在使用 Linux、Eclipse 和 Intel 编译器 V14。

我正在尝试编译基本的斐波那契示例:

并得到编译错误:

我尝试使用:

但同样的错误..

0 投票
2 回答
1373 浏览

c++ - 错误:“int”之前的预期主表达式

我正在使用: gcc --version gcc (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2

我正在尝试编译以下程序:

但是得到以下错误:

怎么了 ?

谢谢

0 投票
1 回答
99 浏览

c++ - 使用 icpc 编译时无法解析符号 _cilk_spawn

我正在使用 Ubuntu 14.04 & eclipse & intel 编译器 v 15

我有 2 个相同的程序(使用 cilk 命令)(一个作为 c 程序,另一个作为 cpp 程序)。

我可以用 icc 编译它(没有任何问题)

但是当我使用 icpc(cpp 程序)时出现错误:无法解析符号 _cilk_spawn

在这两个相同的程序中,我没有使用任何标志。

cpp程序有什么不同,我无法编译它

0 投票
1 回答
118 浏览

c++ - 如何在 Cilk Plus 中组织非线程安全资源池(每个工作人员一个资源)?

我有一个串行代码,我想使用 Cilk Plus 并行化;主循环对不同的数据集重复调用一个处理函数,所以迭代是相互独立的,除了使用了非线程安全的资源,它被封装在nts一个外部库提供的类中(比如,)它接受一个文件名并对其进行 I/O。

如果我使用的是 OpenMP,我将创建一个资源池,其中包含与我拥有的线程一样多的资源,并根据线程 ID 访问这些资源:

__cilkrts_get_nworkers()使用 Cilk Plus,我可以使用和API做尽可能多的事情__cilkrts_get_worker_number(),但是从英特尔论坛上的多个帖子中,我了解到这被认为是解决问题的错误解决方案,而正确的解决方案是使用持有人超对象。

现在,持有者解决方案看起来确实不错,除了我真的希望创建与工作线程一样多的视图。也就是说,对于 3 个工作线程,我想要 3 个对象而不是更多。理由是,正如我所说,资源是由第三方库提供的,构建起来非常昂贵,而且我必须在之后处理生成的文件,所以越少越好。

不幸的是,我发现持有者不是为每个工作人员创建一个视图并保持它直到同步,而是根据我不理解的逻辑以某种方式创建和销毁视图,并且似乎没有办法影响这种行为。

是否有可能让持有人按照我想要的方式行事,如果没有,我的问题的惯用 Cilk Plus 解决方案是什么?

这是我用来调查持有者的程序,请注意,它在一次运行期间在我的测试机器上创建多达 50 个视图,这些视图似乎是随机分配和销毁的:

0 投票
1 回答
101 浏览

c++ - 如何使 Eclipse 错误解析器接受 cilk_for

我正在尝试使 eclipse 与 cilk 一起工作。我想为 eclipse CDT 解析器定义一个宏作为 cilk_for = for。在另一篇文章中有人建议我去 Project=>Properties=>Paths and Symbols 然后在那里定义符号,这样只有 eclipse 而不是 gcc 会定义符号。问题是 gcc 确实看到了禁用 cilk 的符号。我该如何定义它,所以只有 eclipse 解析器有它。