double の大きな配列を取得し、プロセッサを集中的に使用する関数を使用してチャンクで処理する必要があります。
私の元の配列は非常に大きく、約 200MB の倍の信号データです。
それぞれ 5000 個の double のチャンクで取得し、単一の double を返す関数を使用して、プロセッサを集中的に使用する数学で処理する必要があります。これらの各関数の結果は、後で使用される順序付き配列を作成するために必要です。
これは、PLINQ を使用した並列処理に最適だと思いますが、どうすればよいかわかりません。
私が書いた単純な実装は次のようになります。
var processedList = new List<double>();
var chunk = new List<double>;
foreach (var rawSample in drop.RawSamples)
{
chunk.Add(rawSample);
if (chunk.Count == 5000)
{
// Do long processing here
processedList.Add(LongProcessingFunction(chunk));
chunk.Clear();
}
}
// Do something later with the list of processed values.....
では、PLINQ はどこから始めればよいのでしょうか。プロセッサのすべてのコアを使用して、長時間の集中的な機能を実行できる必要があります。
IEnumerable の Take(n) 関数があるようです.....これを使用できますか?
ここで AsParallel を使用できますか?
ありがとう!