2012-01-30 20 views
1

Linuxデスクトップでopenmpiとmpicxxを使ってメッセージパッシングプログラムをコンパイルしています。私のメイクファイルは、以下のん:私は次のエラーを取得する-lnumaとは何ですか?どのプログラムがコンパイルにどのようなプログラムを使用していますか?

mpicxx -c readinp.cpp 
mpicxx -o exp_fit driver.cpp readinp.o 

その時点で:

/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: cannot find -lnuma 

私の質問は以下のとおりです。

-lnumaは何ですか?それは何を使用していますか?どのように私はそれにリンクについて行く必要がありますか?

答えて

1

NUMA(Non Uniform Memory Access)というNUMAライブラリがビルドスクリプトで見つかりません。 -lオプションはリンカーにライブラリのリンクを指示しますが、システムのetherに正しいものがインストールされていないか、リンカーの検索パスが不完全/間違っています。

パッケージマネージャ(aptまたはrpm)にlibnumaパッケージを問い合わせてみてください。

+0

このシステムでOpenMPIを使用してコンパイルした他の人は知っています。私のユーザーアカウントにアクセス権がない可能性はありますか?ライブラリがある場所にパスを追加する必要がありますか?もしそうなら、私はその道をどのように見つけるのでしょうか? – drjrm3

+0

あなたのディストリビューションに依存しているかもしれません。ほとんどのディストリビューションはバイナリとヘッダーを 'libnuma'や 'libnuma-devel'のようなパッケージに分けます。両方を検索してみてください。インストールされている場合は、パス(たとえば、rpm -ql libnumaまたはdpkg -L libnuma)を問い合わせることができます。 – Mithrandir

2

OpenMPIは、メモリアフィニティのために、libnuma( `LinuxカーネルでサポートされているNUMA(Non Uniform Memory Access)ポリシーへの単純なプログラミングインターフェイス ')を使用していると思います。特定のMPIタスクは、タスクが実行されているコアに近く、他のソケット上のキャッシュに保持されます。これは、マルチコアノードでのパフォーマンスにとって重要です。

リンカがライブラリを見つけられない場合は、YaSTを使用してlibnuma-develをインストールする必要があります。

0

ありがとうJonathan Dursi!

Ubuntuでは、パッケージ名はlibnuma-devです。
apt-get install libnuma-dev

関連する問題