2011-07-11 11 views
1

私は8プロセッサのコアi7ラップトップを持っています。Cとmathematicaの並列計算

私は例のコードの同じ部分(GPUプログラミングのカーネルのようなもの)と同時に、これらすべての8つのプロセッサを実行したい

: - 私はMathematicaでこのような何かをしたい

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

けどとCコードではないOpenCL、またはそれを純粋なCコードで実行します。

は明らかに、私は明確ではないことを気の毒にMathematicaを使用して、すべてのコア内のコードの特定の部分を実行する場合、またはC.

.. :)

+0

あなたはpthreadsのライブラリを使用することができますCでは、別のスレッドで関数を実行します(各スレッドは使用可能なプロセッサを使用します)。これが完了すると、MathLinkを使用してMathematicaから並列化されたC関数を呼び出すことができます。あなたがやりたいと思っている機能の特定の例がありますか? – jmlopez

答えて

5

おそらくについてOpenMPを読みたいです。

+0

または[Cilk](http://en.wikipedia.org/wiki/Cilk);) – bacchus

4

あなたはMathematicaですべてのコアを活用する方法を探しているなら、Parallelizeを使用して、たとえば、C. Mathematicaはfairly good parallelization functionalityを持って関与する必要があってはならない。

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