データ処理システムにおいて、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティを提供する方法であって、前記データ処理システム内のデバイスドライバによって、メモリ内に初期キューペアを割り当てるステップと、前記デバイスドライバによって、前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断するステップと、前記ワークロードが前記所定の高閾値より高くなることに応じて、前記デバイスドライバによって、前記メモリ内に追加のキューペアを割り当て、初期化するステップと、前記追加のキューペアに関連する追加の処理エンジンの動的挿入を可能にするために、前記デバイスドライバによって、ネットワークアダプタ内の受信側スケーリングRSSメカニズムをプログラムするステップと、前記デバイスドライバによって、前記追加のキューペアへの送信タプルハッシングを有効化するステップと、を含む方法。前記割り当ておよび初期化、プログラム、ならびに有効化ステップを、前記デバイスドライバによって、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すステップをさらに含む、請求項1に記載の方法。前記追加のキューペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワークアダプタ内の前記受信側スケーリングRSSメカニズムをプログラムするステップは、前記デバイスドライバによって、前記初期キューペアへの送信タプルハッシングを有効化するステップを含む、請求項1に記載の方法。前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するステップは、前記デバイスドライバによって、データフローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することによって実行される、請求項1に記載の方法。前記デバイスドライバは、前記ワークロードに関連する少なくとも1つのパラメータを監視し、前記少なくとも1つのパラメータは、送信/受信バイトパーセカンド、前記ネットワークアダプタによって送信および受信されているフロー制御フレームの数、前記ネットワークアダプタによって検出されるDMAオーバーランの数、前記デバイスドライバによって検出される送信タイムアウトイベントの数、割り込み毎に前記デバイスドライバによって処理される受信パケットの数、またはソフトウェアキュー上の送信パケットの数のうちの少なくとも1つである、請求項4に記載の方法。前記デバイスドライバによって、前記ワークロードが所定の低閾値を下回ったかどうかを判断するステップと、前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキューペアが残り1つのみあるかどうかを、前記デバイスドライバによって判断するステップと、前記メモリ内に割り当てられているキューペアが2つ以上残っていることに応じて、割り当てられているキューペアの削除を可能にするために、前記デバイスドライバによって前記ネットワークアダプタ内の前記RSSメカニズムを再プログラムするステップと、特定されたキューペアへの送信タプルハッシングを、前記デバイスドライバによって無効化するステップと、前記特定されたキューペアへの前記ワークロードが休止したかどうかを、前記デバイスドライバによって判断するステップと、前記特定されたキューペアへの前記ワークロードが休止することに応じて、前記特定されたキューペアを前記デバイスドライバによってメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放するステップと、をさらに含む、請求項1に記載の方法。前記特定されたキューペアをメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放するステップより前に、前記特定されたキューペアへの前記ワークロードが休止するのを、前記特定されたキューペアへの前記ワークロードが休止しないことに応じて、前記デバイスドライバによって待つステップをさらに含む、請求項6に記載の方法。コンピュータ可読プログラムが記憶されているコンピュータ可読ストレージ媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読プログラムは、コンピューティングデバイス上で実行されると、前記コンピューティングデバイスに、メモリ内に初期キューペアを割り当てること、前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断すること、前記ワークロードが前記所定の高閾値より高くなることに応じて、前記メモリ内に追加のキューペアを割り当て、初期化すること、前記追加のキューペアに関連する追加の処理エンジンの動的挿入を可能にするために、ネットワークアダプタ内の受信側スケーリングRSSメカニズムをプログラムすること、および前記追加のキューペアへの送信タプルハッシングを有効化することを行わせる、コンピュータプログラム製品。前記コンピュータ可読プログラムは、前記コンピューティングデバイスに、割り当ておよび初期化、プログラム、ならびに有効化のための前記コンピュータ可読プログラムを、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すことをさらに行わせる、請求項8に記載のコンピュータプログラム製品。前記追加のキューペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワークアダプタ内の前記受信側スケーリングRSSメカニズムをプログラムするための前記コンピュータ可読プログラムは、前記コンピューティングデバイスに、前記初期キューペアへの送信タプルハッシングを有効化することをさらに行わせる、請求項8に記載のコンピュータプログラム製品。前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するための前記コンピュータ可読プログラムは、データフローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することを、前記コンピューティングデバイスにさらに行わせるコンピュータ可読プログラムによって実行される、請求項8に記載のコンピュータプログラム製品。前記コンピュータ可読プログラムは、前記ワークロードに関連する少なくとも1つのパラメータを監視することを、前記コンピューティングデバイスにさらに行わせ、前記少なくとも1つのパラメータは、送信/受信バイトパーセカンド、前記ネットワークアダプタによって送信および受信されているフロー制御フレームの数、前記ネットワークアダプタによって検出されるDMAオーバーランの数、前記デバイスドライバによって検出される送信タイムアウトイベントの数、割り込み毎に前記デバイスドライバによって処理される受信パケットの数、またはソフトウェアキュー上の送信パケットの数のうちの少なくとも1つである、請求項11に記載のコンピュータプログラム製品。前記コンピュータ可読プログラムは、前記コンピューティングデバイスに、前記ワークロードが所定の低閾値を下回ったかどうかを判断すること、前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキューペアが残り1つのみあるかどうかを判断すること、前記メモリ内に割り当てられているキューペアが2つ以上残っていることに応じて、割り当てられているキューペアの削除を可能にするために前記ネットワークアダプタ内の前記RSSメカニズムを再プログラムすること、特定されたキューペアへの送信タプルハッシングを無効化すること、前記特定されたキューペアへの前記ワークロードが休止したかどうかを判断すること、および、前記特定されたキューペアへの前記ワークロードが休止することに応じて、前記特定されたキューペアをメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放することをさらに行わせる、請求項8に記載のコンピュータプログラム製品。前記コンピュータ可読プログラムは、前記コンピューティングデバイスに、前記特定されたキューペアをメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放することより前に、前記特定されたキューペアへの前記ワークロードが休止するのを、前記特定されたキューペアへの前記ワークロードが休止しないことに応じて待つことをさらに行わせる、請求項13に記載のコンピュータプログラム製品。プロセッサと、前記プロセッサに結合されたメモリと、を含む装置であって、前記メモリは、命令を含み、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、メモリ内に初期キューペアを割り当てること、前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断すること、前記ワークロードが前記所定の高閾値より高くなることに応じて、前記メモリ内に追加のキューペアを割り当て、初期化すること、前記追加のキューペアに関連する追加の処理エンジンの動的挿入を可能にするために、ネットワークアダプタ内の受信側スケーリングRSSメカニズムをプログラムすること、および前記追加のキューペアへの送信タプルハッシングを有効化することを行わせる、装置。前記命令は、前記プロセッサに、割り当ておよび初期化、プログラム、ならびに有効化のための前記コンピュータ可読プログラムを、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すことをさらに行わせる、請求項15に記載の装置。前記追加のキューペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワークアダプタ内の前記受信側スケーリングRSSメカニズムをプログラムするための前記命令は、前記プロセッサに、前記初期キューペアへの送信タプルハッシングを有効化することをさらに行わせる、請求項15に記載の装置。前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するための前記命令は、データフローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することを前記プロセッサにさらに行わせる命令によって実行される、請求項15に記載の装置。前記命令は、前記ワークロードに関連する少なくとも1つのパラメータを監視することを前記プロセッサにさらに行わせ、前記少なくとも1つのパラメータは、送信/受信バイトパーセカンド、前記ネットワークアダプタによって送信および受信されているフロー制御フレームの数、前記ネットワークアダプタによって検出されるDMAオーバーランの数、前記デバイスドライバによって検出される送信タイムアウトイベントの数、割り込み毎に前記デバイスドライバによって処理される受信パケットの数、またはソフトウェアキュー上の送信パケットの数のうちの少なくとも1つである、請求項18に記載の装置。前記命令は、前記プロセッサに、前記ワークロードが所定の低閾値を下回ったかどうかを判断すること、前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキューペアが残り1つのみあるかどうかを判断すること、前記メモリ内に割り当てられているキューペアが2つ以上残っていることに応じて、割り当てられているキューペアの削除を可能にするために前記ネットワークアダプタ内の前記RSSメカニズムを再プログラムすること、特定されたキューペアへの送信タプルハッシングを無効化すること、前記特定されたキューペアへの前記ワークロードが休止したかどうかを判断すること、および、前記特定されたキューペアへの前記ワークロードが休止することに応じて、前記特定されたキューペアをメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放することをさらに行わせる、請求項15に記載の装置。前記命令は、前記プロセッサに、前記特定されたキューペアをメモリから除去し、その結果、前記特定されたキューペアによって使用されたメモリを解放することより前に、前記特定されたキューペアへの前記ワークロードが休止するのを、前記特定されたキューペアへの前記ワークロードが休止しないことに応じて待つことをさらに行わせる、請求項20に記載の装置。従来のドライバモデルのもとでは、デバイスドライバは、アダプタがその理論上最大限のパフォーマンスを実現できるであろう量に送信/受信リソースの割り当てを行う。しかし、最大パフォーマンス限界が必要とされないようなワークロードworkloadまたはネットワークトラフィックであれば、ドライバは必要以上に多くのリソースを消費していることになり、これはシステムリソースの無駄である。さらに、このモデルには、変化するワークロードに効率的に対処する能力がない。一例示実施形態では、データ処理システムにおいて、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティを提供する方法が提供される。例示実施形態は、メモリ内に初期キューペアinitialqueuepairを割り当てる。例示実施形態は、データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断する。例示実施形態は、ワークロードが所定の高閾値より高くなることに応じて、メモリ内に追加のキューペアを割り当て、初期化する。例示実施形態は、追加のキューペアに関連する追加の処理エンジンprocessingengineの動的挿入dynamicinsertionを可能にするために、ネットワークアダプタ内の受信側スケーリングRSS:receivesidescalingメカニズムをプログラムする。例示実施形態は、追加のキューペアへの送信タプルハッシングtransmittuplehashingを有効化する。別の例示実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータプログラム製品が提供される。コンピュータ可読プログラムは、コンピューティングデバイス上で実行されると、方法の例示実施形態に関して上記に要点を記載した動作のうちの様々な動作、およびその組み合わせを、コンピューティングデバイスに実行させる。さらに別の例示実施形態では、システム/装置が提供される。システム/装置は、1つ以上のプロセッサと、該1つ以上のプロセッサに結合されたメモリとを含むとよい。メモリは、該1つ以上のプロセッサにより実行されると、方法の例示実施形態に関して上記に要点を記載した動作のうちの様々な動作、およびその組み合わせを該1つ以上のプロセッサに実行させる、命令を含む。本発明のこれらの特徴および利点、ならびにその他の特徴および利点が、以下の本発明の例示の実施形態の詳細な説明に記載されるか、またはそれを考慮することで当業者には明らかとなる。例示実施形態の以下の詳細な説明を添付の図面と併せて読み、参照することで、本発明、ならびにその好適な使用方法、ならびにさらなる目的および利点が、最も深く理解される。例示実施形態は、基礎をなすハードウェアの動的再構成によって、アクティブメモリシェアリングAMS:activememorysharingおよび中央処理ユニットCPU:centralprocessingunit利用のためのリソースアフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。現代のアダプタは、最大限のパフォーマンスのために複数のパケットキューペアQP:queuepairを提供することもある。こうしたアダプタは、インターフェイス毎に複数の送信/受信キューQPを使用することによって、並列ネットワークデータ処理を実行できることもあり、これは、高トランザクションワークロード、および小さなパケットサイズでより高速な回線速度を実現するためには必須の機能である。イングレス、すなわち受信トラフィックは、アダプタにより、オペレーティングシステム処理のために、適切なQPおよび関連する割り込みにハッシュされるタプルとされ得る。イーグレス、すなわち送信トラフィックは、アダプタに配信するためにオペレーティングシステムOS:operatingsystemドライバによってハッシュされるタプルとされ得る。アダプタおよびOSドライバは、典型的には、最大限のパフォーマンスを実現するために、十分なディスクリプタおよびバッファとともに複数のQP、通常はアダプタ毎に約250MBの平均メモリフットプリントに対し2~4つのQPを割り当てる。各QPが、関連する受信割り込みを有することもあるため、複数のQPが使用されていて、トラフィックが少ないと、単一のQPで容易に対処可能であるのに、増加した割り込み送出が原因で追加のCPU利用オーバーヘッドが存在することになる。複数のQPは、多くの通常の使用事例に関するパフォーマンスには負の影響を有するということ、しかし特定の高ストレス高トランザクションワークロードに関しては、理論上最大限のパフォーマンスを実現するために必須であるということが、既知のアダプタの分析により指摘されているため、この問題に対するパフォーマンスチームの関心は次第に高まっている。したがって、例示実施形態は、分散型データ処理環境、単一データ処理デバイス、または同様のものを含む、多数の異なるタイプのデータ処理環境において利用され得る。例示実施形態の具体的な構成要素および機能性を説明するための背景を提供するために、以下、図1~3が、例示実施形態の各側面が実装されるとよい例示の環境として提供される。図1~3に続く説明は、主として、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティを提供するメカニズムの単一データ処理デバイス実装に焦点を当てるが、これは例でしかなく、本発明の特徴に関していかなる制限を記載することも、示唆することも目的としていない。反対に、例示実施形態は、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティが提供されるとよい分散型データ処理の環境および実施形態を含むものとする。以下、図面、特に図1~3を参照する。本発明の例示実施形態が実装され得るデータ処理環境の例示の図が提供されている。当然のことながら、図1~3は例でしかなく、本発明の側面または実施形態が実装され得る環境に関していかなる制限を主張することも、示唆することも目的としていない。示される環境に対して多数の変更が、本発明の意図および範囲から逸脱することなく加えられ得る。以下、図面を参照する。図1は、例示実施形態の各側面が実装され得る例示の分散型データ処理システムの図的表現を示す。分散型データ処理システム100は、例示実施形態の各側面が実装され得るコンピュータのネットワークを含むとよい。分散型データ処理システム100は、少なくとも1つのネットワーク102を含み、ネットワーク102は、分散型データ処理システム100内で互いに接続された様々なデバイスとコンピュータとの通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線通信リンク、または光ファイバケーブルなどの接続を含み得る。示されている例では、サーバ104およびサーバ106が、ストレージユニット108とともに、ネットワーク102に接続されている。さらに、クライアント110、112、および114もネットワーク102に接続されている。これらのクライアント110、112、および114は、例えばパーソナルコンピュータ、ネットワークコンピュータ、または同様のものであるとよい。示されている例では、サーバ104が、ブートファイル、オペレーティングシステムイメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、示されている例では、サーバ104のクライアントである。分散型データ処理システム100は、示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでもよい。示されている例では、分散型データ処理システム100は、インターネットであり、ネットワーク102は、互いに通信するために伝送制御プロトコル/インターネットプロトコルTCP/IP:TransmissionControlProtocol/InternetProtocolプロトコルスイートを使用する、ネットワークおよびゲートウェイの世界的規模の集合を表現している。インターネットの中心には、データおよびメッセージをルーティングする数千の商用、政府機関用、教育用、およびその他のコンピュータシステムから成る主要ノードまたはホストコンピュータ間の高速データ通信回線のバックボーンがある。当然、分散型データ処理システム100は、例えばイントラネット、ローカルエリアネットワークLAN:localareanetwork、広域ネットワークWAN:wideareanetwork、または同様のものなど、いくつかの異なるタイプのネットワークを含むようにも実装され得る。上記のように、図1は、本発明の種々の実施形態のアーキテクチャ上の制限としてではなく、例として意図されており、したがって、図1に示されている特定の構成要素は、本発明の例示実施形態が実装され得る環境に関する制限的なものと見なされてはならない。例示実施形態では、コンピュータアーキテクチャは、ハードウェアおよびソフトウェアの組み合わせとして実装される。コンピュータアーキテクチャのソフトウェア部分は、マイクロコードまたはミリコードと呼ばれることもある。ハードウェアおよびソフトウェアの組み合わせは、命令セットおよびシステムアーキテクチャを作成し、これに基づき、基本入出力システムBIOS:BasicInput/OutputSystem、仮想マシンモニタVMM:VirtualMachineMonitors、ハイパーバイザ、アプリケーションなどのコンピュータのソフトウェアの残りが動作する。初期の組み合わせによって作成されるコンピュータアーキテクチャは、ごく少数しかないと考えられる定義済みインターフェイスを介する場合を除き、コンピュータソフトウェアBIOSなどに対し不変である。以下、図2を参照する。例示実施形態の側面がともに有利に利用され得るデータ処理システムのブロック図が示されている。図のように、データ処理システム200は、プロセッサユニット211a~211nを含む。プロセッサユニット211a~211nはそれぞれ、プロセッサおよびキャッシュメモリを含む。例えば、プロセッサユニット211aは、プロセッサ212aおよびキャッシュメモリ213aを含み、プロセッサユニット211nは、プロセッサ212nおよびキャッシュメモリ213nを含む。プロセッサユニット211a~211nは、メインバス215に接続されている。メインバス215は、プロセッサユニット211a~211nおよびメモリカード223を含むシステムプレーナ220をサポートしている。システムプレーナ220はさらに、データスイッチ221およびメモリコントローラ/キャッシュ222を含む。メモリコントローラ/キャッシュ222は、複数のデュアルインラインメモリモジュールDIMM:dualin-linememorymoduleを有するローカルメモリ216を含むメモリカード223をサポートしている。データスイッチ221は、ネイティブI/ONIO:nativeI/Oプレーナ224内に位置するバスブリッジ217およびバスブリッジ218と接続している。図のように、バスブリッジ218は、システムバス219を経由して、ペリフェラルコンポーネントインターコネクトPCI:peripheralcomponentsinterconnectブリッジ225および226と接続している。PCIブリッジ225は、PCIバス228を経由して様々なI/Oデバイスと接続している。図のように、ハードディスク236が、小型コンピュータシステムインターフェイスSCSI:smallcomputersysteminterfaceホストアダプタ230を経由してPCIバス228に接続されているとよい。グラフィックスアダプタ231が、直接的または間接的にPCIバス228に接続されているとよい。PCIブリッジ226は、PCIバス227を経由して、ネットワークアダプタ234およびアダプタカードスロット235a~235nを介して外部データストリームに対する接続を提供する。業界標準アーキテクチャISA:Industrystandardarchitectureバス229が、ISAブリッジ232を経由してPCIバス228と接続している。ISAブリッジ232は、シリアル接続シリアル1およびシリアル2を有するNIOコントローラ233を介して相互接続機能を提供する。データ処理システム200が対応する入力デバイスを経由してユーザからのデータ入力を受け取ることを可能にするために、フレキシブルディスクドライブ接続、キーボード接続、およびマウス接続が、NIOコントローラ233によって提供されている。さらに、ISAバス229に接続されている不揮発性RAMNVRAM:non-volatilerandom-accessmemory240は、電力供給問題などのシステム障害またはシステム故障から特定のタイプのデータを保護する不揮発性メモリを提供する。システムファームウェア241もISAバス229に接続されており、初期基本入出力システムBIOS機能を実装する。サービスプロセッサ244が、ISAバス229に接続しており、システム診断またはシステムサービスの機能性を提供する。オペレーティングシステムOSは、ハードディスク236に記憶され、ハードディスク236はさらに、データ処理システムによって実行されるさらなるアプリケーションソフトウェアのストレージを提供するとよい。NVRAM240は、フィールド交換可能ユニットFRU:fieldreplaceableunitの分離のために、システム変数およびエラー情報を記憶するよう使用される。システム起動中、ブートストラッププログラムが、オペレーティングシステムをロードし、オペレーティングシステムの実行を開始する。オペレーティングシステムをロードするために、ブートストラッププログラムはまず、オペレーティングシステムカーネルイメージをハードディスク236上に置き、OSカーネルイメージをメモリ内にロードし、オペレーティングシステムカーネルによって提供される先頭アドレスにジャンプする。典型的には、オペレーティングシステムは、データ処理システム内のランダムアクセスメモリRAM:random-accessmemory内にロードされる。ロードおよび初期化が行われると、オペレーティングシステムは、プログラムの実行を制御し、リソース割り当て、スケジューリング、入出力制御、およびデータ管理などのサービスを提供するとよい。例示実施形態は、いくつかの異なるハードウェア構成、ならびにブートストラッププログラムおよびオペレーティングシステムなどのソフトウェアを利用する、様々なデータ処理システムにおいて具現化され得る。データ処理システム200は、例えば、スタンドアロンシステム、またはローカルエリアネットワークLANもしくは広域ネットワークWANなどのネットワークの一部としてもよい。上記のように、図2は、本発明の種々の実施形態のアーキテクチャ上の制限としてではなく、例として意図されており、したがって、図2に示されている特定の構成要素は、本発明の例示実施形態が実装され得る環境に関する制限的なものと見なされてはならない。以下、図3を参照する。例示実施形態が実装され得る、例示的な論理分割されたプラットフォームのブロック図が示されている。論理分割されたプラットフォーム300内のハードウェアは、例えば、図2のデータ処理システム200のハードウェアを使用して実装されてもよい。論理分割されたプラットフォーム300は、分割されたハードウェア330、オペレーティングシステム302、304、306、308、および仮想マシンモニタ310を含む。オペレーティングシステム302、304、306、および308は、単一のオペレーティングシステムの複数のコピーであってもよく、または論理分割されたプラットフォーム300上で同時に実行する複数の異種オペレーティングシステムであってもよい。これらのオペレーティングシステムは、例えば、ハイパーバイザなどのパーティション管理ファームウェアなど、仮想化メカニズムとインターフェイスをとるよう設計されている、z/OSIBM社の登録商標を使用して実装されてもよい。z/OSは、これらの例示実施形態において単なる例として使用されている。当然、特定の実装に応じて、OS/400IBM社の登録商標、AIXR、およびLinuxRなど、他のタイプのオペレーティングシステムが使用されてもよい。オペレーティングシステム302、304、306、および308は、それぞれ論理パーティション303、305、307、および309に位置する。ハイパーバイザソフトウェアは、プラットフォームの実装に使用され得るソフトウェアの例でありこの例では、仮想マシンモニタ310、インターナショナルビジネスマシーンズコーポレーションから入手できる。ファームウェアは、例えば読み取り専用メモリROM:read-onlymemory、プログラム可能ROMPROM:programmableROM、消去可能プログラム可能ROMEPROM:erasableprogrammableROM、および電気的消去可能プログラム可能ROMEEPROM:electricallyerasableprogrammableROMなど、電力がなくてもそのコンテンツを保持するメモリチップに記憶された、ソフトウェアである。論理分割されたプラットフォーム300はさらに、システムメモリ仮想化機能をIBMPowerSystemsに提供するIBMRPowerVMIBM社の登録商標の高度なメモリ仮想化技術である、IBMRのPowerVMIBM社の登録商標ActiveMemoryTMSharingを使用して、複数の論理パーティションが物理メモリの共通のプールを共有できるようにすることもできる。IBMRPowerSystemsTMの物理メモリは、専用または共有モードのいずれかで、複数の論理パーティションに割り振られることが可能である。システム管理者は、一部の物理メモリをある論理パーティションに割り振り、一部の物理メモリを他の複数の論理パーティションにより共有されるプールに割り振る能力を有する。単一のパーティションは、専用または共有メモリのいずれかを有し得る。ActiveMemoryTMSharingは、必要システムメモリを減らすこと、または既存システム上での追加の論理パーティションの作成を可能にすることによって、システム上でのメモリ利用度を上げるよう利用され得る。論理パーティション303、305、307、および309はさらに、パーティションファームウェアローダ311、313、315、および317を含む。パーティションファームウェアローダ311、313、315、および317は、IPLまたは初期ブートストラップコード、IEEE-1275標準OpenFirmware、およびインターナショナルビジネスマシーンズコーポレーションから入手できるランタイム抽象化ソフトウェアRTAS:runtimeabstractionsoftwareを使用して実装され得る。論理パーティション303、305、307、および309がインスタンス化されると、ブートストラップコードのコピーが、仮想マシンモニタ310によって論理パーティション303、305、307、および309内へロードされる。その後、ブートストラップコードに制御が移され、次にブートストラップコードは、openfirmwareおよびRTASをロードする。続いて、論理パーティション303、305、307、および309に関連する、または割り振られているプロセッサが、論理パーティションファームウェアを実行するよう論理パーティションのメモリにディスパッチされる。分割されたハードウェア330は、複数のプロセッサ332~338、複数のシステムメモリユニット340~346、複数の入出力I/O:input/outputアダプタ348~362、およびストレージユニット370を含む。プロセッサ332~338、メモリユニット340~346、NVRAMストレージ398、およびI/Oアダプタ348~362はそれぞれ、論理分割されたプラットフォーム300内の複数の論理パーティション303、305、307、および309のうちの1つに割り振られるとよく、それぞれがオペレーティングシステム302、304、306、および308のうちの1つに対応する。仮想マシンモニタ310は、論理パーティション303、305、307、および309に関するいくつかの機能およびサービスを実行して、論理分割されたプラットフォーム300の分割をもたらし、実行する。仮想マシンモニタ310は、基礎をなすハードウェアと等しい、ファームウェアで実装される仮想マシンである。したがって、仮想マシンモニタ310は、独立したOSイメージ302、304、306、および308の同時実行を、論理分割されたプラットフォーム300のすべてのハードウェアリソースを仮想化することによって可能にする。サービスプロセッサ390は、論理パーティション303、305、307、および309におけるプラットフォームエラーの処理などの様々なサービスを提供するために使用され得る。サービスプロセッサ390はさらに、インターナショナルビジネスマシーンズコーポレーションなどのベンダにエラーのレポートを返すサービスエージェントとしての機能を果たしてもよい。種々の論理パーティションの動作は、ハードウェアシステムコンソール380を介して制御され得る。ハードウェアシステムコンソール380は、別個のデータ処理システムであり、このシステムからシステム管理者は、リソースを異なる論理パーティションに再割り当てすることを含む、様々な機能を実行することもできる。例示実施形態は、通常動作を実現するために最低限必要なリソースを少し上回るリソースを用いて、単一のキューペアQP、すなわち送信/受信ペアのみを最初に割り当てるよう、オペレーティングシステムOSドライバを規定する。トラフィックフローまたはワークロードが所定の閾値超に増えるのに従って、OSドライバは、必要に応じて追加のQPを動的に割り当てる。QPが実行中のOSドライバに追加され、アダプタに対して利用可能になるため、トラフィックは、イングレス、すなわち受信パス、およびイーグレス、すなわち送信パスの両方において、より多くの中央処理ユニットCPUにハッシュされ、パフォーマンスおよびCPU/メモリリソース使用量が効果的に拡大される。パフォーマンス拡大は、静的なディスクリプタカウントではなく追加のQPによって実現されるため、システムリソースは、必要なくなれば削減されることもできる。トラフィックフローおよびワークロードが、規定の最小閾値未満に下がるのに従って、OSドライバは、QPを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増えると、このサイクルが繰り返される。したがって、例示実施形態は、CPU利用およびアクティブメモリシェアリングのアフィニティを提供しながら、パフォーマンスのために調整する動的再構成を効果的に実現する。図4は、例示実施形態による、主要な動作コンポーネントおよびその相互作用を示す例示のブロック図である。図4に示されている構成要素は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの任意の組み合わせにおいて実装され得る。一例示実施形態では、図4の構成要素は、1つ以上のデータ処理デバイスまたはシステムの1つ以上のプロセッサ上で実行されているソフトウェアとして実装される。図4は、例示実施形態による、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティを提供するメカニズムの例示的な実装を示す。データ処理システム400は、オペレーティングシステム404内にデバイスドライバ402を含む。デバイスドライバ402は、アプリケーション410およびネットワークアダプタ412が使用するメモリ408内に1つ以上のキューペア406a~406nを提供する。例示実施形態は、1つのデバイスドライバ402、1つのアプリケーション410、および1つのネットワークアダプタ412のみを示すが、当業者には当然のことながら、データ処理システム400は、複数のデバイスドライバ、複数のアプリケーション、および複数のネットワークアダプタをデータ処理システム400内に含むこともできる。オペレーティングシステム404の初期化時、オペレーティングシステム404は、デバイスドライバ402を構成および初期化する。次に、デバイスドライバ402は、メモリ408内に、いくつかの受信ディスクリプタ/バッファおよびいくつかの送信ディスクリプタ/バッファを含むとよい初期キューペア406aを割り当てる。続いてデバイスドライバ402は、トラフィックがネットワークアダプタ412に送られることができるように、ネットワークアダプタ412を起動する。動作中、キューペア406aのみが初期化されているとき、デバイスドライバ402は、ネットワークアダプタ412へ送信されるトラフィックを受信し、トラフィックを、配信のためにネットワークアダプタ412上へ送る。続いてネットワークアダプタ412は、送信トラフィックを、サーバ416、サーバ418、クライアント420、クライアント422、または同様のものなどのデバイス上へ、ネットワーク424を経由して送る。反対に、ネットワークアダプタ412が、サーバ416、サーバ418、クライアント420、クライアント422、または同様のものなどのデバイスからデバイスドライバ402にネットワーク424を経由して送信されるトラフィックを受信すると、ネットワークアダプタ412は、オペレーティングシステム404による処理の割り込みを起こし、トラフィックは、デバイスドライバ402に送られる。キューペア406a、および下記のようにさらに割り当てられるとよい406b~406nはそれぞれ、それ自体の、関連する受信割り込みを有する。デバイスドライバ402がキューペア406aを割り当ててインスタンス化した後、デバイスドライバ402は、データフローおよびリソース利用可能性を介して、オペレーティングシステム404のワークロードを継続的に監視する。デバイスドライバ402は、送信/受信バイトパーセカンド、ネットワークアダプタ412によって送信および受信されているフロー制御フレームの数、ネットワークアダプタ412によって検出されるDMAオーバーランDMAoverrunの数、デバイスドライバ402によって検出される送信タイムアウトイベントの数、割り込み毎にデバイスドライバ402によって処理される受信パケットの数、ソフトウェアキュー上の送信パケットの数、または同様のものなどのパラメータを監視するとよい。デバイスドライバ402が、所定の高閾値を上回ることなどによって、ワークロード監視によりリソース不足の状況を検出すると、デバイスドライバ402は、キューペア406b~406nのうちの追加のキューペアを動的に割り当てて初期化する。続いてデバイスドライバ402は、ネットワークアダプタ412内の受信側スケーリングRSSメカニズム414をプログラムし、キューペア406aおよびキューペア406b~406nのうちの追加のキューペアに関連する追加の処理エンジンの動的挿入を可能にする。続いてデバイスドライバ402は、キューペア406aおよびキューペア406b~406nのうちの追加のキューペアへの、送信タプルハッシングを有効化する。ネットワークアダプタ412による受信タプルハッシングおよび処理は、RSSメカニズム414をプログラムすることにより自動的に有効化される。デバイスドライバ402は、キューペア406b~406nのうちの利用可能なキューペアがすべて消費されるまで、またはキューペア406a~406nがデータ処理システム400内の中央処理ユニットの数を上回るまで、キューペア406b~406nのうちのキューペアを、まだ割り当ておよび初期化されていなければ、ワークロードによる必要に応じて追加し続ける。デバイスドライバ402はさらに、ネットワークアダプタ412内のRSSメカニズム414を再プログラムし、キューペア406b~406nのうちの新たなキューペアが追加されるたびに、追加の処理エンジンの動的挿入を可能にし、さらにキューペア406b~406nのうちの新たなキューペアへの送信タプルハッシングを有効化する。デバイスドライバ402が、ワークロードが所定の低閾値を下回ることなどによってワークロードの減少を認識すると、デバイスドライバ402は、ネットワークアダプタ412内のRSSメカニズム414を動的に再プログラムし、キューペア406a~406nのうちの割り当てられているキューペアの削除を可能にする。続いてデバイスドライバ402は、キューペア406a~406nのうちの削除されたキューペアへの送信タプルハッシングを無効化する。キューペア406a~406nのうちの削除されたキューペアが休止するquiesceと、デバイスドライバ402は、キューペア406a~406nのうちの削除されたキューペアを除去し、その結果、キューペア406a~406nのうちの削除されたキューペアによって使用されたメモリが解放される。ネットワークアダプタ412における受信タプルハッシングの有効化のように、ネットワークアダプタ412による受信タプルハッシングおよび処理は、RSSメカニズム414を再プログラムすることにより自動的に無効化される。したがって、例示実施形態は、基礎をなすハードウェアの動的再構成によって、アクティブメモリシェアリングAMSおよび中央処理ユニットCPU利用のためのリソースアフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。トラフィックフローまたはワークロードが所定の閾値超に増えるのに従って、デバイスドライバは、必要に応じて追加のキューペアを動的に割り当てる。トラフィックフローおよびワークロードが所定の最小閾値未満に下がるのに従って、デバイスドライバは、キューペアを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増加し、続いて減少すると、このサイクルが繰り返される。当業者であれば当然のことであるが、本発明は、システム、方法、またはコンピュータプログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、または本願明細書においてすべて概して回路、モジュールもしくはシステムと呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、本発明の側面は、コンピュータ使用可能プログラムコードが具現化された任意の1つ以上のコンピュータ可読媒体単数または複数において具現化されたコンピュータプログラム製品の形態をとることもできる。1つ以上のコンピュータ可読媒体単数または複数の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体とされ得る。コンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、デバイス、または前述のものの任意の適切な組み合わせとされ得る。コンピュータ可読媒体のより具体的な例包括的でないリストには、1つ以上のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラム可能読み取り専用メモリEPROMまたはフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリCDROM:compactdiscread-onlymemory、光学式ストレージデバイス、磁気ストレージデバイス、または前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体とされ得る。コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部として、コンピュータ可読プログラムコードが具現化された伝播データ信号を含み得る。そのような伝播信号は、電磁気、光学、またはその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体でなく、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムの伝達、伝播、または搬送をすることができる、任意のコンピュータ可読媒体としてよい。コンピュータ可読媒体上に具現化されたコンピュータコードは、無線、有線、光ファイバケーブル、無線周波数RF:radiofrequencyなど、またはその任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して送られてもよい。本発明の側面の動作を実行するコンピュータプログラムコードは、JavaR、SmalltalkR、Cまたは同様のものなどのオブジェクト指向プログラミング言語、およびCプログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラムコードは、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、または部分的にユーザのコンピュータ上で、かつ部分的にリモートコンピュータ上で実行されることも、または完全にリモートコンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカルエリアネットワークLANもしくは広域ネットワークWANを含む任意の種類のネットワークを介してリモートコンピュータがユーザのコンピュータに接続されてもよく、または、例えば、インターネットサービスプロバイダを使用しインターネットを介して外部コンピュータに接続されてもよい。本発明の側面について、本発明の例示実施形態による方法、装置システムおよびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して以下に記載する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータプログラム命令により実装可能である。マシンを生じるよう、こうしたコンピュータプログラム命令が、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができるこうしたコンピュータプログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する命令を含む製品を生じるようにすることもできる。さらに、コンピュータプログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータで実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。以下、図5を参照する。この図面は、例示実施形態による、動的再構成によってマルチキューネットワークアダプタのリソースアフィニティを提供する例示の動作の概要を示すフローチャートを提供する。動作が開始するとき、構成および初期化されたデバイスドライバが、メモリ内に初期キューペアを割り当てるステップ502。続いてデバイスドライバは、トラフィックがネットワークアダプタに送られることができるように、ネットワークアダプタを起動するステップ504。デバイスドライバが、キューペアを割り当ててインスタンス化した後、デバイスドライバは、データフローおよびリソース利用可能性を介して、オペレーティングシステムのワークロードを継続的に監視するステップ506。デバイスドライバは、送信/受信バイトパーセカンド、ネットワークアダプタによって送信および受信されているフロー制御フレームの数、ネットワークアダプタによって検出されるDMAオーバーランの数、デバイスドライバによって検出される送信タイムアウトイベントの数、割り込み毎にデバイスドライバによって処理される受信パケットの数、ソフトウェアキュー上の送信パケットの数、または同様のものなどのパラメータを監視するとよい。続いてデバイスドライバは、リソース不足状況を示す、所定の高閾値の超過が生じたかどうかを、ワークロード監視により判断するステップ508。ステップ508にて、ワークロードが所定の高閾値より高くなっていれば、デバイスドライバは、メモリ内に追加のキューペアを動的に割り当てて初期化するステップ510。続いてデバイスドライバは、ネットワークアダプタ内のRSSメカニズムをプログラム/再プログラムして追加の処理エンジンの動的挿入を可能にしステップ512、デバイスドライバは、新たに割り当てられたキューペアへの送信タプルハッシングを有効化しステップ514、動作はその後、ステップ506に戻る。ステップ508にて、ワークロードが所定の高閾値より高くなっていなければ、デバイスドライバは、ワークロードが所定の低閾値を下回ったかどうかを判断するステップ516。ステップ516にて、デバイスドライバが、ワークロードは所定の低閾値を下回っていないと判断すると、動作はステップ506に戻る。ステップ516にて、デバイスドライバが、ワークロードが所定の低閾値を下回ったと判断すると、デバイスドライバは、割り当てられているキューペアが残り1つのみあるかどうかを判断するステップ518。ステップ518にて、デバイスドライバが、1つのみのキューペアが残っていると判断すると、動作はステップ506に戻る。ステップ518にて、デバイスドライバが、2つ以上のキューペアが残っていると判断すると、デバイスドライバは、ネットワークアダプタ内のRSSメカニズムを動的に再プログラムして、割り当てられているキューペアの削除を可能にするとよいステップ520。続いてデバイスドライバは、特定されたキューペアへの送信タプルハッシングを無効化するステップ522。デバイスドライバは続いて、特定されたキューペタへのワークロードが休止したかどうかを判断するステップ524。ステップ524にて、デバイスドライバが、特定されたキューペアへのワークロードが休止していないと判断すると、動作はステップ524に戻る。ステップ524にて、デバイスドライバが、特定されたキューペアへのワークロードが休止したと判断すると、デバイスドライバは、メモリから特定されたキューペアを除去しステップ526、その結果、特定されたキューペアによって使用されたメモリが解放される。動作は続いて、ステップ506に戻る。各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能性、および動作を示す。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能単数または複数を実装する1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すこともできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェアベースシステム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。したがって、例示実施形態は、基礎をなすハードウェアの動的再構成によってアクティブメモリシェアリングAMSおよび中央処理ユニットCPU利用のためのリソースアフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。トラフィックフローまたはワークロードが、所定の閾値超に増えるのに従って、デバイスドライバは、必要に応じて追加のキューペアを動的に割り当てる。トラフィックフローおよびワークロードが、所定の最小閾値未満に下がるのに従って、デバイスドライバは、キューペアを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増加し、続いて減少すると、このサイクルが繰り返される。上述のとおり、当然のことながら、例示実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア両方の構成要素を含む実施形態の形態をとり得る。例示の一実施形態では、例示実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラムコードにおいて実装される。プログラムコードの記憶もしくは実行またはその両方に適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラムコードを実際に実行する間に用いられるローカルメモリ、大容量ストレージ、および、実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラムコードの一時的なストレージとなるキャッシュメモリを含むことができる。入出力、すなわちI/Oデバイス限定はされないが、キーボード、ディスプレイ、ポインティングデバイスなどを含むは、直接、または介在するI/Oコントローラを介して、システムに結合されることが可能である。ネットワークアダプタもシステムに結合されて、データ処理システムが、他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに、介在するプライベートまたはパブリックネットワークを介して結合された状態となることを可能にしてもよい。モデム、ケーブルモデム、およびイーサネットRカードが、現在利用可能なタイプのネットワークアダプタのごく一部である。本発明の記載は、例示および説明のために示されたものであり、包括的であることも、開示された形態の発明に限定されることも目的としていない。当業者には、多数の変更および変形が明らかであろう。実施形態は、本発明の原理、実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。