私はコンピューティングサイエンスプロジェクトを行っています。私はCを使用してマルチプロセッサプログラミングを行っています。私たちの要件の1つは、メモリの小さなチャンクを割り当て続けることができないということです。必要に応じて、メモリを大きなチャンクに割り当てることができます。
したがって、プログラムで構造体を使用していると想像してください。そして、私のプログラムが機能する方法には、動的メモリ割り当てが必要です。しかし、私たちが使用しているハードウェアでは非常にコストがかかります。したがって、最善の解決策は、最初に大きなメモリプールを割り当て、必要に応じてこのプールからメモリを割り当てることです。
これが機能することを想定する方法は、これらの構造のビット配列を割り当て、このプールからメモリを割り当てて解放する独自のメモリ管理モジュールを作成することです。しかし、私はこれらのモジュールを書くための最も理想的な方法を知りたいです。メモリの管理に役立つライブラリはありますか、またはこれらを書き込む方法はありますか?
編集:これが私が使用しているプラットフォームです:Ubuntuを実行するAMDオプテロンシステム。オプテロンにはNUMAアーキテクチャがあり、メモリを割り当てるときにこれを利用したいと思います。したがって、mallocを使用する代わりに、 1つの特定のノードにメモリを割り当てるnuma_alloc_onnodeを使用します。これを使用してメモリの大きなチャンクを割り当ててから、メモリマネージャを使用してこのメモリを管理したいと思います。