並列メモリ割り当てとは何ですか?

並列メモリ割り当てとは何ですか?

並列メモリ割り当てとは何かを理解しようとしています。

「メモリ割り当て」が何であるかは理解していると思いますが、「並列」という用語は理解していません。おそらく複数のプロセッサと関係があるのでしょうか?

また、C で並列メモリ割り当てを実装する必要があります。参照するのに適した Web サイトやページについて何かお勧めはありますか?

答え1

並列メモリ割り当ては、マルチ CPU アーキテクチャで実行されるマルチスレッド アプリケーションでのメモリ割り当ての問題に対処します。シングル CPU アーキテクチャとは対照的に、メモリ共有の競合 (ロック、キャッシュ無効化など) を考慮する必要があります。たとえば、異なる CPU で実行される 2 つのスレッドが同じキャッシュ ラインに何度もアクセスすると、CPU がローカル キャッシュ メモリを活用できず、常に別の CPU によって無効化されるため、パフォーマンスが大幅に低下する可能性があります。

独自のルーチンを書いて深く踏み込む前に、hoardのようなドロップインライブラリを使用することをお勧めします(http://www.hoard.org/) 発生する可能性のある多くの競合状態のため、このようなルーチンの堅牢性をテストするのはかなり複雑な作業です。

編集:

次の文書を確認してください:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- これはホード実装に関するものですが、関連する多くの問題について詳しく説明しているので、読む価値があります。

関連情報