问题标签 [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.
c++ - 编译 Cilk Plus 程序时遇到问题
我在尝试编译 Cilk Plus 程序时遇到了麻烦。基本上当我运行: 时g++ -o reducer reducer.cpp
,我收到以下错误:
我已经包含cilk/cilk.h
& cilk/reducer.h
,但我不确定究竟是什么导致了这个问题。代码代表一个简单的自定义reducer,没什么特别的。以下是发生错误时循环的样子:
注意:我什至尝试使用_Cilk_for
,仍然得到同样的错误。
c - 如何在 Windows 10 上安装英特尔 Cilk 以进行 C/C++ 并行编程?
我想尝试使用英特尔的 Cilk 扩展来进行 C/C++ 并行编程,但我很难弄清楚如何在 Windows 上安装它。我尝试咨询官方网站,但找不到任何面向 Windows 的指南。现在切换到 Linux 并不方便,我宁愿把它作为最后的手段。
我还尝试获得 Parallel Studio 的免费试用版,但显然它不再支持 CILK。
如果有人可以一步一步地指导我,我将非常感激。
我使用包含 gnu gcc 编译器的代码块。
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 个步骤的定义运行。
谢谢!
c++ - 尝试使用 OpenMP 并行化递归函数的冗余计算
我有一个递归函数,它调用自己两次。我尝试并行化该函数最终会奏效,但在此期间会进行大量冗余计算,从而消除了并行性的所有收益。
主程序试图计算一个辅助图,它是计算图的所有 k 边连通分量所需的中间数据结构。
几个月来我一直在努力解决这个问题,我只是决定在这里寻求帮助作为最后的手段。我将不胜感激任何指出我正确方向的意见或建议;我不一定要在盘子上寻找解决方案。
我尝试使用#pragma omp single nowait,但这只会导致代码的顺序执行。
我曾尝试使用 cilk_spawn 另一次,但这只会导致我的计算机内存不足。我想产生了太多的进程。
我将问题的精神提取到我粘贴在下面的最小工作示例中。
下面发布的代码将每个计算重复大约八次。我猜八个不同的进程运行程序的单独副本,而不是同时处理部分问题。
我的目标是让所有进程/线程一起工作以完成递归。
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?
cmake - cmake 构建期间出错:CXX 编译器必须支持 Cilk
我正在尝试根据此网站安装 cilk++,并且正在执行“Cilk Plus Runtime”部分中的步骤。当我去构建时,我得到以下输出:
我认为 clang 和 clang++(我用 --version 检查确实安装了)就足够了。我需要更新 clang 和 clang++ 吗?说明网站上没有故障排除步骤,所以我不确定我需要做什么才能最终让 cilk++ 在我的笔记本电脑上启动并运行。
提前致谢,
安东尼
xcode - 在 macOS Catalina 和 Xcode 11 上安装 Cilk Plus 编译器时出错
我正在尝试在带有 macOS Catalina 和 Xcode 11 的 iMac 上使用此指南安装 Cilk Plus 编译器,
我使用了命令
创建二进制文件,当我尝试使用命令安装时
告诉我错误
所以我的问题是,Cilk plus 与 macOS Catalina 和 Xcode 11 兼容吗?如果这是我可以解决这个错误的方法