我使用他们网站上的说明安装了 Cilk 。
sudo apt-add-repository ppa:wsmoses/tapir-toolchain
sudo apt-get update
sudo apt-get install tapirclang-5.0 libcilkrts5
我从Cilk 文档中复制了以下程序。
#include <stdio.h>
#include <stdint.h>
int64_t fib(int64_t n) {
if (n < 2) return n;
int x, y;
x = cilk_spawn fib(n - 1);
y = fib(n - 2);
cilk_sync;
return x + y;
}
int main(){
printf("%ld\n", fib(20));
}
然后我使用他们指定的编译器标志进行编译。
clang-5.0 -fcilkplus Fib.c
Fib.c:7:9: error: use of undeclared identifier 'cilk_spawn'
x = cilk_spawn fib(n - 1);
^
Fib.c:9:5: error: use of undeclared identifier 'cilk_sync'
cilk_sync;
^
所需的输出是使用Cilk
和打印的工作可执行文件6765
。
生成这个可执行文件需要什么魔法咒语?
我正在运行带有内核的 Ubuntu 18.04 4.4.0-45-generic
。