目次
- Cisco usNIC の概要
- Cisco usNIC の前提条件
- Cisco usNIC の設定
- CIMC GUI を使用した Cisco usNIC の設定
- CIMC CLI を使用した Cisco usNIC の作成
- CIMC CLI を使用した Cisco usNIC の値の変更
- vNIC からの Cisco usNIC の削除
- Cisco usNIC 用の Linux ソフトウェア パッケージのインストール
- Linux Cisco usNIC ソフトウェア パッケージのソース コード
- Cisco usNIC 用のカーネル モジュールの手動のロード
- Cisco usNIC 用の Linux ソフトウェア パッケージのアップグレード
- Cisco usNIC 用の Linux ソフトウェア パッケージのアンインストール
- ユーザ環境への MPI の追加
- Cisco Open MPI の環境
- Intel ® MPI ライブラリの環境
- ユーザ環境への Libfabric の追加
- Cisco UCS C シリーズ ラックマウント スタンドアロン サーバ用の Cisco usNIC のインストールの確認
- トラブルシューティング情報
First Published: January 20, 2016
Cisco usNIC の概要
Cisco user-space NIC(Cisco usNIC)機能は、ネットワーキング パケットを送受信するときにカーネルをバイパスすることで、データセンターの Cisco UCS サーバで実行されるソフトウェア アプリケーションのパフォーマンスを改善します。アプリケーションは、第二世代以降の Cisco UCS VIC アダプタと直接やり取りすることによって、ハイ パフォーマンス コンピューティング クラスタのネットワーキング パフォーマンスが向上します。Cisco usNIC のメリットを引き出すためには、アプリケーションはソケットまたはその他の通信 API ではなく、Message Passing Interface(MPI)または Libfabric インターフェイスを使用する必要があります。
Cisco usNIC は、お使いのアプリケーションに対して次の利点を提供します。
標準イーサネット アプリケーションは、Linux カーネルのネットワーキング スタックを呼び出すユーザ領域のソケット ライブラリを使用します。次に、ネットワーキング スタックは Cisco eNIC ドライバを使用して、Cisco VIC ハードウェアと通信します。次の図は、通常のソフトウェア アプリケーションと usNIC を使用する MPI アプリケーションの対比を示します。
Cisco usNIC の前提条件
Cisco usNIC のメリットを引き出すための設定には、次の前提条件があります。
UCS Driver ISO。詳細については、『Downloading Cisco UCS VIC drivers』を参照してください。
サポートされている Linux オペレーティング システム ディストリビューション リリース。詳細については、該当する『Hardware and Software Interoperability guide』を参照してください。
Cisco Open MPI ディストリビューションなどのサポート対象の MPI 実装(Cisco UCS Driver ISO を含む)または Intel ® MPI ライブラリのバージョン 4 または 5。Intel ® MPI ライブラリが使用されている場合は、ネットワークでフロー制御を有効に設定する必要があります。
Cisco usNIC の設定
(注)
Cisco usNIC パッケージは、オペレーティング システムのアップグレードまたはダウングレードをサポートしません。オペレーティング システムを更新するには、まず、usNIC パッケージをアンインストールして、オペレーティング システムを更新してから、usNIC ドライバを再インストールします。
または、オペレーティング システムを更新して、usNIC ドライバをアンインストールしてから、usNIC ドライバを再インストールすることができます。
はじめる前に手順次のソフトウェア コンポーネントとハードウェア コンポーネントが Cisco UCS サーバにインストールされていることを確認してください。
サポートされている Linux オペレーティング システム ディストリビューション リリース。詳細については、該当する『Hardware and Software Interoperability guide』を参照してください。
GCC、G++、および Gfortran
DAT ユーザ ライブラリ(Intel ® MPI を使用している場合)
libnl ユーザ ライブラリ(バージョン 1 とバージョン 3 のどちらか)
第二世代以降の Cisco UCS VIC アダプタ
重要:サポートされている Linux オペレーティング システム ディストリビューションについては、UCS Drivers ISO バンドルに含まれている usNIC フォルダの内容を参照してください。『Cisco UCS Virtual Interface Card Drivers for Linux Installation Guide(Linux 用 Cisco UCS 仮想インターフェイス カード ドライバ インストレーション ガイド)』を参照してください。
Cisco usNIC の設定と Linux ドライバのインストールが完了したら、Cisco usNIC が正しく動作していることを確認してください。インストールの確認方法の詳細については、Cisco UCS C シリーズ ラックマウント スタンドアロン サーバ用の Cisco usNIC のインストールの確認を参照してください。
CIMC GUI を使用した Cisco usNIC の設定
はじめる前に手順このタスクを実行するには、管理者権限で CIMC GUI にログインする必要があります。このビデオの [Play] をクリックして、CIMC で Cisco usNIC を設定する方法を視聴します。
ステップ 1 CIMC GUI にログインします。 CIMC へのログイン方法に関する詳細については、『Cisco UCS C-Series Servers Integrated Management Controller GUI Configuration Guide』を参照してください。
ステップ 2 In the Navigation pane, click the Server tab. ステップ 3 On the Server tab, click Inventory. ステップ 4 [Inventory] ペインの [Cisco VIC Adapters] タブをクリックします。 ステップ 5 In the Adapter Cards area, select the adapter card. If the server is powered on, the resources of the selected adapter card appear in the tabbed menu below the Adapter Cards area.
ステップ 6 In the tabbed menu below the Adapter Cards area, click the vNICs tab. ステップ 7 [Host Ethernet Interfaces] 領域で、表から vNIC を選択します。
(注) usNIC として設定する各 vNIC に対して、表から vNIC エントリを選択し、ステップ 9 ~ 18 で説明されているようにプロパティを指定します。 ステップ 8 [usNIC] をクリックして [usNIC Properties] ダイアログボックスを開きます。 ステップ 9 [usNICs] のプロパティでは、ユーザが作成する Cisco usNIC の数を指定します。 サーバで実行されている各 MPI プロセスには、専用の usNIC が必要です。64 の MPI プロセスを同時に実行させるには、最大 64 の usNIC を作成する必要がある場合があります。usNIC 対応 vNIC ごとに、サーバの物理コアの数と同数の usNIC を最低限作成することを推奨します。たとえば、サーバに 8 つの物理コアがある場合は、8 つの usNIC を作成します。
ステップ 10 [Properties] 領域で、次のフィールドを更新します。 ステップ 11 [Apply] をクリックします。 ステップ 12 In the Navigation pane, click the Server tab. ステップ 13 On the Server tab, click BIOS. ステップ 14 In the Actions area, click Configure BIOS. ステップ 15 Configure BIOS Parameters dialog boxで、[Advanced] タブをクリックします。 ステップ 16 [Processor Configuration] 領域で、次のプロパティを [Enabled] に設定します。 ステップ 17 [Save Changes] をクリックします。 変更内容は次のサーバのリブート時に有効になります。
CIMC CLI を使用した Cisco usNIC の作成
手順
次の例は、Cisco usNIC プロパティの設定方法を示します。
Server # scope chassis server /chassis # show adapter server /chassis # scope adapter 2 server /chassis/adapter # scope host-eth-if eth0 server /chassis/adapter/host-eth-if # create usnic-config 0 server /chassis/adapter/host-eth-if/usnic-config *# set usnic-count 64 server /chassis/adapter/host-eth-if/usnic-config *# set cq-count 6 server /chassis/adapter/host-eth-if/usnic-config *# set rq-count 6 server /chassis/adapter/host-eth-if/usnic-config *# set tq-count 6 server /chassis/adapter/host-eth-if/usnic-config *# commit Committed settings will take effect upon the next server reset server /chassis/adapter/host-eth-if/usnic-config # exit server /chassis/adapter/host-eth-if # exit server /chassis/adapter # exit server /chassis # exit server # exit server# scope bios server /bios # scope advanced server /bios/advanced # set IntelVTD Enabled server /bios/advanced *# set ATS Enabled* server /bios/advanced *# set CoherencySupport Enabled server /bios/advanced *# commit Changes to BIOS set-up parameters will require a reboot. Do you want to reboot the system?[y|N]y A system reboot has been initiated.
CIMC CLI を使用した Cisco usNIC の値の変更
手順
コマンドまたはアクション 目的 ステップ 1 server# scope chassis シャーシ コマンド モードを開始します。
ステップ 2 server/chassis# scope adapter index index で指定した PCI スロット番号に装着されているアダプタ カードに対してコマンド モードを開始します。
(注) アダプタの設定を表示または変更する前に、サーバの電源がオンであることを確認します。サーバに設定されたアダプタのインデックスを表示するには、show adapter コマンドを使用します。
ステップ 3 server/chassis/adapter# scopehost-eth-if {eth0 | eth1} vNIC のコマンド モードを開始します。お客様の環境に設定された vNIC の数に基づいてイーサネット ID を指定します。たとえば、1 つの vNIC だけを設定した場合は、eth0 を指定します。
ステップ 4 server/chassis/adapter/host-eth-if# scopeusnic-config0 usNIC のコマンド モードを開始します。Cisco usNIC を設定する場合は、インデックス値を必ず 0 に設定してください。
ステップ 5 server/chassis/adapter/host-eth-if/usnic-config# set usnic-count number of usNICs. 作成する Cisco usNIC の数を指定します。サーバで実行されている各 MPI プロセスには、専用の Cisco usNIC が必要です。したがって、64 の MPI プロセスを同時に実行させるには、最大 64 の Cisco usNIC を作成する必要がある場合があります。Cisco usNIC 対応 vNIC ごとに、サーバの物理コアの数と同数の Cisco usNIC を最低限作成することを推奨します。たとえば、サーバに 8 つの物理コアがある場合は、8 つの usNIC を作成します。
ステップ 6 server /chassis/adapter/host-eth-if /usnic-config# commit トランザクションをシステムの設定にコミットします。
(注) 変更はサーバのリブート時に有効になります。
ステップ 7 server/chassis/adapter/host-eth-if/usnic-config# exit ホスト イーサネット インターフェイス コマンド モードを終了します。
ステップ 8 server/chassis/adapter/host-eth-if#exit アダプタ インターフェイス コマンド モードを終了します。
ステップ 9 server/chassis/adapter#exit シャーシ インターフェイス コマンド モードを終了します。
ステップ 10 server/chassis#exit サーバ インターフェイス コマンド モードを終了します。
次の例は、Cisco usNIC プロパティの設定方法を示します。
server # scope chassis server /chassis # show adapter server /chassis # scope adapter 2 server /chassis/adapter # scope host-eth-if eth0 server /chassis/adapter/host-eth-if # scope usnic-config 0 server /chassis/adapter/host-eth-if/usnic-config # set usnic-count 32 server /chassis/adapter/host-eth-if/usnic-config # commit Committed settings will take effect upon the next server reset server /chassis/adapter/host-eth-if/usnic-config # exit server /chassis/adapter/host-eth-if # exit server /chassis/adapter # exit server /chassis # exit server # exitvNIC からの Cisco usNIC の削除
手順
コマンドまたはアクション 目的 ステップ 1 server# scope chassis シャーシ コマンド モードを開始します。
ステップ 2 server/chassis# scope adapter index index で指定した PCI スロット番号に装着されているアダプタ カードに対してコマンド モードを開始します。
(注) アダプタの設定を表示または変更する前に、サーバの電源がオンであることを確認します。サーバに設定されたアダプタのインデックスを表示するには、show adapter コマンドを使用します。
ステップ 3 server/chassis/adapter# scopehost-eth-if {eth0 | eth1} vNIC のコマンド モードを開始します。お客様の環境に設定された vNIC の数に基づいてイーサネット ID を指定します。たとえば、1 つの vNIC だけを設定した場合は、eth0 を指定します。
ステップ 4 Server/chassis/adapter/host-eth-if# delete usnic-config 0 vNIC の Cisco usNIC 設定を削除します。
ステップ 5 Server/chassis/adapter/host-eth-if# commit トランザクションをシステムの設定にコミットします。
(注) 変更はサーバのリブート時に有効になります。
次に、vNIC の Cisco usNIC 設定を削除する例を示します。
server # scope chassis server/chassis # show adapter server/chassis # scope adapter 1 server/chassis/adapter # scope host-eth-if eth0 server/chassis/adapter/host-eth-if # delete usnic-config 0 server/chassis/host-eth-if/iscsi-boot *# commit New host-eth-if settings will take effect upon the next adapter reboot server/chassis/host-eth-if/usnic-config #Cisco usNIC 用の Linux ソフトウェア パッケージのインストール
ここでは、UCS Drivers ISO バンドルに含まれているサポート対象の Linux オペレーティング システム ディストリビューションごとに usNIC フォルダの内容を列挙します。既知の問題やインストール手順に関するドキュメントが usNIC フォルダ内の README ファイルにも含まれています。
kmod-usnic_verbs-{version}.x86_64.rpm:Cisco VIC SR-IOV イーサネット NIC の usNIC 機能用の Linux カーネル verbs ドライバ。
libdaplusnic_verbs-{version}.x86_64.rpm:usNIC 用のユーザ スペース ライブラリ DAPL プラグイン。
openmpi-cisco-{version}.x86 _64.rpm:Cisco usNIC Open MPI:Cisco usNIC BTL MPI トランスポートを使用した Open MPI。
usnic_tools-{version}.x86_64.rpm :usNIC 用のユーティリティ プログラム。
libfabric-cisco-{version}.x86_64.rpm:組み込みの Cisco usNIC トランスポートを備えた Libfabric パッケージ。
libusnic_verbs-{version}.x86_64.rpm:libibverbs ライブラリに Cisco usNIC Linux デバイスをスキップさせるダミー ライブラリ(Cisco usNIC 機能は libibverbs ではなく、libfabric を介して公開されるため)。
はじめる前に手順CIMC で Cisco usNIC のプロパティが設定されていることを確認してください。プロパティの設定方法の詳細については、「Cisco usNIC の設定」を参照してください。
また、 Cisco usNIC をインストールするホスト OS ディストリビューションに、サポート対象のバージョンの Cisco enic ドライバがインストールされていることを確認する必要があります。Cisco enic ドライバは Cisco VIC SR-IOV イーサネット NIC 用の Linux カーネル ネットワーキング ドライバです。
ステップ 1 Linux ディストリビューション用の Cisco UCS ISO に含まれている enic ドライバの最新バージョンにアップグレードします。 ステップ 2 Linux ディストリビューション用の Cisco UCS Drivers ISO から Cisco usNIC ソフトウェア パッケージをインストールします。 ステップ 3 # chkconfig rdma on
Linux RDMA サービスを有効にします。有効にしたら、システムのリブート後に RDMA サービスが自動的に開始されます。
(注) RHEL 6.4 などの一部の Linux オペレーティング システム ディストリビューションでこの手順を実行しなければならない場合があります。
ステップ 4 サーバをリブートすると、インストールの変更が自動的に反映されます。 重要:サーバをリブートしない場合は、手動でカーネル モジュールをロードし、システムによって正しいバージョンのドライバがロードされ、新しいメモリ ロック設定が適用されることを確認できます。モジュールのロード方法の詳細については、「Cisco usNIC 用のカーネル モジュールの手動のロード」を参照してください。
Cisco usNIC 用のカーネル モジュールの手動のロード
手順
コマンドまたはアクション 目的 ステップ 1 # rmmod enic
既存の enic ドライバ モジュールをアンロードします。
(注) たとえば、ネットワークを使用して SSH 経由で OS にログインしていないことを確認します。そうしない場合、ネットワーク接続が完全に切断されている状態になる可能性があります。または、KVM を使用してサーバにログインして、この手順を実行することもできます。
ステップ 2 # modprobe enic
enic ドライバ モジュールをロードします。
ステップ 3 # modprobe usnic_verbs
usnic_verbs ドライバ モジュールをロードします。
ユーザ環境への MPI の追加
MPI アプリケーションをコンパイルして起動するには、MPI 実装を各ユーザの環境に追加する必要があります。MPI 実装は一度に 1 つずつユーザの環境に追加することをお勧めします。
Cisco Open MPI の環境
Cisco Open MPI では、openmpi-cisco ソフトウェア パッケージが必要な環境変数の設定を支援するために 2 つのスクリプトをインストールします。1 つのスクリプトは Bourne シェル ユーザ用で、もう 1 つのスクリプトは C シェル ユーザ用です。
/opt/cisco/openmpi-vars.sh(Bourne シェルおよび Bourne Again シェルユーザ用)
/opt/cisco/openmpi-vars.csh(C シェル ユーザ用)
ユーザのシェル起動/ログイン シーケンス(非対話式シェルの場合)の一部として適切なスクリプトを調達する必要があります。
Intel ® MPI ライブラリの環境
Intel ® MPI ライブラリのドキュメントに記載されている手順に加えて、各ユーザの環境で追加の環境変数を設定して Cisco usNIC 機能を有効にする必要があります。必要な環境変数を設定するための 2 つのスクリプトが libdaplusnic ソフトウェア パッケージを通してインストールされます。1 つのスクリプトは Bourne シェル ユーザ用で、もう 1 つのスクリプトは C シェル ユーザ用です。
/opt/cisco/intelmpi-usnic-vars.sh(Bourne シェルおよび Bourne Again シェルユーザ用)
/opt/cisco/intelmpi-usnic-vars.csh(C シェル ユーザ用)
ユーザのシェル起動/ログイン シーケンスの一部として適切なスクリプトを調達する必要があります。
Intel ® MPI ライブラリと usNIC を使用するには、ネットワーク上のフロー制御を有効に設定する必要があります。これは、IEEE 802.3x リンク レベル フロー制御と IEEE 802.1Qbb 優先順位ベース フロー制御(PFC)のどちらかにすることができます。この機能は、「no-drop」と呼ばれることもあります。フロー制御の有効化方法については、ネットワーク上のスイッチのコンフィギュレーション ガイドを参照してください。フロー制御がネットワーク上で有効になっていない場合は、Intel® MPI ライブラリを使用するアプリケーションが正常に機能しますが、パフォーマンスが大幅に低下する可能性があります。
Intel ® MPI ライブラリの開発では、MPI トラフィックはすべての Cisco usNIC ポートおよび Cisco UCS Manager のデフォルトの CoS 値 5 を持つ no-drop または platinum QoS システム クラスでフロー制御が有効になっている必要があります。『Cisco UCS Manager Network Management Guide』の「Quality of Service」を参照してください。
Cisco UCS C シリーズ ラックマウント スタンドアロン サーバ用の Cisco usNIC のインストールの確認
手順Cisco usNIC に必要な Linux ドライバをインストールした後、Linux プロンプトで次の手順を実行して、インストールが正常に完了したことを確認してください。
(注)
次に、Linux オペレーティング システム ディストリビューション RHEL 6.5 上で確認された設定例を示します。
ステップ 1 usnic_verbs カーネル モジュールが OS ドライバのインストール中にロードされたかどうかを検索して確認します。 $ lsmod | grep usnic_verbslsmod | grep usnic_verbs コマンドを入力すると、次の詳細が表示されます。コンソールに一覧表示されているカーネル モジュールは、OS に現在ロードされているモジュールに基づいて異なる場合があります。
重要:usnic_verbs が出力に表示され、このカーネル モジュールがカーネル内にロードされ、アクティブになっていることが示されます。
usnic_verbs 73762 2 ib_core 74355 11 ib_ipoib,rdma_ucm,ib_ucm,ib_uverbs,ib_umad,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad,usnic_verbs enic 73723 1 usnic_verbsステップ 2 Cisco usNIC 対応 NIC の設定を確認してください。 $ /opt/cisco/usnic/bin/usd_devinfo次のセクションは、usd_devinfo コマンドを実行すると表示される結果の簡単な例です。結果は、現在のインストール環境によって異なる場合があります。結果がコンソールに表示されたら、一覧表示されたポートのそれぞれの状態が PORT_ACTIVE と表示されていることを確認します。
次に、Cisco UCS VIC アダプタ上で設定された 2 つのポート( usnic_1 と usnic_0)の例を示します。1 つの Cisco usNIC 対応 vNIC だけを設定した場合は、 usnic_0 のみのリストが表示されます。usnic_0: Interface: eth11 MAC Address: 04:62:73:c5:3a:a6 IP Address: 20.20.20.2 Netmask: 255.255.255.0 Prefix len: 24 MTU: 9000 Link State: UP Bandwidth: 40 Gb/s Device ID: UCSC-MLOM-C40Q-03 [VIC 1387] [0x015d] Firmware: 4.1(0.262) VFs: 64 CQ per VF: 6 QP per VF: 6 Interrupts per VF: 4 Max CQ: 384 Max CQ Entries: 65535 Max QP: 384 Max Send Credits: 4095 Max Recv Credits: 4095 Capabilities: CQ sharing: yes PIO Sends: yes CQ interrupts: yes usnic_1: Interface: eth10 MAC Address: 04:62:73:c5:3a:a7 IP Address: 10.10.10.2 Netmask: 255.255.255.0 Prefix len: 24 MTU: 9000 Link State: UP Bandwidth: 40 Gb/s Device ID: UCSC-MLOM-C40Q-03 [VIC 1387] [0x015d] Firmware: 4.1(0.262) VFs: 64 CQ per VF: 6 QP per VF: 6 Interrupts per VF: 4 Max CQ: 384 Max CQ Entries: 65535 Max QP: 384 Max Send Credits: 4095 Max Recv Credits: 4095 Capabilities: CQ sharing: yes PIO Sends: yes CQ interrupts: yesステップ 3 インストールされている RPM とそのバージョンを確認するには、usnic_check スクリプトを実行します。 $ /opt/cisco/usnic/bin/usnic_checkエラーが OS ドライバのインストール中に発生している場合、警告が生成されます。
usnic_verbs モジュールのロードで失敗した場合は、次の簡単な例が生成された警告を示します。
$ /opt/cisco/usnic/bin/usnic_check enic RPM version 2.3.0.18 installed usnic_verbs RPM version 1.0.4.416.rhel6u5 installed WARNING: usnic_verbs module not loaded libdaplusnic RPM version 2.0.39cisco1.0.0.401 installed libfabric RPM version 1.1.1cisco1.0.0.410.rhel6u5 installed libusnic_verbs RPM version 2.0.0.406.rhel6u5 installed Using /opt/cisco/openmpi/bin/ompi_info to check Open MPI info... Open MPI version 1.10.1cisco1.0.0.410.rhel6u5 installed WARNING: No usnic devices found WARNING: No usnic devices found 3 warningsステップ 4 Cisco usNIC ネットワーク パケットがクライアントとサーバ ホスト間で正常に送信されていることを確認します。
次に、 usd_pingpong プログラムを実行すると表示される結果の例を示します。Server-side: /opt/cisco/usnic/bin/usd_pingpong -d usnic_0 open usnic_0 OK, IP=10.10.10.14 QP create OK, addr -h 10.10.10.14 -p 3333 Waiting for setup... Client-side /opt/cisco/usnic/bin/usd_pingpong -d usnic_0 -h 10.10.10.14 open usnic_0 OK, IP=10.10.10.24 QP create OK, addr -h 10.10.10.24 -p 3333 sending params... payload_size=4, pkt_size=46 posted 63 RX buffers, size=64 (4) 100000 pkts, 4.137 us / HRTステップ 5 ring_c テスト プログラムをダウンロード、コンパイル、および実行して、MPI トラフィックがクライアントとサーバのホスト間で正しく送信されていることを検証します。 ring_c テスト プログラムは、https://raw.githubusercontent.com/open-mpi/ompi-release/v1.8/examples/ring_c.c のリンクから取得できます。
次の例は、 wget ユーティリティを使用して ring_c を取得、コンパイル、および実行する方法を示します。また、テスト プログラムの取得および実行のその他の方法を使用できます。
(注) 環境内の単一の MPI 実装セットアップを使用して次のコマンドを実行します。
$ wget --no-check-certificate https://raw.githubusercontent.com/open-mpi/ompi-release/v1.8/examples/ring_c.c --2015-04-23 10:11:42-- https://raw.githubusercontent.com/open-mpi/ompi-release/v1.8/examples/ring_c.c Resolving raw.githubusercontent.com... 199.27.74.133 Connecting to raw.githubusercontent.com|199.27.74.133|:443... connected. WARNING: certificate common name \u201cwww.github.com\u201d doesn\u2019t match requested host name \u201craw.githubusercontent.com\u201d. HTTP request sent, awaiting response... 200 OK Length: 2418 (2.4K) [text/plain] $ mpicc ring_c.c -o ring_c [no output] $ mpiexec --host host1,host2 -n 4 ./ring_c Process 0 sending 10 to 1, tag 201 (4 processes in ring) Process 0 sent to 1 Process 0 decremented value: 9 Process 0 decremented value: 8 Process 0 decremented value: 7 Process 0 decremented value: 6 Process 0 decremented value: 5 Process 0 decremented value: 4 Process 0 decremented value: 3 Process 0 decremented value: 2 Process 0 decremented value: 1 Process 0 decremented value: 0 Process 0 exiting Process 2 exiting Process 1 exiting Process 3 exiting ...
(注) 必要に応じて、環境内に別の MPI 実装をセットアップして、mpicc コマンドと mpirun コマンドを再実行し、Cisco usNIC 機能でその MPI 実装を確認します。
usd_pingpong プログラムと ring_c プログラムが正常に実行した場合は、Cisco usNIC 上で MPI アプリケーションを実行できるはずです。
トラブルシューティング情報
問題
usnic_pingpong を使用して Cisco usNIC パケットがクライアントとサーバ間で正しく送信されていることを確認すると、次のエラーが発生します。
「No such address or device」エラー次の例を参照してください。
# /opt/cisco/usnic/bin/usd_pingpong usd_open: No such device or address サーバが「Waiting for setup…」の段階で停止しています。次の例を参照してください。# /opt/cisco/usnic/bin/usd_pingpong –d usnic_0 open usnic_0 OK, IP=10.43.10.1 QP create OK, addr -h 10.43.10.1 -p 3333 Waiting for setup...問題
mpirun を使用して Cisco usNIC トラフィックを処理すると、次のエラーが発生します。
MTU サイズ ミスマッチ エラー次の例を参照してください。Example: $ mpirun --host node05,node06 -np 12 --mca btl usnic,sm,self --mca btl_usnic_if_include usnic_1 IMB-MPI1 Sendrecv The MTU does not match on local and remote hosts. All interfaces on all hosts participating in an MPI job must be configured with the same MTU. The usNIC interface listed below will not be used to communicate with this remote host. Local host: node05 usNIC interface: usnic_1 Local MTU: 8958 Remote host: node06 Remote MTU: 1458問題
Cisco enic ドライバをインストールすると、次の Cisco enic 依存性エラーが発生します。# rpm -ivh kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64.rpm error: Failed dependencies: ksym(enic_api_devcmd_proxy_by_index) = 0x107cb661 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_alloc_discover) = 0xfb7e4707 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_pdev) = 0xae6ae5c9 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_res) = 0xd910c86b is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_res_bar) = 0x31710a7e is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_res_bus_addr) = 0x7be7a062 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_res_count) = 0x759e4b07 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_get_res_type_len) = 0xd122f0a1 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 ksym(vnic_dev_unregister) = 0xd99602a1 is needed by kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64 #問題
Intel IOMMU から次の警告が表示されます。# rpm -ivh kmod-usnic_verbs-1.0.4.318.rhel6u5-1.x86_64.rpm Preparing... ########################################### [100%] 1:kmod-usnic_verbs ########################################### [100%] WARNING - Intel IOMMU does not appear to be enabled - please add kernel parameter intel_iommu=on to your boot configuration for USNIC driver to function. #問題
DAT ユーザ ライブラリをインストールすると、次の障害が発生した依存関係エラーが生じます。
# rpm -ivh libdaplusnic-2.0.39cisco1.0.0.317-1.el6.x86_64.rpm error: Failed dependencies: dapl is needed by libdaplusnic-2.0.39cisco1.0.0.317-1.el6.x86_64 #問題
openmpi-cisco パッケージをインストールすると、以下に示す依存関係エラーが生じます。# rpm -ivh openmpi-cisco-1.10.1cisco1.0.0.424.rhel7u1-1.x86_64.rpm error: Failed dependencies: libfabric-cisco is needed by openmpi-cisco-1.10.1cisco1.0.0.424.rhel7u1-1.x86_64 libfabric.so.1()(64bit) is needed by openmpi-cisco-1.10.1cisco1.0.0.424.rhel7u1-1.x86_64 libfabric.so.1(FABRIC_1.0)(64bit) is needed by openmpi-cisco-1.10.1cisco1.0.0.424.rhel7u1-1.x86_64問題
libfabric-cisco パッケージを削除すると、次の障害が発生した依存関係エラーが生じます。
# rpm -e libfabric-cisco-1.1.0cisco1.0.0.385.rhel7u1-1.el7.x86_64 error: Failed dependencies: libfabric-cisco is needed by (installed) openmpi-cisco-1.10.0cisco1.0.0.385.rhel7u1-1.x86_64 libfabric.so.1()(64bit) is needed by (installed) openmpi-cisco-1.10.0cisco1.0.0.385.rhel7u1-1.x86_64 libfabric.so.1(FABRIC_1.0)(64bit) is needed by (installed) openmpi-cisco-1.10.0cisco1.0.0.385.rhel7u1-1.x86_64Copyright © 2016, Cisco Systems, Inc. All rights reserved.