JP2014178889A - 情報処理装置、プログラムおよび記憶領域獲得方法 - Google Patents

情報処理装置、プログラムおよび記憶領域獲得方法 Download PDF

Info

Publication number
JP2014178889A
JP2014178889A JP2013052471A JP2013052471A JP2014178889A JP 2014178889 A JP2014178889 A JP 2014178889A JP 2013052471 A JP2013052471 A JP 2013052471A JP 2013052471 A JP2013052471 A JP 2013052471A JP 2014178889 A JP2014178889 A JP 2014178889A
Authority
JP
Japan
Prior art keywords
memory
storage area
size
group
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013052471A
Other languages
English (en)
Other versions
JP5994690B2 (ja
Inventor
Hiroshi Kondo
浩 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013052471A priority Critical patent/JP5994690B2/ja
Priority to US14/154,306 priority patent/US20140281343A1/en
Priority to EP20140151261 priority patent/EP2778918A3/en
Publication of JP2014178889A publication Critical patent/JP2014178889A/ja
Application granted granted Critical
Publication of JP5994690B2 publication Critical patent/JP5994690B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

【課題】アプリケーションプログラムの処理性能の低下を抑制できる情報処理装置、プログラムおよび記憶領域獲得方法を提供する。
【解決手段】判定部81は、サイズが指定されてOS60が使用するデータを格納する記憶領域の獲得が要求された場合、各ビルディングブロックに備えられたメモリ21をグルーピングした各グループのメモリ21に、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。獲得部82は、アプリケーションプログラム用の空きがあると判定されたグループのメモリ21から記憶領域を獲得する。
【選択図】図5

Description

本発明は、情報処理装置、プログラムおよび記憶領域獲得方法に関する。
プロセッサとメモリなどを備えたノードを複数接続して大規模なコンピュータシステムが構成される。例えば、複数のノードを接続し、各ノードのプロセッサが各ノードのメモリを共有するNUMA(Non Uniform Memory Access)アーキテクチャが知られている。
NUMAアーキテクチャを採用したNUMA型のコンピュータシステムは、プロセッサとメモリの位置に応じてメモリへのアクセス性能が異なる。NUMA型のコンピュータシステムは、プロセッサから近いメモリには最も低いレイテンシーでアクセスし、プロセッサから遠いメモリには比較的高いレイテンシーでアクセスする。このようなNUMA型のコンピュータシステムのOS(Operating System)では、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置することが望ましい。
特開2002−140229号公報
しかしながら、アプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置できない場合がある。例えば、アプリケーションプログラムが動作するプロセッサに近いメモリに、OSやOSが使用する各種のデータなどが記憶されて記憶領域に空きがなくなり、アプリケーションプログラムが使用するデータを配置できない場合がある。例えば、NUMA型のコンピュータシステムでは、各ノードのプロセッサが、共有する全てのメモリにアクセスできる。このため、NUMA型のコンピュータシステムでは、メモリ空間のサイズが大きくなり、例えば、ページテーブルなどのOSが使用する管理用のデータのサイズも大きくなる。NUMA型のコンピュータシステムでは、この管理用のデータが特定のメモリの記憶領域に記憶されて空き領域がなくなり、アプリケーションプログラムが使用するデータを配置できない場合がある。この場合は、アプリケーションプログラムが動作するプロセッサから遠いメモリに、アプリケーションプログラムが使用するデータを配置することになり、アプリケーションプログラムの処理性能が低下してしまう。
本発明は、1つの側面では、アプリケーションプログラムの処理性能の低下を抑制できる情報処理装置、プログラムおよび記憶領域獲得方法を提供することを目的とする。
1つの側面では、情報処理装置は、各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置であって、判定部と、獲得部とを有する。判定部は、サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、次の判定を行う。すなわち、判定部は、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。獲得部は、判定部により記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する。
1実施形態によれば、アプリケーションプログラムの処理性能の低下を抑制できる。
図1は、情報処理装置の全体構成を示す図である。 図2は、ビルディングブロックの機能構成の一例を示す図である。 図3は、CPUChipの構成の一例を概略的に示した図である。 図4は、サイズ情報のデータ構成の一例を示す図である。 図5は、情報処理装置におけるハードウェアとソフトウェアとの関係を説明するための図である。 図6は、情報処理装置におけるアクセスレイテンシーを説明するための図である。 図7は、ハイパーバイザから取得される構成情報の一例を示す図である。 図8は、グループの各メモリの記憶領域の使用状況の一例を示す図である。 図9は、OSの起動の流れの一例を概略的に示した図である。 図10は、記憶領域獲得処理の手順を示すフローチャートである。
以下に、本発明にかかる情報処理装置、プログラムおよび記憶領域獲得方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1に係る情報処理装置10について説明する。図1は、情報処理装置の全体構成を示す図である。情報処理装置10は、複数のビルディングブロック11と、サービスプロセッサ(SP)12とを有する。このビルディングブロック11は、「システムボード」、「ノード」とも称される。本実施例に係る情報処理装置10は、NUMAアーキテクチャを採用している。複数のビルディングブロック11と、サービスプロセッサ12は、後述のグローバルクロスバースイッチやLAN(Local Area Network)などにより接続され、互いにアクセスが可能とされている。図1の例では、簡略化するため、3個のビルディングブロック11(11a、11b、11c)を接続した場合を示したが、ビルディングブロック11の個数はこれに限定されるものではない。ビルディングブロック11は、コンピュータシステムの規模に応じて変更可能であり、例えば、16個や32個接続される。
各ビルディングブロック11は、それぞれ独立してOSを動作させることが可能なハードウェアを有する。各ビルディングブロック11は、複数のCPUChip20と、複数のメモリ21と、ディスクユニット22と、通信I/F(インタフェース)23と、不揮発性メモリ24とをそれぞれ有し、略同様のハードウェア構成とされている。図1の例では、簡略化するため、ビルディングブロック11がCPUChip20とメモリ21をそれぞれ2個ずつ有する場合を示したが、CPUChip20とメモリ21の個数は、これに限定されるものではない。
ここで、図2を用いて、ビルディングブロック11の構成について説明する。図2は、ビルディングブロックの機能構成の一例を示す図である。図2に示す例では、ビルディングブロック11は、複数のCPUChip20と、複数のメモリ21と、ローカルXB(クロスバー)30と、PCIe(Peripheral Component Interconnect Express)スイッチ31とを有する。また、ビルディングブロック11は、LANと接続するための通信I/F23と、SAS(Serial Attached SCSI)32と、ディスクユニット22と、不揮発性メモリ24とを有する。
CPUChip20は、互いに接続されている。なお、図2の例では、CPUChip20が2つの場合を示しているが、例えば、CPUChip20が4個の場合、それぞれのCPUChip20が他のCPUChip20とそれぞれ相互に直接接続される。なお、図2ではそれぞれのCPUChip20が直接接続される例となっているが、例えばローカルXB30を介してCPUChip20どうしが接続される構成であってもよい。
CPUChip20は、それぞれ個別にメモリ21と接続されている。なお、図2の例では、CPUChip20は、それぞれ1つのメモリ21と接続されているものとしたが、それぞれ複数のメモリと接続されてもよい。また、各CPUChip20は、バスを介して不揮発性メモリ24と接続されている。また、各CPUChip20は、ローカルXB30と接続されている。このローカルXB30は、グローバルクロスバースイッチ33と接続されている。また、各CPUChip20は、PCIeスイッチ31と接続されている。PCIeスイッチ31は、通信I/F23と接続されている。また、PCIeスイッチ31は、SAS32を介してディスクユニット22と接続されている。
例えば、図2に示す例では、CPUChip20は、演算処理を実行する演算処理装置(プロセッサ)である。CPUChip20は、複数のCPUコアを有しており各CPUコアがCPU40として機能する。図2の例では、CPUChip20は、それぞれ4つのCPU40を有する。なお、図2の例では、簡略化するため、CPUChip20が4つのCPU40を有する場合を示したが、CPU40の個数はこれに限定されるものではない。また、CPUChip20の各CPUコアにおいて複数のスレッドを動作させ、それぞれのスレッドがCPUとして機能する場合は、各スレッドがCPU40に対応する。
図3は、CPUChipの構成の一例を概略的に示した図である。CPUChip20は、4つのCPUコア41を有している。図3の例では、各CPUコア41に、ハードウェア的にそれぞれ演算処理を実行可能な2つのスレッド42が設けられている。このスレッド42は、「ストランド」とも称される。このスレッド42がそれぞれCPUとして機能する場合、各スレッド42がCPU40に対応する。
図2に戻り、各CPU40は、ローカルXB30、グローバルクロスバースイッチ33を介して他のビルディングブロック11のCPU40とインターコネクトで接続され、各メモリ21や、他のビルディングブロック11のメモリ21を共有メモリとして利用する。例えば、各CPU40は、物理アドレスと、物理アドレスが割り振られたメモリと接続されたCPUの識別子であるCPUID(identification)とを対応付けたノードマップを有する。CPU40は、アクセス対象の物理アドレスのCPUIDが異なるビルディングブロック11のCPU40を示す場合、ローカルXB30、グローバルクロスバースイッチ33を介して他のビルディングブロック11にメモリアクセスのリクエストを送信する。また、CPU40は、アクセス対象の物理アドレスに対応するCPUIDが自身のビルディングブロック11の他のCPU40を示す場合、CPU間の直接接続を介して、メモリアクセスのリクエストを送信する。すなわち、CPU40は、アクセス対象の物理アドレスに対応するCPUIDが自身以外のCPU40であって、自身と同じビルディングブロック11に存在するCPUを示す場合、CPU間の直接接続を介して、メモリアクセスのリクエストを送信する。
また、CPU40は、自身と接続されたメモリ21に対するリクエストを他のビルディングブロック11から受信した場合、リクエストの対象となるデータを自身と接続されたメモリ21から読出し、リクエスト元へ送信する。
メモリ21は、OSやアプリケーションが利用するデータを記憶するメモリであり、例えば、DIMM(Dual In-Line Memory Module)である。各ビルディングブロック11が有するメモリ21は、同一の物理アドレス空間にマッピングされる物理アドレスを振分けられ、CPU40から共用して使用される。すなわち、情報処理装置10が有する全てのメモリには、重複しない値の物理アドレスが割当てられている。なお、メモリ21は、記憶領域の一部を、情報処理装置10が有する全てのCPU40で共用する共有領域としてもよい。
ローカルXB30は、他のビルディングブロック11が有するCPU40との間を送受信するパケットを転送するためのスイッチである。グローバルクロスバースイッチ33は、各ビルディングブロック11間でパケットを転送するためのスイッチである。グローバルクロスバースイッチ33は、各ビルディングブロック11間でやり取りされるデータの経路を動的に選択するとともに、データを転送する。ローカルXB30は、CPU40が、他のビルディングブロック11のCPU40を宛先として発行したパケットを、グローバルクロスバースイッチ33を介して、宛先のビルディングブロック11のCPU40に送信する。
PCIeスイッチ31は、各CPUChip20からPCIeスロットを介して接続されるI/O装置等へのアクセスを制御するスイッチである。通信I/F23は、LANとビルディングブロック11とを接続するLANアダプタである。SAS32は、PCIeスロットに搭載されたLANやSAS用のアダプタであり、ディスクユニット22と各CPU40との接続を中継する。なお、本実施例では、ビルディングブロック11は、ディスクユニット22を有するものとしているが、実施例はこれに限定されるものではなく、SAN(Storage Area Network)等の技術を適用し、ビルディングブロック11の外部に設置してもよい。
ディスクユニット22は、HDD(Hard Disk Drive)を内蔵し、各種の情報を記憶するデバイスである。本実施例では、ディスクユニット22は、それぞれ2つのHDD25を有する場合を示しているが、HDD25の個数は、これに限定されるものではない。ディスクユニット22は、OSや、ハイパーバイザ、ファームウェアなど各種プログラムを記憶する。
不揮発性メモリ24は、情報処理装置10を起動させる際に参照されるメモリである。不揮発性メモリ24には、OSの起動を制御する起動制御プログラムが記憶されている。この起動制御プログラムとしては、例えば、OBP(Open Boot PROM)が挙げられる。例えば、OBPは、外部記憶装置またはネットワークからOSを起動、構成する機能を有する。
また、不揮発性メモリ24は、起動の際の記憶領域の獲得の制御に用いる各種データを記憶する。例えば、不揮発性メモリ24は、アプリ用サイズ情報50と、設定情報51とを記憶する。
アプリ用サイズ情報50は、アプリケーションプログラム用に確保する記憶領域のサイズを記憶したデータである。図4は、アプリ用サイズ情報のデータ構成の一例を示す図である。図4に示すように、アプリ用サイズ情報50は、「グループ」、「アプリ用に残すメモリサイズ」の各項目を有する。グループの項目は、メモリをグルーピングしたグループ番号を記憶する領域である。アプリ用に残すメモリサイズの項目は、グループ番号のグループのメモリにアプリケーションプログラム用として確保する記憶領域のサイズを記憶する領域である。本実施例では、アプリケーションプログラム用の記憶領域を確保できるグループのメモリが無い場合、アプリケーションプログラム用の記憶領域のサイズを減らして3回判定を行う。アプリ用に残すメモリサイズの項目は、3回の判定に用いるアプリケーションプログラム用の記憶領域のサイズをそれぞれ記憶するため、「1回目」、「2回目」、「3回目」と分かれている。図4の例では、グループ「1」のメモリは、アプリケーションプログラム用に確保する記憶領域のサイズが1回目、32GBであり、2回目、16GBであり、3回目、0GBであることを示している。
設定情報51は、CPU40を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かに関する設定を記憶したデータである。
ここで、CPU40が存在しないグループは、アプリケーションプログラムが動作するCPU40も無く、処理性能の低下を抑制するためにアプリケーションプログラム用に記憶領域を確保しなくてもよい。しかし、情報処理装置10は、論理ドメインが変更されたり、あるいは、DR(Dynamic Reconfiguration)の機能を使用して、CPU40を含まないグループに動的にCPU40を追加される可能性がある。情報処理装置10は、CPU40が存在しないグループでも、当該グループに動的にCPU40を追加される場合、アプリケーションプログラム用に記憶領域を確保しておくことが好ましい。そこで、情報処理装置10は、CPU40を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かを設定情報51に設定できるようにしている。これにより、システムの管理者は、システムの運用によってアプリケーションプログラム用に記憶領域を確保するかを変更できる。例えば、CPU40が存在しないグループについてもアプリケーションプログラム用に記憶領域を確保する場合、管理者は、アプリ用サイズ情報50のCPU40が存在しないグループについても確保する記憶領域のサイズを設定する。また、管理者は、設定情報51にアプリケーションプログラム用に記憶領域を確保する設定を行う。これにより、情報処理装置10は、CPU40が存在しないグループについてもアプリケーションプログラム用に記憶領域を確保することができる。また、CPU40が存在しないグループにCPU40を追加されない場合、管理者は、設定情報51に記憶領域を確保しない設定とすることにより、CPU40が存在しないグループにアプリケーションプログラム用に記憶領域が確保されることを防止できる。
図1に戻り、サービスプロセッサ12は、CPU70と、メモリ71と、通信I/F72とを有し、情報処理装置10全体の管理制御を行う。例えば、サービスプロセッサ12は、各ビルディングブロック11の電源管理、リセット、動作モードの変更、ノードの追加や削除の設定、エラーログの収集等を行う。
実施例1に係る情報処理装置10は、リソースを論理グループに分けて論理ドメインを設定することが可能とされている。例えば、図1の例では、ビルディングブロック11aと、ビルディングブロック11bの「CPUChip2」、「メモリ2」、「メモリ3」および「ディスクユニット」とにより論理ドメイン0が設定されている。各ビルディングブロック11では、メモリ21に各種のプログラムがロードされて動作する。例えば、各ビルディングブロック11では、メモリ21にハイパーバイザがロードされて動作する。ハイパーバイザは、論理ドメインを仮想化マシンとして動作させ、仮想化マシン毎にOSを動作させる。図1の例では、論理ドメイン0で1つのOSが動作する。OSは、マルチプロセッサ構成に対応しており、論理ドメイン内の何れのCPU40でも動作する。このように論理ドメインが設定された場合は、論理ドメイン内の各メモリ21に対して同一の物理アドレス空間にマッピングされる物理アドレスを振分けられ、論理ドメイン内のCPU40から共用して使用が可能とされる。
次に、図5を用いて、情報処理装置10におけるハードウェアとソフトウェアとの関係について説明する。図5は、情報処理装置におけるハードウェアとソフトウェアとの関係を説明するための図である。なお、図5に示す例では、情報処理装置10のハードウェアが論理ドメイン0〜論理ドメイン3に分けられているものとしている。また、図5の例では、各論理ドメインのハードウェアを簡略化して示しており、論理ドメイン0〜論理ドメイン3のハードウェアとしてそれぞれ4つのCPU40とメモリ21とディスクユニット22のみを図示している。また、図5に示す例では、ソフトウェアとして、ハイパーバイザ61と、OS60とが示されている。
ハイパーバイザ61は、論理ドメイン0〜論理ドメイン3をそれぞれ仮想化マシンとして動作させる。OS60は、ハイパーバイザ61を介して自身が動作する論理ドメインのハードウェハにアクセスする。OS60は、カーネル63と、設定部65とを有する。なお、メモリ管理部64は、カーネル63の一部とはせずに別のプログラムとしてもよい。カーネル63は、OS60の中核となるプログラムであり、割り込み処理部、プロセス管理部、メモリ管理部64、ファイル管理部などを有し、OS60としての基本機能を提供する。メモリ管理部64は、共有されるメモリ21のメモリ空間を管理しており、要求に応じて記憶領域の割り当てを行う。設定部65は、サイズ情報50および設定情報51を設定するためのプログラムである。システムの管理者は、設定部65を用いて、サイズ情報50に、各グループにアプリケーションプログラム用に確保する記憶領域のサイズを設定する。また、システムの管理者は、設定部65を用いて、設定情報51に、CPU40を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かを設定する。
ハイパーバイザ61は、情報処理装置10のリソース構成を把握しており、論理ドメインとされたリソース構成からCPUChip20に対する各メモリ21のアクセスレイテンシーを把握できる。例えば、CPUChip20は、当該CPUChip20に接続されたメモリ21に直接アクセスできる。このため、直接接続されたメモリ21は、アクセスレイテンシーが低い。一方、CPUChip20は、他のビルディングブロック11のCPUChip20に接続されたメモリ21へローカルXB30およびグローバルクロスバースイッチ33を介してアクセスする。このため、他のビルディングブロック11のメモリ21は、アクセスレイテンシーが高い。一方、CPUChip20は、同じビルディングブロック11内の他のCPUChip20に接続されたメモリ21へは他のCPUChip20を介してアクセスする。このため、同じビルディングブロック11内の他のCPUChip20に接続されたメモリ21は、アクセスレイテンシーが中程度となる。
図6は、情報処理装置におけるアクセスレイテンシーを説明するための図である。なお、図6の例では、図1に示した情報処理装置10のビルディングブロック11aの「CPUChip0」からのアクセスレイテンシーが示されている。「CPUChip0」のCPUChip20は、「メモリ0」のメモリ21へ直接アクセス可能であるため、レイテンシーが低い。一方、「CPUChip0」のCPUChip20は、ビルディングブロック11bの「メモリ2」や「メモリ3」のメモリ21へローカルXB30、グローバルクロスバースイッチ33を介してアクセスするため、レイテンシーが高い。一方、「CPUChip0」のCPUChip20は、ビルディングブロック11aの「メモリ1」のメモリ21へ他のCPUChip20を介してアクセスするため、レイテンシーが中程度となる。
図5に戻り、ハイパーバイザ61は、論理ドメイン内の各メモリ21をグルーピングしたグループ毎のリソースの構成情報を通知することが可能とされている。例えば、ハイパーバイザ61は、グループ毎のリソースの構成情報を通知する通知部62を有する。ハイパーバイザ61は、論理ドメイン内の各メモリ21をグルーピングしたグループ毎にリソースの構成情報を管理する。例えば、ハイパーバイザ61は、各CPUChip20に対してそれぞれアクセスレイテンシーの最も低いメモリ21をそれぞれ別のグループとしてリソースの構成情報を管理する。図1の例では、各CPUChip20に直接接続されたメモリ21がそれぞれ別のグループとしてグルーピングされる。また、ハイパーバイザ61は、論理ドメインにおいて、接続されたCPUChip20が存在しないメモリ21をそれぞれ別のグループとしてリソースの構成情報を管理する。例えば、図1の例では、「CPUChip0」と「メモリ0」がグループ0とされている。また、「CPUChip1」と「メモリ1」がグループ1とされている。また、「CPUChip2」と「メモリ2」がグループ2とされている。また、「メモリ3」がグループ3とされている。通知部62は、要求に応じて、グループ毎のリソースの構成情報として、グループのグループ番号、グループに含まれるCPU40、メモリ21の開始アドレス、メモリ21のサイズを通知する。
本実施例において、各ビルディングブロック11のメモリ21を共有する情報処理装置10では、実行されるOS60にMPO(Memory Placement Optimization)が実装される。ここで、MPOは、アプリケーションプログラムが使用するデータのメモリ上への配置を最適化する機能をいう。MPOを実装しているOSは、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置する。これにより、アプリケーションプログラムは、低いレイテンシーでアクセス可能なメモリにデータが配置されるため、メモリアクセス性能が向上する。
MPOが実装されたOS60は、何れかのメモリ21にアプリケーションプログラムを展開して動作させる場合、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリ21に、アプリケーションプログラムが使用するデータを配置する。例えば、OS60は、ハイパーバイザ61に対してグループの構成情報を要求して、ハイパーバイザ61からグループの構成情報を取得する。図7は、ハイパーバイザから取得される構成情報の一例を示す図である。図7の例では、構成情報として、グループのグループ番号、グループに含まれるCPU40、メモリ21の開始アドレス、メモリ21のサイズを取得している。OS60は、取得した構成情報に基づき、アプリケーションプログラムが動作するCPU40が属するグループのメモリ21にアプリケーションプログラムが使用するデータを配置する。例えば、図1において、アプリケーションプログラムが「CPU1」で動作する場合、OS60は、「CPU1」が動作する「CPUChip0」が属するグループ0の「メモリ0」にデータを配置する。これにより、アプリケーションプログラムは、低いレイテンシーでデータにアクセスできる。
次に、情報処理装置10におけるOSの起動の流れについて簡単に説明する。OS60を起動する際、不揮発性メモリ24に記憶された起動制御プログラムは、メモリ21にロードされ、実行される。起動制御プログラムは、ディスクユニット22などに格納されたOS60のカーネルモジュール、ドライバモジュールなどをメモリ21にロードして実行する。カーネル63は、実行されると、必要に応じて、サイズを指定してOS60で使用するデータを格納するための記憶領域の獲得をメモリ管理部64に順次要求し、メモリ管理部64により獲得された記憶領域にデータを格納する。OS60の起動では、このような記憶領域の獲得が多数行われる。
ところで、実施例1に係る情報処理装置10は、メモリ21を共有しているため、メモリ空間のサイズが大きい。また、情報処理装置10は、多数のCPU40を有する。例えば、情報処理装置10が、32個のビルディングブロック11により構成され、各ビルディングブロック11が4個のCPUChip20を有し、各CPUChip20が16個のコアを備え、各コアが2つのスレッドをCPU40として機能させるものとする。この場合、CPU40は、32×4×16×2=4096個となる。このように、実施例1に係る情報処理装置10は、メモリ空間のサイズが大きく、多数のCPU40が動作するため、OSが使用する管理用のデータのサイズも大きくなる。このため、情報処理装置10は、特定のメモリ21に記憶領域の獲得が集中して特定のメモリ21に管理用のデータが集中する場合がある。OS60は、この特定のメモリ21でアプリケーションプログラムを実行している場合、特定のメモリ21にアプリケーションプログラムが使用するデータを配置しようとする。しかし、OS60は、特定のメモリ21に記憶領域を確保できない場合、アプリケーションプログラムが使用するデータをアプリケーションプログラムが動作するプロセッサから遠いメモリ21に配置する。この場合、アプリケーションプログラムは、データのアクセスにコストがかかるため、処理性能が低下する。
そこで、本実施例に係るOS60は、OS60の起動の際に、アプリケーションプログラム用の空きがあるメモリ21から領域を獲得する機能を有する。OS60のメモリ管理部64は、判定部81と、獲得部82とを有する。
起動中のカーネル63がサイズを指定して、OS60が使用するデータを格納する記憶領域の獲得を判定部81に要求した場合、判定部81は、各グループのメモリ21に、アプリケーションプログラム用の空きがあるか否か判定する。例えば、判定部81は、ハイパーバイザ61から図7に示したグループの構成情報を取得する。なお、判定部81は、OS60がグループの構成情報を予め取得している場合、予め取得した構成情報を用いればよい。判定部81は、各グループのメモリ21に、指定されたサイズとアプリケーションプログラム用に確保するサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。例えば、判定部81は、アプリ用サイズ情報50に記憶された各グループの1回目のアプリ用に残すメモリサイズを読み出す。そして、判定部81は、各グループのメモリ21に、指定されたサイズと1回目のアプリ用に残すメモリサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。判定部81は、記憶領域を確保できるグループのメモリ21が無い場合、アプリ用に残すメモリサイズを減らして判定を再度行う。例えば、判定部81は、1回目の判定で記憶領域を確保できるメモリ21が無い場合、アプリ用サイズ情報50から各グループの2回目のアプリ用に残すメモリサイズを読み出して再度判定を行う。また、判定部81は、2回目の判定で記憶領域を確保できるメモリ21が無い場合、アプリ用サイズ情報50から各グループの3回目のアプリ用に残すメモリサイズを読み出して再度判定を行う。
なお、本実施例では、アプリケーションプログラム用に確保する記憶領域のサイズをアプリ用サイズ情報50にデータ量として規定しているが、比率で規定してもよい。例えば、アプリ用サイズ情報50にアプリケーションプログラム用に確保する記憶領域のサイズをメモリ21の50%と規定してもよい。図4では、括弧により比率で規定する場合を示している。また、本実施例では、アプリ用サイズ情報50に3回分の確保する記憶領域のサイズを記憶させているが、2回分、4回分以上の記憶領域のサイズを記憶させてもよい。また、アプリ用サイズ情報50に各グループの確保する記憶領域のサイズをそれぞれ1つ記憶させ、判定部81は、記憶領域を確保できない場合、段階的に確保する記憶領域のサイズを減らして判定を繰り返してもよい。また、アプリケーションプログラム用に確保する記憶領域のサイズは、アプリ用サイズ情報50に必ずしも規定していなくてもよい。例えば、判定部81は、アプリケーションプログラム用に確保するサイズをメモリ21の50%として、アプリケーションプログラム用に確保するサイズを求めて判定を行う。そして、判定部81は、記憶領域を確保できない場合、アプリケーションプログラム用に確保するサイズをメモリ21の40%、30%・・・と段階的に比率を減らして判定を繰り返して行うものとしてもよい。
獲得部82は、判定部81の判定結果に基づいて記憶領域を獲得する。例えば、獲得部82は、判定部81により記憶領域を確保できると判定されたグループのメモリ21から記憶領域を獲得する。例えば、獲得部82は、判定部81により記憶領域を確保できると判定されたグループのメモリ21から、指定されたサイズの記憶領域を獲得する。この獲得された記憶領域には、OS60が使用するデータが格納される。
一方、獲得部82は、判定部81による判定の結果、記憶領域を確保できると判定されたグループのメモリが無い場合、記憶領域の獲得を中止して所定のエラー処理を行う。このエラー処理としては、例えば、ブート失敗のログを残すや、管理者への通知などが挙げられる。これにより、管理者は、アプリ用サイズ情報50に設定したアプリケーションプログラム用に確保する記憶領域のサイズの変更や、論理ドメインの変更、物理的にメモリ21を増設するなどの作業を行い、再度、OS60の起動を行う。
次に、具体的な例を挙げて説明する。図8は、グループの各メモリの記憶領域の使用状況の一例を示す図である。図8の例では、グループ0のメモリ21は、実装メモリサイズが64GBであり、使用中のメモリサイズが14GBであり、空きのメモリサイズが50GBであるものとする。また、グループ1のメモリ21は、実装メモリサイズが64GBであり、使用中のメモリサイズが4GBであり、空きのメモリサイズが60GBであるものとする。また、グループ2のメモリ21は、実装メモリサイズが32GBであり、使用中のメモリサイズが2GBであり、空きのメモリサイズが30GBであるものとする。また、グループ3のメモリ21は、実装メモリサイズが32GBであり、使用中のメモリサイズが2GBであり、空きのメモリサイズが30GBであるものとする。
メモリ管理部64は、例えば、獲得する記憶領域のサイズとして20GBが指定されて記憶領域の獲得の要求を受け付けたものとする。判定部81は、アプリ用サイズ情報50に記憶された各グループの1回目の確保する記憶領域のサイズを読み出す。例えば、アプリ用サイズ情報50に設定されたデータが図4に示す状態である場合、グループ0とグループ1は、1回目のアプリ用に残すメモリサイズが32GBである。グループ2とグループ3は、1回目のアプリ用に残すメモリサイズが16GBである。
判定部81は、グループ0〜3の各メモリ21に対して、順に指定されたサイズとアプリケーションプログラム用に確保する記憶領域のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。図8の例では、グループ0は、指定された20GBと、1回目のアプリ用に残すメモリサイズ32GBを加算した52GBの空きがないため、記憶領域を確保できないと判定される。一方、グループ1は、指定された20GBと、1回目のアプリ用に残すメモリサイズ32GBを加算した52GBの空きがあるため、記憶領域を確保できると判定される。
獲得部82は、記憶領域を確保できると判定されたグループ1のメモリ21から、指定されたサイズの記憶領域を獲得する。この獲得された記憶領域には、OS60が使用するデータが格納される。これにより、図8の例では、グループ1のメモリ21の使用中のメモリサイズが4GBから24GBに変化している。
情報処理装置10は、このようにアプリケーションプログラム用の記憶領域を確保しつつOS60を起動させることにより、OS60が使用するデータが特定のメモリ21に集中することが抑制される。これにより、OS60は、アプリケーションプログラムが動作するCPU40に近いメモリ21に、アプリケーションプログラムが使用するデータを配置できるため、アプリケーションプログラムの処理性能の低下を抑制できる。
次に、本実施例に係る情報処理装置10におけるOS60の起動の流れを説明する。図9は、OSの起動の流れの一例を概略的に示した図である。
図9に示すように、起動制御プログラムは、不揮発性メモリ24などに記憶されたカーネル63、メモリ管理部64などOS60をメモリ21にロードし(S10)、OS60を実行する(S11)。
OS60は、実行されると、起動を開始し(S20)、トライ回数カウンタMに「1」にセットする(S21)。そして、OS60は、起動処理を継続し、OS60で使用するデータの記憶領域が必要となる毎に、データのサイズを指定して記憶領域の獲得をメモリ管理部64に要求する(S22)。メモリ管理部64は、獲得が要求される毎に、後述の記憶領域獲得処理(図10)を実行する。
OS60は、記憶領域の獲得を要求する毎に、記憶領域の獲得が成功したか否か判定し(S23)、獲得が成功した場合(S23肯定)、獲得した記憶領域にOS60で使用するデータを格納する。OS60は、起動処理が完了していない場合(S24否定)、記憶領域の獲得する際にS22から処理を繰り返し行い、起動処理が完了すると(S24肯定)、起動が成功として処理を終了する(S25)。
一方、OS60は、記憶領域の獲得が失敗した場合(S23否定)、所定のエラー処理を行い、起動が失敗として処理を終了する(S26)。
管理者は、OS60の起動が失敗した場合、アプリ用サイズ情報50に設定したアプリケーションプログラム用に確保する記憶領域のサイズの変更や、論理ドメインの変更、物理的にメモリ21を増設するなどの作業を行い、再度、OS60の起動を行う。
次に、本実施例に係る情報処理装置10が記憶領域の獲得を行う記憶領域獲得処理の流れを説明する。図10は、記憶領域獲得処理の手順を示すフローチャートである。この記憶領域獲得処理は、例えば、記憶領域の獲得が要求されたタイミングで実行される。
図10に示すように、判定部81は、ハイパーバイザ61からグループの構成情報を取得する(S50)。判定部81は、グループ数カウンタNに「0」をセットする(S51)。
判定部81は、グループ数カウンタN番目のグループにCPU40があるか否かを判定する(S52)。CPU40がある場合(S52肯定)、判定部81は、アプリ用サイズ情報50からグループ数カウンタN番目のグループのトライ回数カウンタM回目の確保する記憶領域のサイズを読み出し(S53)、後述のS56の処理へ移行する。
一方、CPU40がない場合(S52否定)、判定部81は、設定情報51においてCPU40を含まないグループについて、アプリケーションプログラム用に記憶領域を確保する設定であるか否かを判定する(S54)。記憶領域を確保する設定である場合(S54肯定)、処理は、上述のS53へ移行する。すなわち、CPU40を含まないグループについてもアプリ用サイズ情報50から確保する記憶領域のサイズを読み出す。これにより、CPU40を含まないグループについても記憶領域のサイズが設定されていれば、設定されたサイズがアプリケーション用として確保される。
一方、記憶領域を確保する設定ではない場合(S54否定)、判定部81は、アプリケーションプログラム用に確保する記憶領域のサイズをゼロとして(S55)、後述のS56の処理へ移行する。
判定部81は、グループ数カウンタN番目のグループのメモリ21に、指定されたサイズとアプリケーションプログラム用に確保するサイズとを加算したサイズの記憶領域を確保できるか否かを判定する(S56)。記憶領域を確保できる場合(S56肯定)、獲得部82は、判定部81により記憶領域を確保できると判定されたグループのメモリ21から指定されたサイズの記憶領域を獲得し(S57)、処理を終了する。
一方、記憶領域を確保できない場合(S56否定)、判定部81は、全てのグループについて記憶領域を確保できるか否かの確認が完了したか否かを判定する(S58)。本実施例では、判定部81は、グループ数カウンタNの値が「3」であるか否かにより、全てのグループについて確認が完了したか否かを判定する。確認が完了していない場合(S58否定)、判定部81は、グループ数カウンタNの値に「1」を加算して(S59)、S52の処理へ移行する。
一方、確認が完了した場合(S58肯定)、判定部81は、トライ回数カウンタMの値が「3」であるか否かを判定する(S60)。トライ回数カウンタMの値が「3」ではない場合(S60否定)、判定部81は、グループ数カウンタNに「0」をセットし、トライ回数カウンタMの値に「1」を加算して(S61)、S52の処理へ移行する。
一方、トライ回数カウンタMの値が「3」である場合(S60肯定)、判定部81は、アプリ用サイズ情報50に記憶された3回分の確認判定を行ったため、記憶領域の獲得を失敗として(S62)、処理を終了する。
このように、情報処理装置10は、OS60が使用するデータを格納する記憶領域の獲得が要求された場合、各ビルディングブロック11のメモリ21をグルーピングした各グループのメモリ21に、アプリケーションプログラム用の空きがあるか否か判定する。情報処理装置10は、アプリケーションプログラム用の空きがあると判定されたグループのメモリから記憶領域を獲得する。これにより、情報処理装置10は、アプリケーションプログラムの処理性能の低下を抑制できる。
また、情報処理装置10では、ビルディングブロック11に備えられたメモリ21は、CPU40に対してそれぞれアクセスレイテンシーの最も低いメモリ21がそれぞれ別のグループとしてグループ分けされる。これにより、情報処理装置10は、アクセスレイテンシーの低いメモリ21毎のグループを構成できる。
また、情報処理装置10は、記憶領域を確保できるグループのメモリ21が無い場合、アプリケーションプログラム用に確保する記憶領域のサイズを減らして判定を再度行う。これにより、情報処理装置10は、記憶領域の空きが少なく、アプリケーションプログラム用に確保する記憶領域を多く確保できない場合でも、アプリケーションプログラム用の記憶領域をより多く確保しつつ、OS60を起動できる。
また、情報処理装置10は、OS60の起動において、記憶領域の獲得が要求される毎に、記憶領域を確保できるか否かを判定する。そして、情報処理装置10は、アプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行った結果、記憶領域を確保できると判定されたグループのメモリ21が無い場合、記憶領域の獲得を中止してOS60の起動を停止する。これにより、情報処理装置10は、アプリケーションプログラム用に確保する記憶領域を確保できない場合、管理者による再設定を行わせることで、アプリケーションプログラム用に記憶領域を確保してOS60を起動させることができる。
また、情報処理装置10は、CPU40を含まないグループについてはアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行う。これにより、情報処理装置10は、CPU40を含まないグループについて、アプリケーションプログラム用の記憶領域が確保されることを抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例では、OS60において記憶領域の獲得の制御を行わせる場合について説明したが、開示の装置はこれに限定されない。例えば、OBPに図5のメモリ管理部64の機能を持たせることで、OBPが記憶領域の獲得・解放の制御を行ってもよい。また、OS60の起動において、OS60が記憶領域の獲得の制御が行えるまで、OBPが記憶領域の獲得の制御を行い、その後、OS60が記憶領域の獲得の制御を行ってもよい。
また、上記の実施例では、記憶領域の獲得を行い際に、アプリ用に残すメモリサイズを確保できない場合、それ以降の記憶領域の獲得においてアプリ用に残すメモリサイズを減らす場合について説明したが、開示の装置はこれに限定されない。例えば、アプリ用に残すメモリサイズを確保できない場合、アプリ用に残すメモリサイズを減らして、再度、起動を最初から行ってもよい。例えば、情報処理装置10は、1回目のアプリ用に残すメモリサイズを確保できない場合、2回目のアプリ用に残すメモリサイズで起動を最初から行う。また、情報処理装置10は、2回目のアプリ用に残すメモリサイズを確保できない場合、3回目のアプリ用に残すメモリサイズで起動を最初から行うものとしてもよい。
また、上記の実施例では、OS60の起動する際に適用した場合について説明したが、開示の装置はこれに限定されない。例えば、起動後にOS60がOS60で使用するデータを格納する記憶領域の獲得する際に適用してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す判定部81および獲得部82の各処理部が適宜統合または分割されてもよい。
10 情報処理装置
11、11a〜11c ビルディングブロック
20 CPUChip
21 メモリ
22 ディスクユニット
50 サイズ情報
51 設定情報
60 OS
61 ハイパーバイザ
65 設定部
81 判定部
82 獲得部

Claims (7)

  1. 各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置であって、
    サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する判定部と、
    前記判定部により記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する獲得部と、
    を有することを特徴とする情報処理装置。
  2. 前記各ノードに備えられたメモリは、前記各ノードのプロセッサに対してそれぞれアクセスレイテンシーの最も低いメモリがそれぞれ別のグループとしてグループ分けされている
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記判定部は、記憶領域を確保できるグループのメモリが無い場合、アプリケーションプログラム用に確保する記憶領域のサイズを減らして判定を再度行う
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記判定部は、オペレーシングシステムの起動において、記憶領域の獲得が要求される毎に、記憶領域を確保できるか否かを判定し、
    前記獲得部は、前記判定部によりアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行った結果、記憶領域を確保できると判定されたグループのメモリが無い場合、記憶領域の獲得を中止し、オペレーシングシステムの起動を停止させる
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記判定部は、プロセッサを含まないグループについてはアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行う
    ことを特徴とする請求項1〜4の何れか1つに記載の情報処理装置。
  6. 各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置に、
    サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定し、
    判定の結果、記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する
    処理を実行させるプログラム。
  7. 各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置における記憶領域獲得方法であって、
    サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定し、
    判定の結果、記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する
    処理を前記プロセッサのいずれかにより実行することを特徴とする記憶領域獲得方法。
JP2013052471A 2013-03-14 2013-03-14 情報処理装置、プログラムおよび記憶領域獲得方法 Active JP5994690B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013052471A JP5994690B2 (ja) 2013-03-14 2013-03-14 情報処理装置、プログラムおよび記憶領域獲得方法
US14/154,306 US20140281343A1 (en) 2013-03-14 2014-01-14 Information processing apparatus, program, and memory area allocation method
EP20140151261 EP2778918A3 (en) 2013-03-14 2014-01-15 Information processing apparatus, program, and memory area allocation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013052471A JP5994690B2 (ja) 2013-03-14 2013-03-14 情報処理装置、プログラムおよび記憶領域獲得方法

Publications (2)

Publication Number Publication Date
JP2014178889A true JP2014178889A (ja) 2014-09-25
JP5994690B2 JP5994690B2 (ja) 2016-09-21

Family

ID=49958280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013052471A Active JP5994690B2 (ja) 2013-03-14 2013-03-14 情報処理装置、プログラムおよび記憶領域獲得方法

Country Status (3)

Country Link
US (1) US20140281343A1 (ja)
EP (1) EP2778918A3 (ja)
JP (1) JP5994690B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6702681B2 (ja) * 2015-10-01 2020-06-03 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
CN107577536A (zh) * 2017-08-31 2018-01-12 广东欧珀移动通信有限公司 应用优化方法及相关产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063525A (ja) * 1996-08-23 1998-03-06 Canon Inc 情報処理装置、情報処理システム及びその制御方法
JP2000285010A (ja) * 1999-03-30 2000-10-13 Japan Research Institute Ltd アプリケーションの動作用メモリ量をチェックするプログラムを記録した媒体
JP2008033877A (ja) * 2006-06-29 2008-02-14 Mitsubishi Electric Corp 情報処理装置及びos起動方法及びプログラム
JP2011118900A (ja) * 2009-11-30 2011-06-16 Internatl Business Mach Corp <Ibm> システムの立ち上げ時間を早めるための方法、装置およびコンピュータ・プログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249802B1 (en) * 1997-09-19 2001-06-19 Silicon Graphics, Inc. Method, system, and computer program product for allocating physical memory in a distributed shared memory network
US6408313B1 (en) * 1998-12-16 2002-06-18 Microsoft Corporation Dynamic memory allocation based on free memory size
US6701421B1 (en) 2000-08-17 2004-03-02 International Business Machines Corporation Application-level memory affinity control
JP2002149495A (ja) * 2000-11-15 2002-05-24 Nec Corp メモリ管理方式とその方法及びこの方法を記録した記録媒体
US6785783B2 (en) * 2000-11-30 2004-08-31 International Business Machines Corporation NUMA system with redundant main memory architecture
US6754788B2 (en) * 2001-03-15 2004-06-22 International Business Machines Corporation Apparatus, method and computer program product for privatizing operating system data
US6760809B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US8041915B1 (en) * 2003-06-11 2011-10-18 Globalfoundries Inc. Faster memory access in non-unified memory access systems
US7363484B2 (en) * 2003-09-15 2008-04-22 Hewlett-Packard Development Company, L.P. Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems
US7149863B1 (en) * 2003-10-08 2006-12-12 Sun Microsystems, Inc. System and method of descriptively specifying memory placement in a computer system
US7461244B2 (en) * 2004-03-18 2008-12-02 Intel Corporation Method and apparatus to support booting despite deficient resources
US20050240748A1 (en) * 2004-04-27 2005-10-27 Yoder Michael E Locality-aware interface for kernal dynamic memory
JP4758794B2 (ja) * 2006-03-16 2011-08-31 富士通株式会社 メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法
US7574562B2 (en) * 2006-07-21 2009-08-11 International Business Machines Corporation Latency-aware thread scheduling in non-uniform cache architecture systems
US7428629B2 (en) * 2006-08-08 2008-09-23 International Business Machines Corporation Memory request / grant daemons in virtual nodes for moving subdivided local memory space from VN to VN in nodes of a massively parallel computer system
US8131986B2 (en) * 2006-09-29 2012-03-06 Lenovo (Singapore) Pte. Ltd. System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems
US7694125B2 (en) * 2006-12-01 2010-04-06 Dell Products, Lp System and method of booting an operating system in an optimal performance state
US8095725B2 (en) * 2007-12-31 2012-01-10 Intel Corporation Device, system, and method of memory allocation
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US8245008B2 (en) * 2009-02-18 2012-08-14 Advanced Micro Devices, Inc. System and method for NUMA-aware heap memory management
US8205070B2 (en) * 2009-09-08 2012-06-19 Apple Inc. Device bootup from a NAND-type non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063525A (ja) * 1996-08-23 1998-03-06 Canon Inc 情報処理装置、情報処理システム及びその制御方法
JP2000285010A (ja) * 1999-03-30 2000-10-13 Japan Research Institute Ltd アプリケーションの動作用メモリ量をチェックするプログラムを記録した媒体
JP2008033877A (ja) * 2006-06-29 2008-02-14 Mitsubishi Electric Corp 情報処理装置及びos起動方法及びプログラム
JP2011118900A (ja) * 2009-11-30 2011-06-16 Internatl Business Mach Corp <Ibm> システムの立ち上げ時間を早めるための方法、装置およびコンピュータ・プログラム

Also Published As

Publication number Publication date
US20140281343A1 (en) 2014-09-18
EP2778918A2 (en) 2014-09-17
JP5994690B2 (ja) 2016-09-21
EP2778918A3 (en) 2015-03-25

Similar Documents

Publication Publication Date Title
US10339047B2 (en) Allocating and configuring persistent memory
CN107690622B9 (zh) 实现硬件加速处理的方法、设备和系统
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
JP6089349B2 (ja) マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム
US10191759B2 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
JP2016508647A5 (ja)
US8793439B2 (en) Accelerating memory operations using virtualization information
JP5667552B2 (ja) 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
JP6111181B2 (ja) 計算機の制御方法及び計算機
US20190050295A1 (en) Managing function level reset in an io virtualization-enabled storage device
JP2016530625A (ja) ロッキング機構を用いた効率的なタスク・スケジューリングのための方法、システム、およびプログラム
JP2010033403A (ja) 計算機システム、仮想計算機システム、計算機起動管理方法、および仮想計算機起動管理方法
JP5994690B2 (ja) 情報処理装置、プログラムおよび記憶領域獲得方法
WO2014063329A1 (zh) 共享闪存的方法、控制器及系统
EP2979170B1 (en) Making memory of compute and expansion blade devices available for use by an operating system
JP2012003510A (ja) 計算機及び転送プログラム
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
KR101587600B1 (ko) Numa 시스템상에서 가상머신간의 통신방법
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
US20230004417A1 (en) Method and apparatus to select assignable device interfaces for virtual device composition
JP6351387B2 (ja) 情報処理装置、プログラムおよび記録媒体
JP5112376B2 (ja) 計算機システム及び管理方法
JP5481508B2 (ja) 計算機、仮想化機構、計算機システム、および仮想計算機の起動管理方法
US20170344452A1 (en) Comprehensive testing of computer hardware configurations
JP2018152125A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160808

R150 Certificate of patent or registration of utility model

Ref document number: 5994690

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150