C和Mathematica中的并行计算

问题描述 投票:1回答:3

我有一个拥有8个处理器的核心i7笔记本电脑。

我想用相同的代码(例如GPU编程中的内核)同时运行所有这8个处理器,例如:

// GPU programming code (kernel)
__kernel void set(__global int* list)
    int i = get_global_id();
    list[i] = i;
}

我想在mathematica中执行类似的操作,但要使用C代码而不是OpenCL ,或者使用纯C代码来执行此操作。

显然,我想使用mathematica或C在所有内核中运行特定的代码段。

对不起,不清楚。.:)

c wolfram-mathematica parallel-processing
3个回答
5
投票

您可能想阅读有关OpenMP的信息


4
投票

如果您正在寻找利用Mathematica中所有内核的方法,那么就不需要C了。Mathematica具有相当好的并行化功能 ,例如使用Parallelize

In[1] := Parallelize[Select[Range[9000, 10000], PrimeQ[2^# - 1] &],
                     Method -> "FinestGrained"]
Out[1] = {9689, 9941}

1
投票

看一下基于C的API Grand Central DispatchOpenMP

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.