问题标签 [cilk-plus]

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 回答
106 浏览

c++ - 编译 Cilk Plus 程序时遇到问题

我在尝试编译 Cilk Plus 程序时遇到了麻烦。基本上当我运行: 时g++ -o reducer reducer.cpp,我收到以下错误:

我已经包含cilk/cilk.h& cilk/reducer.h,但我不确定究竟是什么导致了这个问题。代码代表一个简单的自定义reducer,没什么特别的。以下是发生错误时循环的样子:

注意:我什至尝试使用_Cilk_for,仍然得到同样的错误。

0 投票
2 回答
1523 浏览

c - 如何在 Windows 10 上安装英特尔 Cilk 以进行 C/C++ 并行编程?

我想尝试使用英特尔的 Cilk 扩展来进行 C/C++ 并行编程,但我很难弄清楚如何在 Windows 上安装它。我尝试咨询官方网站,但找不到任何面向 Windows 的指南。现在切换到 Linux 并不方便,我宁愿把它作为最后的手段。

我还尝试获得 Parallel Studio 的免费试用版,但显然它不再支持 CILK。

如果有人可以一步一步地指导我,我将非常感激。

我使用包含 gnu gcc 编译器的代码块。

0 投票
1 回答
97 浏览

c - C有模板吗?

我以前使用过 C,但总的来说我仍然是一个主要的新手。目前我正在做一个涉及并行计算的小项目,为此我们使用了 Cilk+ 语言。

我的目标是使用 Cilk+ 实现并行扫描模式,我找到了这个主题的参考,但我不理解它的一半符号。

C有模板吗?我以为只有 C++ 有它们。

如果是,它们是如何工作的?我没有找到关于这个主题的任何东西。

如果不是,那么有人可以解释一下第 1 行和第 5 行是什么意思吗?

在此处输入图像描述

先感谢您!

0 投票
0 回答
97 浏览

c++ - 我如何将 Cilk Plus Extensions 应用于这个简单的 C++ 代码?

所以我的任务是找到一种方法来并行化下面这个简单的 C++ 问题。我已经向我解释过 OpenMP(在另一个问题上)作为一种可能的方法,它非常可靠。话虽如此,Clik Plus扩展似乎对现有 C++ 代码的侵入性极小,如果有人可以向我展示 + 详细解释如何将 Clik Plus 绑定到并并行化此代码,我将不胜感激。现有代码的步骤如下所示。

1) 取一个正整数 N 作为参数

2) 创建一个大小为 N 的整数数组

3) 填充范围 [1,1000] 中的整数

4) 并行求最大整数和数组之和

5) 打印最大整数和数组的总和。

第 4 步是我需要实现 Clik Plus 的步骤。

就目前而言,我的代码工作正常,但它没有并行化。我了解 Clik Plus 提供了三个关键字:

cilk_for - 并行化 for 循环

cilk_spawn - 指定一个函数可以与调用函数的其余部分并行执行

cilk_sync - 指定函数中的所有衍生调用必须在执行继续之前完成

我的问题是我不知道在哪里/如何在我的代码中实现它们。

最后,我应该能够使用命令g++ main.cpp -fclikplus编译此代码, 并让它按照上述 5 个步骤的定义运行。

谢谢!

0 投票
1 回答
49 浏览

c++ - 尝试使用 OpenMP 并行化递归函数的冗余计算

我有一个递归函数,它调用自己两次。我尝试并行化该函数最终会奏效,但在此期间会进行大量冗余计算,从而消除了并行性的所有收益。

主程序试图计算一个辅助图,它是计算图的所有 k 边连通分量所需的中间数据结构。

几个月来我一直在努力解决这个问题,我只是决定在这里寻求帮助作为最后的手段。我将不胜感激任何指出我正确方向的意见或建议;我不一定要在盘子上寻找解决方案。

我尝试使用#pragma omp single nowait,但这只会导致代码的顺序执行。

我曾尝试使用 cilk_spawn 另一次,但这只会导致我的计算机内存不足。我想产生了太多的进程。

我将问题的精神提取到我粘贴在下面的最小工作示例中。

下面发布的代码将每个计算重复大约八次。我猜八个不同的进程运行程序的单独副本,而不是同时处理部分问题。

我的目标是让所有进程/线程一起工作以完成递归。

0 投票
2 回答
223 浏览

c++ - Multithreaded algorithms work much slower

I have tried with OpenMP and Cilk Plus. The result is the same, multithreading works slower. I don't know what I'm doing wrong. I did what the guy did in this tutorial

His code works better in parallel, while the situation in mine is like this:

PARALLEL: Fibonacci number #42 is 267914296
Calculated in 33.026 seconds using 8 workers

SERIAL: Fibonacci number #42 is 267914296
Calculated in 2.110 seconds using 8 workers

I exactly copied the source code of the tutorial.

I also tried it with OpenMP, the same thing happens there too. I check the usage of CPU cores during the execution. They all work, it is fine.

I tried to change the number of workers with this command:

It appears as the number of workers increases, the algorithm runs slower. But sometimes it doesn't. I implemented Cilk codes on both C and C++. No difference.

This is the sequential Fibonacci function:

This is the parallel Fibonacci function:

And I calculate running time like this in main() function:

Can anyone help me?

0 投票
1 回答
150 浏览

cmake - cmake 构建期间出错:CXX 编译器必须支持 Cilk

我正在尝试根据此网站安装 cilk++,并且正在执行“Cilk Plus Runtime”部分中的步骤。当我去构建时,我得到以下输出:

我认为 clang 和 clang++(我用 --version 检查确实安装了)就足够了。我需要更新 clang 和 clang++ 吗?说明网站上没有故障排除步骤,所以我不确定我需要做什么才能最终让 cilk++ 在我的笔记本电脑上启动并运行。

提前致谢,

安东尼

0 投票
1 回答
57 浏览

xcode - 在 macOS Catalina 和 Xcode 11 上安装 Cilk Plus 编译器时出错

我正在尝试在带有 macOS Catalina 和 Xcode 11 的 iMac 上使用此指南安装 Cilk Plus 编译器,

我使用了命令

创建二进制文件,当我尝试使用命令安装时

告诉我错误

所以我的问题是,Cilk plus 与 macOS Catalina 和 Xcode 11 兼容吗?如果这是我可以解决这个错误的方法

0 投票
1 回答
55 浏览

c - 使用 Cilk Plus 数组表示法编译 C 文件

在我的可用代码中,有一行 Cilk Plus 数组表示法:

当我通过在 Linux 上运行命令编译它时:

我遇到这个错误 错误

我会使用哪个命令来解决这个问题?预先感谢