私はAndroid上でいくつかのテストを実行しており、並列化されているとアルゴリズムのパフォーマンス(FFTなど)がどれほど改善できるかを検証しています。私は、JNI(FFTW)とJavaスレッド(JTransformsから)でpthreadを使用してアルゴリズムを実装しました。期待どおりのスレッドを使用してより良いパフォーマンスを得る代わりに、私はシリアルアルゴリズムを使用してより良い結果を得ています。私がマルチコアデバイスでこれらのテストを実行して以来、なぜ私はこれらの結果が得られたのか不明です。 Androidシステムで使用されているスケジューリングアルゴリズムは、Linuxで使用されているものとちょっと違っていて、複数のCPUを使用してAndroid上でマルチプロセッシングを実行したいと思っています。Androidでのマルチプロセッシング
FFTWの例: JNIコードはhttps://github.com/maxrosan/DspBenchmarking/blob/master/jni/fftw_jni.cで、そのインターフェイスはhttps://github.com/maxrosan/DspBenchmarking/blob/master/src/br/usp/ime/dspbenchmarking/algorithms/fftw/FFTW.javaです。
テストで呼び出されるメソッドは「実行」です。ピュアJavaで
例:ここでは '実行' と呼ばれる方法 https://github.com/maxrosan/DspBenchmarking/blob/master/src/br/usp/ime/dspbenchmarking/algorithms/jtransforms/fft/DoubleFFT_1D2TAlgorithm.java
。
「実行」と「実行」は別のスレッド内で呼び出されます。
executeOnExecutorでThreadPoolExecutorまたはAsyncTaskを使用します。 –
私はあなたの最後の文について、どのようなテストを試みたのですか?私たちにいくつかのコードを教えてくれますか? – Desert
ああ、あなたはC++マルチスレッドを使用しています。私は、javaマルチスレッドを使用してみるか、C++をよく知っている人と相談してみることをお勧めします。 – Desert