JP2004227188A - Job swap method, job management device and job management program - Google Patents
Job swap method, job management device and job management program Download PDFInfo
- Publication number
- JP2004227188A JP2004227188A JP2003012833A JP2003012833A JP2004227188A JP 2004227188 A JP2004227188 A JP 2004227188A JP 2003012833 A JP2003012833 A JP 2003012833A JP 2003012833 A JP2003012833 A JP 2003012833A JP 2004227188 A JP2004227188 A JP 2004227188A
- Authority
- JP
- Japan
- Prior art keywords
- job
- swap
- memory
- swapped
- node
- 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.)
- Withdrawn
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ジョブスワップに関し、特に共用メモリ型SMP(Symmetric MultiProcessor) 計算機システムにおいて、緊急度指定されたジョブの要求メモリ量、およびスワップアウトされるジョブのメモリ量に応じ、制御ノード( 以降マスタノードと記す) からジョブを制御するジョブスワップ技術に関するものである。
【0002】
【従来の技術】
計算機システムが処理するデータ量の増加に伴い、処理を高速化するために様々なタイプの並列処理を可能とするマルチプロセッサ計算機システムが利用されるようになってきた。特に、長期気象予測、衝突解析、計算科学などを実行するジョブでは、膨大な計算量が必要となり、プログラム自体がローディングされるメモリ領域も広大であるが、これにも増して入力データや途中経過の計算結果などを展開するための大容量の仮想メモリ空間を備えたマルチプロセッサ計算機システムが要求される。このような計算機システムでは、緊急ジョブが入力されたり、長時間実行待ち状態にあるジョブを実行させるために強制スワップアウトの指示がされると、現在実行中のジョブからスワップアウト対象のジョブが選択されCPUや、メモリなどの資源を一時的に解放し、緊急ジョブや長時間待ち状態であったジョブを起動するジョブスワップ機能を備えている。
【0003】
しかしながら、長期気象予測、衝突解析、計算科学など大容量の仮想メモリ空間を要するジョブがスワップアウトの対象となると、メモリのスワップアウトに要する時間が長くかかるようになり、以下のようなジョブスワップのオーバヘッド低減を目的とした技術が提案されている。
例えば、特開平5−88984号公報にはジョブのスワップアウト時にジョブを管理する管理簿を参照し、ページが主記憶装置上に存在しかつ活性状態であることが分かった場合にはスワップアウトの対象となるページのアドレスを登録簿に登録させ、ページが主記憶装置上に存在するが活性状態でないと分かった場合には管理簿のページアウトの優先順位を上げさせ、登録簿に登録されたページを一括して主記憶装置上から補助記憶装置上に移送することにより、ジョブのスワップアウト時に主記憶装置上に存在しているが最近アクセスされていない非活性なページはスワッピングの対象外としてページアウトの優先順位を上げて主記憶装置上に残しておき、他ジョブからのメモリ要求によるページアウト要求の発生時にLRU(Least Recently Used)制御による仮想記憶システムの主記憶管理プログラムのページリプレースメントアルゴリズムによって優先的にページアウトするようにした仮想記憶システムにおけるスワッピング制御技術が開示されている。
【0004】
また、特開2000−200219号公報には、タスクのメモリ領域確保要求に対応するスワップ管理テーブルの作成・管理を行い、当該メモリ領域確保要求に対するメモリ領域を確保する、スワップアウト制御手段は、スワップアウトの必要時に、ページ単位でのスワップアウトを行うべきかタスク単位での一括したスワップアウトを行うべきかを判断し、その判断に基づいてスワップアウトの制御・実行(スワップ管理テーブルへの情報の設定を含む)を行い、スワップアウト対象限定手段は、タスク単位での一括したスワップアウトが行われる場合に、スワップ管理テーブルに基づき、「更新されておらずコピーされているページ」のスワップアウトを行わないように制御することにより、ページ単位でのスワップアウトとタスク単位でのスワップアウトとを組み合わせて、仮想メモリシステムでの効率的なメモリ管理を可能にする技術が開示されている。
【0005】
また、特開平11−24950号公報には、並列ジョブをそれぞれ実行させる、相互に通信路を持ち、外部記憶装置を持ったPE(プロセッサエレメント)および外部記憶装置を持たないPEと、並列ジョブの実行指示に対応して、当該並列ジョブが実行しようとするPE上の資源が不足し、かつ優先度の低いジョブが実行中であった場合に、優先度の低いジョブの実行中の全てのPEに一時的に実行停止させて資源をそれぞれ異なる外部記憶装置にスワップさせる指示を通知するプロセスと、通知を受けた各PE上で指示されたジョブを一時的に実行停止して指示された外部記憶装置に資源を書き出すプロセスとを備えるように構成することにより、優先度の高い並列ジョブをより早く実行できるように、スワップする実行中の並列ジョブの資源をそれぞれ異なる複数の外部記憶装置上に効率良好に高速に書き出す技術が開示されている。
【0006】
また、特開平8−16410号公報には、関連する技術として使用PE台数が制限台数未満のジョブを実行するクラス、および実行すべきジョブがまだ到着していないクラスでは未使用のPEが発生するが、後続のジョブや後に到着するジョブに対するPEの割り当てを確実に行うためには未使用のPEを他のクラスのジョブに割り当てることができないため、PEの有効利用を目的として、複数のジョブキューにより実行待ちジョブおよび実行中ジョブを管理し、各ジョブのシステム資源要求量、待ち時間等に応じて所属キュー(ジョブが投入/実行されるキュー)およびキュー内優先度を設定する技術が開示されている。
【0007】
この技術を利用すると、所属キューおよびキュー内優先度は動的に見直され、これらに従ってジョブのスケジューリングが行われ、実行中の非優先実行ジョブはスワップアウトの対象となり、スワップアウトされたプロセッサ要素は実行待ちの優先実行ジョブを起動するために割り当てられる。
【0008】
【特許文献1】
特開平5−88984号公報 (第2−3頁)
【0009】
【特許文献2】
特開2000−200219号公報 (第2−4頁)
【0010】
【特許文献3】
特開平11−24950号公報 (第2−3頁)
【0011】
【特許文献4】
特開平8−16410号公報 (第4−5頁、第10頁)
【0012】
【発明が解決しようとする課題】
特開平5−88984号公報で開示されている技術では、メモリのスワップアウト時にまず活性メモリだけをスワップアウトし、非活性メモリについては、ページアウトの優先順位を上げて主記憶上に残しておき、他のジョブからメモリ要求によりページアウト要求発生時にページアウトで対処することによりスワッピング処理のオーバヘッドを削減するものである。しかしながら、スワップアウト対象のジョブの進行状況によって、必ずしもスワップアウト対象ジョブが有するメモリの非活性メモリが占める割合が多いとは限らず、スワップアウトするメモリ量が緊急度指定ジョブが必要とするメモリ量以上となる場合が往々にしてある。
【0013】
特開2000−20019号公報で開示されている技術では、スワップアウトの必要時に、従来はページ単位でのみ行っていたスワップアウトを、ページ単位でのスワップアウトを行うべきかタスク単位での一括したスワップアウトを行うべきかを判断し、その判断に基づいてスワップアウトの制御を行うようにしたものであり、スワップアウト対象のメモリ量を考慮してスワッピング処理のオーバヘッドを削減するものではない。そのため、緊急度指定されたジョブが要求するメモリ量以上のメモリがスワップアウトの対象となっていた。
【0014】
特開平11−24950号公報で開示されている技術では、スワップアウトする資源をそれぞれ複数の外部記憶装置上に効率よく高速に書き出す技術であり、特開2000−20019号公報で開示されている技術と同様に、スワップアウト対象のメモリ量を考慮してスワッピング処理のオーバヘッドを削減するものではない。そのため、緊急度指定されたジョブが要求するメモリ量以上のメモリがスワップアウトの対象となっていた。
【0015】
また、特開平8−16410号公報で開示されている技術を利用した場合、複数のPEのなかのそれぞれのPEごと(ノード単位ごと)のメモリのスワップを行っているが、ノード内のメモリ量については、スワップアウト対象のメモリ量を考慮したものではなく、緊急度指定されたジョブが要求するメモリ量以上のメモリがスワップアウトの対象となっていた。
【0016】
以下に、図14、15に基づいて特開平8−16410号公報で開示されている技術を利用した場合の問題点について具体的に述べる。図14では、スワップ優先度20のジョブ0がノード0から2を使用し、それぞれのノードで20MBのメモリを占有し、スワップ優先度40のジョブ1がノード0と1を使用し、それぞれのノードで15MBのメモリを占有しており、ノード0の空きメモリは25MB、ノード1の空きメモリは25MBである。ここでスワップ優先度とは、優先的に各ノートの資源を利用するための優先度を示すものであり、数値の大きいものほど優先度が高いことを示す。ここで、緊急度指定されたスワップ優先度30の、ノード0から2を使用し、それぞれのノードで30MBのメモリを要求するジョブが投入された例を考えてみる。
【0017】
投入された緊急度指定されたジョブはスワップ優先度が30であるため、それよりスワップ優先度の低いジョブ0がスワップアウトの対象として選択される。それぞれのノードでスワップアウトするメモリ量は実行中ジョブのノード単位であるため、ノード0では20MB、ノード1では20MB、ノード2では0MBとなる。しかしながら、緊急度指定されたジョブが必要とするメモリ量は30MBのためノード0,1のスワップアウトするメモリ量は、空きメモリ量がそれぞれ25MBあるので、それぞれ5MBをスワップアウトすればよいところ20MBと必要以上のメモリがスワップアウトされている。
【0018】
次に図15は、図14に対し、前記の緊急ジョブ実行するために、ジョブ0がスワップアウトされた状況が示してある。スワップアウトしたジョブの要求メモリ量よりスワップアウト済み通算メモリ量が少ない場合、スワップアウトされていないメモリ(ノード2にあるF1の部分)が計算機システム上に残っている。このメモリは他のジョブが使用することができないため、資源の有効利用を阻害する原因になっており、従来技術ではこれを解決していない。
【0019】
本発明は、上記のような事情に鑑みて提案されたものであり、ジョブスワップに要するオーバヘッドを削減、およびメモリ資源の有効利用を図ることを目的としている。
【0020】
【課題を解決するための手段】
図1は、実施の形態1の全体構成図を示すものである。本発明のジョブ管理プログラム11はジョブ管理装置1としてのコンピュータ上で実行するプログラムであり、部分的にスワップアウトされたジョブのスワップ優先度を実行中ジョブより低く変更することにより、部分的にスワップアウトされたジョブの方が実行中ジョブよりスワップアウトする順位を高める優先度変更手段111と、スワップ優先度の低いものから順に部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するジョブ選択手段112と、緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するメモリ量算出手段113と、ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするスワップ手段114とを有することにより、緊急度指定されたジョブが実行するために必要最低限のメモリ量のみをスワップアウトの対象とすることが可能となり、ジョブスワップのオーバヘッドを最小限に抑えることができる。また、部分的にスワップアウトされたジョブを優先的に再度スワップアウトすることにより、メモリ資源の有効利用を図ることが可能となる。
【0021】
なお、ジョブ管理プログラム11に、各ノードの空きメモリを監視するメモリ監視手段115を備え、各ノードの空きメモリ量が所定の値より小さくなったことを検出すると、前記部分的にスワップアウトされたジョブのスワップアウトされていないメモリを、所定のルールに基づいてスワップ手段114を呼び出しスワップアウトすることにより、更にメモリ資源の有効利用を図ることが可能となる。
【0022】
更に、優先度変更手段111に、部分的にスワップアウトされたジョブのスワップ優先度を、すべてのメモリがスワップアウトされたジョブより高く変更することにより、部分的にスワップアウトされたジョブの方がすべてのメモリがスワップアウトされたジョブよりスワップインする順位を高める機能を持たせ、ジョブ選択手段112に、スワップ優先度の高い順にスワップアウトされたジョブからスワップイン対象ジョブを選択する機能を持たせ、スワップ手段114に、ノード毎に指定されたメモリ量に基づいて前記スワップイン対象ジョブをスワップインする機能を持たすことにより、使用できないメモリが発生する時間を短縮することができ、更にメモリ資源の有効利用を図ることが可能となる。
【0023】
【発明の実施の形態】
図1は本発明の実施の形態1の全体構成図が示してある。本発明のジョブ管理プログラム11はジョブ管理装置1として振る舞うコンピュータ上で実行するプログラムである。優先度変更手段111は、部分的にスワップアウトされたジョブの方が実行中ジョブよりスワップアウトする順位を高めるために、部分的にスワップアウトされたジョブのスワップ優先度を実行中ジョブより低く変更したり、部分的にスワップアウトされたジョブの方がすべてのメモリがスワップアウトされたジョブよりスワップインする順位を高めるために、部分的にスワップアウトされたジョブのスワップ優先度を、すべてのメモリがスワップアウトされたジョブより高く変更する。
【0024】
ジョブ選択手段112は、部分的にスワップアウトされたジョブ、および実行中ジョブからスワップ優先度の高いものから順にスワップアウト対象ジョブを選択したり、スワップ優先度の低い順にスワップアウトされたジョブからスワップイン対象ジョブを選択し、メモリ量算出手段113は、スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出する。
【0025】
スワップ手段114は、ノード毎に指定されたメモリ量に基づいてスワップイン・アウト対象ジョブを部分的にスワップイン・アウトし、メモリ量監視手段115は、各ノードの空きメモリ量を監視し、空きメモリ量が所定の条件を満たすとスワップアウトされていないメモリをスワップアウトしたり、スワップインジョブがメモリ不足によりスワップインできない場合にスワップアウトされていないメモリをスワップアウトする。
【0026】
ジョブメモリ管理テーブル12は、マスターノード1のメモリ上に存在し、ジョブ毎にジョブスワップのためにメモリを管理する。ノードメモリ管理テーブル13は、ノード毎に、空きメモリを管理するためのテーブルである。ジョブ実行装置(ジョブ実行ノード ノード0)2、ジョブ実行装置(ジョブ実行ノード ノード1)3は利用者のジョブを実行させる計算機であり、ジョブ管理装置(マスタノード)とは、ノード間接続装置で、互いに接続されている。
【0027】
図2は、ジョブメモリ管理テーブル例のデータ形式が示してある。このテーブルは、ジョブ内のプロセス毎に管理するものである。管理する内容は以下の通りである。ジョブ毎に管理するものには、スワップ優先度とスワップ状態域がある。スワップ優先度はノードの資源(メモリ、CPU)使用の優先度を設定するものである。緊急度指定のジョブのスワップ優先度が実行中ジョブのスワップ優先度より大きい場合に実行中ジョブのスワップアウトが発生する。また、スワップインするジョブの優先順位にも使用される。また、スワップ状態域は、スワップアウトするジョブのメモリがすべてスワップアウトしているか、部分的にスワップアウトしているかを判断するフラグを設定している。
【0028】
プロセス毎に管理するものには、ノード番号、要求メモリ量、今回スワップアウトするメモリ量、スワップアウト済み通算メモリ量がある。ノード番号は、プロセスが実行するノード番号である。要求メモリ量は、プロセスごとに要求されるメモリ量であり、プロセス間で同一である。今回スワップアウトするメモリ量は、スワップアウトされるジョブのメモリ量を設定するものである。プロセスごとにスワップアウトされるメモリ量は異なる。スワップアウト済み通算メモリ量は、スワップアウトしたジョブのメモリ量を設定するものである。
【0029】
緊急度指定されたジョブの各プロセスが必要とするメモリ量から、スワップアウトするジョブのメモリ量をページ単位で計算し、緊急度指定されたジョブが実行するために必要な最小限のスワップアウトするメモリ量をプロセス毎にページ単位で設定する。
図3は、ノード毎に、空きメモリを管理するノードメモリ管理テーブル例のデータ形式が示してある。ノード番号には、ノードを識別する番号が、メモリ実装量は、ノードに実装されたメモリ量が、空きメモリ量には、現時点の空きメモリの値が設定される。
【0030】
図4は、実施の形態1における部分スワップアウト処理の流れを示すフローチャートである。実行待ちジョブに緊急度指定がされると(S401)、スワップアウト状態、スワップ優先度に基づいてスワップアウト対象のジョブリストを作成する(S402)。詳細については、S408からS412で説明する。
次に、緊急度指定のジョブが要求するメモリ量に基づいて、スワップ対象ジョブリストの上位のものからスワップアウトするメモリ量をノード毎に算出し(S403)、緊急度指定のジョブが動作するために必要最低限のメモリ量をスワップアウトするメモリ量として設定する(S404)。詳細については、S413からS416で説明する。
【0031】
次に、緊急度指定のジョブが実行できるメモリ量に達しているかどうか判定し(S406)、未だ達してない場合にはスワップアウト対象ジョブリストにある次のジョブのジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定し(S405)、S403の処理に戻る。達している場合には、選択したジョブのスワップアウト処理を行う(S407)。スワップアウト処理自体は、従来技術であるため処理の詳細については省略する。
【0032】
スワップアウト対象ジョブリストの作成は、スワップ優先度が緊急度指定のジョブより低い実行中ジョブ、および部分的にスワップアウトされているジョブを対象にして行い、まず取り出したジョブのジョブメモリ管理テーブルを参照し、スワップ状態域のフラグが部分スワップアウト中のジョブかどうかを判定する(S408)。部分スワップアウト中のジョブであれば、スワップアウト優先順位を上げるためにスワップ優先度を実行中ジョブより小さい値に変更する(S410)。
【0033】
そうでない場合には、実行中ジョブのスワップ優先度が緊急度指定のジョブより小さいかどうかを判定する(S411)。小さい場合には他の実行中ジョブのスワップ優先度と比較して、小さい場合はスワップ優先順位を上げ(S412)、次のジョブのチェックを行うために次のジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定して(S409)、S408に戻る。そうでない場合には次のジョブのチェックを行うために次のジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定し(S409)、S408に戻る。すべての実行中ジョブキュー、およびスワットアウトジョブキューにあるジョブのチェックが完了したらスワップアウト対象ジョブリストの先頭ジョブのジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定しS403へ進む。
【0034】
緊急度指定のジョブが要求するメモリ量に基づいて、スワップアウト対象ジョブリストの上位のものからスワップアウトするメモリ量をノード毎に算出するために、まず緊急度指定のジョブの割り当てノードのメモリ量は足りているかどうかを、ノードメモリ管理テーブルの空きメモリ量を参照して判定する(S413)。足りていない場合は、ノード毎に必要なメモリ量を算出し(S415)、その値をジョブメモリ管理テーブルの「今回スワップアウトするメモリ量」に設定し(S416)し、次のノードのチェックを行うために次のノードメモリ管理テーブルのアドレスをノードメモリ管理テーブルポインタに設定し(S414)、S413に戻る。
【0035】
足りている場合は、次のノードのチェックを行うために次のノードメモリ管理テーブルのアドレスをノードメモリ管理テーブルポインタに設定し(S414)、S413に戻る。なお、スワップアウトするメモリ量は、緊急度指定ジョブの要求メモリ量からノードの空きメモリ量を差し引いた値である。すべてのノードのチェックが完了すると、S406へ進む。
【0036】
図5に示すスワップアウト前のジョブメモリ管理テーブル例と、図6に示すスワップアウト後のジョブメモリ管理テーブル例を元に、前述したスワップ処理の具体例を説明する。
現在、スワップ優先度20の実行中ジョブが1ジョブあり、ノード0の空きメモリは0MB、ノード1の空きメモリ量は48MBと仮定する。ここへ1プロセス当たりの要求メモリ量が32MB、プロセス数が3、スワップ優先度が30の緊急度指定ジョブが投入された場合の、実行中ジョブがスワップアウトされる前のジョブメモリ管理テーブル例が図5に示してある。また、実行中ジョブがスワップアウトされた後のジョブメモリ管理テーブル例が図6に示してある。緊急度指定のジョブのプロセス0のノード番号は0、要求メモリは32MBで、ノード0の空きメモリは0であるため、今回スワップアウトするメモリ量は32MBとなる。緊急度指定ジョブのプロセス1と2のノード番号はともに1であり、要求メモリ量はそれぞれ32MBで、ノード1の空きメモリ量は48MBであるため、プロセス1と2の不足メモリはトータルで16MBとなる。プロセス1から16MBをスワップアウトする必要があるが、プロセス2ではスワップアウトする必要はない。
【0037】
実行中ジョブがスワップアウトされた後のジョブメモリ管理テーブル例が図6に示してある。スワップアウトの結果、プロセス0のスワップアウト済通算メモリ量は32MB、プロセス1のそれは16MBとなり、プロセス2のそれは0MBとなる。また、ジョブのスワップ状態域には、スワップアウト後では、メモリ部分スワップ中と変更される。
【0038】
図7は、実施の形態1における自動スワップアウト処理の流れを示すフローチャートである。各ノードの空きメモリ量を、例えばタイマ監視により定期的に監視し、空きメモリ量が所定の量より少なくなると、スワップアウトされていないメモリを自動的にスワップアウトして(S701)メモリ資源の有効利用を図る。空きメモリが所定の値より少なくなっているかどうかは、例えばノードの空きメモリ量がノードに実装されたメモリ量の10分の1以下になったかどうかで判定する(S705)。
【0039】
自動的にスワップアウトするメモリ量は、例えば対象ノードでスワップアウトされていないメモリを空きメモリ量が2分の1になるまでなどとして、スワップアウトを行う(S707)。これをすべてのノードに対して行うため、ノードメモリ管理テーブルポインタに次のノードメモリ管理テーブルのアドレスを設定し(S706)、S705に戻る。すべてのノードのチェックが完了すると、S702に進む。
【0040】
次にスワップ優先度の高い順にスワップインジョブを選択する(S702)。選択したスワップインジョブがメモリ量の不足により、スワップインできない場合、スワップアウトされていないメモリを自動的にスワップアウトする(S703)。詳細については、S708からS712で説明する。スワップイン用のメモリが確保できたら、選択したジョブのスワップインを行う(S704)。スワップイン処理自体については、従来技術であるため処理の詳細については省略する。
【0041】
S703の詳細について説明する。スワップインジョブの要求メモリ量がノードに空いていないかどうか、ノードメモリ管理テーブルを参照して判定する(S708)。空いている場合には次のノードのチェックを行うために次のノードメモリ管理テーブルのアドレスをノードメモリ管理テーブルポインタに設定し(S709)、S708に戻る。すべてのノードに対するチェックを行うと、S704へ進む。
【0042】
空いていない場合には、ノード毎にスワップインに必要なメモリ量を要求メモリ量からノードの空きメモリ量を差し引いて算出し(S710)、スワップアウトしていないメモリ量の大きいジョブを選択し(S711)、その値をジョブメモリ管理テーブルの「今回スワップアウトするメモリ量」に設定しスワップアウト処理を行い(S712)、次のノードのチェックを行うために、次のノードメモリ管理テーブルのアドレスをノードメモリ管理テーブルポインタに設定し(S709)、S708に戻る。なお、スワップアウト処理自体は従来技術であるため、処理の詳細については省略する。
【0043】
図8は、ノードの空きメモリを監視することによる自動スワップアウト前のノードメモリ管理テーブル例が示してある。ノード0の空きメモリ量が実装メモリ量の10分の1以下になっているため、ノード0のスワップアウトされていないメモリ量を実装メモリ量の2分の1以上になるまでを自動スワップアウトが行われる。この例では以下の式で示すように108MBのメモリ量が自動スワップアウトの対象となる。
(256MB÷2)− 20MB = 108MB
なお、ノード1は空きメモリ量が実装メモリ量の10分の1より大きいため、自動スワップアウトの対象とはならない。
【0044】
図9は、ノードの空きメモリを監視することによる自動スワップアウト後のノードメモリ管理テーブル例が示してある。自動スワップアウトにより、ノード0の空きメモリ量が128MBになる。
図10は、スワップインジョブの要求メモリ量に基づく自動スワップ前のジョブメモリ管理テーブル例が示してある。
【0045】
ノード0の空きメモリ量が64、ノード1の空きメモリ量が56MBであるときに、スワップインジョブの1プロセスあたりの要求メモリ量が32MB、プロセス数が3 (ジョブあたり32× 3 = 96MB)である場合、スワップインジョブのメモリ量が不足するため、スワップメモリ量のうちノード毎にプロセス単位でスワップアウトするメモリ量を算出する。
【0046】
a) ノード0を使用するプロセス0の今回スワップアウトするメモリ量は
要求メモリ量(32MB)−ノード0の空きメモリ量(64MB)=スワップアウトするメモリ量(0MB )
この場合、スワップアウトするメモリ量が0となるためスワップアウトしない。
【0047】
b) ノード1を使用するプロセスの今回スワップアウトするメモリ量は
要求メモリ量(32MB×2 )−ノード1の空きメモリ量(56MB)= 8MB
となり、プロセス1の今回スワップアウトするメモリ量は8MB となる。また、
プロセス2の今回スワップアウトするメモリ量は0MBとなる。
図11は、スワップインジョブの要求メモリ量に基づく自動スワップ後のジョブメモリ管理テーブル例が示してある。プロセス1は8MBがスワップアウト済み通算メモリ量に加算され、24MBになる。ジョブ全体ではメモリ量が部分スワップアウト中であるため、スワップ状態域はメモリ部分スワップ中のままである。
【0048】
図12は、実施の形態1における部分スワップイン処理の流れを示すフローチャートである。実行中ジョブが終了するなどして計算機システムに資源が開放されると、スワップアウトされているジョブのスワップインが可能となる(S121)ため、スワップアウト中のジョブをスワップ優先度順に並べる(S122)。
【0049】
次に、スワップ優先度の一番高いジョブに対して、他にスワップ優先度が同じジョブがあるかどうか判定し(S123)、なければスワップ優先度の一番高かったジョブをスワップインする(S125)。他にスワップ優先度が同じジョブがある場合には、S127からS1211で示すようにスワップアウトされていないメモリ量に応じてスワップインするジョブを選択する(S124)。スワップイン処理自体は従来技術であるため、処理の詳細は省略する。
【0050】
スワップアウトされていないメモリ量に応じてスワップインするジョブを選択するために、まずジョブメモリ管理テーブルを参照し、スワップ状態域のフラグはメモリ部分スワップ中かどうか判定する(S127)。メモリ部分スワップ中でない場合は、次のスワップアウトジョブのジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定して(S126)、S127へ戻る。
【0051】
メモリ部分スワップ中の場合は、スワップ状態域のフラグがメモリ全スワップ中のジョブよりスワップイン優先度を上げるために、スワップ優先度をメモリ全スワップ中のジョブより高くなるように変更する(S128)。次に、スワップアウトされていないメモリ量を、ジョブの要求メモリ量からスワップアウト済み通算メモリを差し引くことで算出する(S129)。次に、算出したスワップアウトされていないメモリ量が他のスワップアウトジョブと比較して(S1210)、小さい場合は次のスワップアウトジョブのジョブメモリ管理テーブルのアドレスをジョブメモリ管理テーブルポインタに設定して(S126)、S127へ戻る(S126)。また、大きい場合には、さらにスワップイン優先順位が上がるように、スワップ優先度を現在の値より大きな値に変更する(S1211)。
【0052】
このようにスワップ優先度を変更すると、図13で示すように、部分的にスワップアウトされ、かつスワップアウトしていないメモリ量が多いものほど、スワップインする順位が上がり、メモリ資源の有効利用を図ることが可能となる。
(付記1) 共用メモリ型SMP計算機システムのジョブスワップ方法であって、部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するステップと、緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するステップと、ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするステップとを有することを特徴とするジョブスワップ方法。
【0053】
(付記2) 各ノードの空きメモリ量が所定の条件を満たすと、前記部分的にスワップアウトされたジョブのスワップアウトされていないメモリを所定のルールに基づいてスワップアウトする付記1記載のジョブスワップ方法。
(付記3)スワップインジョブの要求するメモリ量が空きメモリ量より大きいことを検出すると、前記部分的にスワップアウトされたジョブのスワップアウトされていないメモリを所定のルールに基づいてスワップアウトする付記1記載のジョブスワップ方法。
【0054】
(付記4) 共用メモリ型SMP計算機システムのジョブスワップ方法であって、部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、スワップ優先度に基づいてスワップアウトされたジョブからスワップイン対象ジョブを選択するステップと、ノード毎に指定されたメモリ量に基づいて前記スワップイン対象ジョブをスワップインするステップと
を有することを特徴とするジョブスワップ方法。
【0055】
(付記5) 部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更する優先度変更手段と、スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するジョブ選択手段と、緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するメモリ量算出手段と、ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするスワップ手段とを有することを特徴とするジョブ管理装置。
【0056】
(付記6) 部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更する優先度変更手段と、スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するジョブ選択手段と、緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するメモリ量算出手段と、ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするスワップ手段としてコンピュータを機能させるジョブ管理プログラム。
【0057】
(付記7) 部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、スワップ優先度に基づいてスワップアウトされたジョブからスワップイン対象ジョブを選択する優先度変更手段と、ノード毎に指定されたメモリ量に基づいて前記スワップイン対象ジョブをスワップインするスワップ手段とを有することを特徴とするジョブ管理装置。
【0058】
(付記8) 部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、スワップ優先度に基づいてスワップアウトされたジョブからスワップイン対象ジョブを選択する優先度変更手段と、ノード毎に指定されたメモリ量に基づいて前記スワップイン対象ジョブをスワップインするスワップ手段としてコンピュータを機能させるジョブ管理プログラム。
【0059】
【発明の効果】
本発明は、単一ノード、またはネットワークで複数ノードを接続した共用メモリ型SMP計算機システムにおいて、ジョブスワップに要するオーバヘッドを削減、およびメモリ資源の有効利用を図ることが可能となる。
【図面の簡単な説明】
【図1】実施の形態1の全体構成図
【図2】ジョブメモリ管理テーブル例
【図3】ノードメモリ管理テーブル例
【図4】実施の形態1における部分スワップアウト処理
【図5】スワップアウト前のジョブメモリ管理テーブル例
【図6】スワップアウト後のジョブメモリ管理テーブル
【図7】実施の形態1における自動スワップアウト処理
【図8】自動スワップアウト前のノードメモリ管理テーブル例
【図9】自動スワップアウト後のノードメモリ管理テーブル例
【図10】自動スワップアウト前のジョブメモリ管理テーブル例
【図11】自動スワップアウト後のジョブメモリ管理テーブル例
【図12】実施の形態1における部分スワップイン処理
【図13】スワップイン対象ジョブリスト例
【図14】従来技術におけるスワップアウト時のオーバヘッド削減例
【図15】従来技術における資源が有効利用されない例
【符号の説明】
1 ジョブ管理装置(マスタノード)
2 ジョブ実行装置(ジョブ実行ノード ノード0)
3 ジョブ実行装置(ジョブ実行ノード ノード1)
4 ノード間接続装置
11 ジョブ管理プログラム
12 ジョブメモリ管理テーブル
13 ノードメモリ管理テーブル
111 優先度変更手段
112 ジョブ選択手段
113 メモリ量算出手段
114 スワップ手段
115 メモリ量監視手段[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a job swap, and in particular, in a shared memory type SMP (Symmetric MultiProcessor) computer system, a control node (hereinafter referred to as a master node) according to a required memory amount of a job whose urgency is designated and a memory amount of a job to be swapped out. The present invention relates to a job swap technology for controlling a job from.
[0002]
[Prior art]
With an increase in the amount of data processed by the computer system, a multiprocessor computer system that enables various types of parallel processing has been used to speed up the processing. In particular, jobs that perform long-term weather forecasting, collision analysis, computational science, etc. require a huge amount of calculation, and the memory area in which the program itself is loaded is very large. There is a demand for a multiprocessor computer system having a large-capacity virtual memory space for expanding the calculation results and the like. In such a computer system, when an emergency job is input or a forced swapout instruction is issued to execute a job that has been waiting for a long time, the job to be swapped out is selected from the currently running jobs. A job swap function is provided for temporarily releasing resources such as a CPU and a memory, and for activating an urgent job or a job that has been in a long wait state.
[0003]
However, if jobs requiring a large amount of virtual memory space, such as long-term weather forecasts, collision analysis, and computational science, are subject to swap-out, the time required for memory swap-out becomes longer, and the following Techniques for reducing overhead have been proposed.
For example, Japanese Unexamined Patent Publication No. Hei 5-88984 refers to a management book for managing jobs at the time of swapping out a job, and if it is found that the page exists in the main storage device and is in an active state, the swap-out is performed. The address of the target page is registered in the directory, and if it is found that the page exists in the main storage device but is not active, the priority of the page out of the management list is increased, and the page is registered in the directory. By inadvertently transferring pages from main storage to auxiliary storage, inactive pages that are present in main storage at the time of job swap-out but have not been accessed recently are excluded from swapping. The page-out priority is raised and left in the main storage device, and when a page-out request occurs due to a memory request from another job, an LRU (Leas) Recently Used) control swapping control techniques in a virtual storage system which is adapted to preferentially paged out by the page replacement algorithm of the main memory management program of the virtual storage system is disclosed by.
[0004]
Japanese Patent Application Laid-Open No. 2000-200199 discloses a swap-out control unit that creates and manages a swap management table corresponding to a task memory area reservation request and reserves a memory area in response to the memory area reservation request. When it is necessary to perform swap-out on a page-by-page basis or on a task-by-task basis when necessary, control and execute the swap-out (based on the information stored in the swap management table). Setting), the swap-out target limiting means performs a swap-out of “pages that have not been updated and copied” based on the swap management table, when batch swap-out is performed for each task. By controlling not to do this, swap out by page unit and task unit By combining a swapping-out, technology that enables efficient memory management in a virtual memory system is disclosed.
[0005]
Japanese Patent Application Laid-Open No. H11-24950 discloses a PE (processor element) having an external storage device, a PE having no external storage device, a PE having no external storage device, and a PE for executing parallel jobs. In response to the execution instruction, if the resources on the PEs to be executed by the parallel job are insufficient and a low-priority job is being executed, all the PEs that are executing the low-priority job are executed. A process for notifying an instruction to temporarily suspend execution of resources and swap resources to different external storage devices, and a process for temporarily stopping execution of a designated job on each of the notified PEs and instructing the external storage device to execute the job. A running parallel job to be swapped so that a higher priority parallel job can be executed faster by configuring the device to have a process of writing resources to the device. Efficiency satisfactorily write fast technique is disclosed in a plurality of different external storage device on the respective resources.
[0006]
Japanese Patent Application Laid-Open No. 8-16410 discloses, as a related technique, unused PEs are generated in a class that executes a job in which the number of used PEs is less than a limited number and in a class in which a job to be executed has not yet arrived. However, since it is not possible to allocate unused PEs to other classes of jobs in order to reliably allocate PEs to subsequent jobs and jobs arriving later, multiple job queues are used for the purpose of effective use of PEs. A technique for managing a job waiting to be executed and a job being executed, and setting a belonging queue (a queue in which a job is input / executed) and a priority in the queue according to a system resource request amount, a waiting time, and the like of each job. ing.
[0007]
With this technology, the assigned queue and the priority in the queue are dynamically reviewed, jobs are scheduled according to these, and the non-priority execution jobs that are being executed are subject to swapout, and the processor elements that have been swapped out are replaced. Allocated to start a priority execution job waiting to be executed.
[0008]
[Patent Document 1]
JP-A-5-88984 (pages 2-3)
[0009]
[Patent Document 2]
Japanese Patent Application Laid-Open No. 2000-200199 (pages 2-4)
[0010]
[Patent Document 3]
JP-A-11-24950 (pages 2-3)
[0011]
[Patent Document 4]
JP-A-8-16410 (pages 4-5 and 10)
[0012]
[Problems to be solved by the invention]
According to the technique disclosed in Japanese Patent Application Laid-Open No. 5-88984, only the active memory is swapped out at the time of swapping out the memory, and the inactive memory is left in the main memory by increasing the priority of page out. In addition, when a page-out request is generated by a memory request from another job, the overhead of the swapping process is reduced by coping with the page-out request. However, depending on the progress of the job to be swapped out, the ratio of the inactive memory to the memory of the job to be swapped out is not always large, and the amount of memory to be swapped out is the amount of memory required by the urgency designated job. This is often the case.
[0013]
According to the technology disclosed in Japanese Patent Application Laid-Open No. 2000-20019, when swap-out is necessary, swap-out which has been performed only in units of pages in the past is swapped in units of pages. It is determined whether or not to perform swap-out, and the swap-out is controlled based on the determination, but it does not reduce the overhead of the swapping process in consideration of the amount of memory to be swapped out. For this reason, a memory larger than the amount of memory required by the job with the specified urgency is subject to swap-out.
[0014]
The technique disclosed in Japanese Patent Application Laid-Open No. H11-24950 is a technique for efficiently and quickly writing resources to be swapped out to a plurality of external storage devices, and the technique disclosed in Japanese Patent Application Laid-Open No. 2000-200019. Similarly to the above, it does not reduce the overhead of the swapping process in consideration of the amount of memory to be swapped out. For this reason, a memory larger than the amount of memory required by the job with the specified urgency is subject to swap-out.
[0015]
In addition, when the technology disclosed in Japanese Patent Application Laid-Open No. 8-16410 is used, the memory is swapped for each PE (each node) among a plurality of PEs. However, the swap-out target is not taken into account in consideration of the amount of memory to be swapped out, and a memory larger than the amount of memory required by the job specified in the urgency level is to be swapped out.
[0016]
Hereinafter, the problems in the case of using the technology disclosed in Japanese Patent Application Laid-Open No. 8-16410 will be specifically described with reference to FIGS. In FIG. 14, job 0 of swap priority 20 uses nodes 0 to 2 and occupies 20 MB of memory in each node, job 1 of swap priority 40 uses nodes 0 and 1 and each node Occupies 15 MB of memory, the free memory of node 0 is 25 MB, and the free memory of node 1 is 25 MB. Here, the swap priority indicates a priority for preferentially using the resources of each note, and the higher the numerical value, the higher the priority. Here, consider an example in which nodes 0 to 2 of the swap priority 30 designated by the degree of urgency are used, and a job requesting a memory of 30 MB in each node is input.
[0017]
Since the submitted job with the specified urgency has a swap priority of 30, the job 0 having a lower swap priority than that is selected as a swap-out target. Since the amount of memory to be swapped out in each node is in the unit of the node of the job being executed, it is 20 MB for node 0, 20 MB for node 1, and 0 MB for node 2. However, since the amount of memory required by the job specified in the urgency level is 30 MB, the amount of memory to be swapped out of the nodes 0 and 1 has 25 MB of free memory, so that it is sufficient to swap out 5 MB each to 20 MB. More memory is swapped out than necessary.
[0018]
Next, FIG. 15 shows a situation in which job 0 has been swapped out in order to execute the above-mentioned emergency job with respect to FIG. If the total memory size of the swapped-out job is smaller than the required memory size of the swapped-out job, the memory that has not been swapped out (the portion of F1 in the node 2) remains on the computer system. Since this memory cannot be used by other jobs, it is a cause of hindering the effective use of resources, and the prior art has not solved this.
[0019]
The present invention has been proposed in view of the above circumstances, and has as its object to reduce overhead required for job swapping and to effectively use memory resources.
[0020]
[Means for Solving the Problems]
FIG. 1 shows an overall configuration diagram of the first embodiment. The job management program 11 of the present invention is a program to be executed on a computer as the job management apparatus 1, and by partially changing the swap priority of a job that has been swapped out to be lower than that of the running job, the job management program 11 is partially swapped. Priority changing means 111 for increasing the order in which out-printed jobs are swapped out of running jobs, jobs partially swapped out in the order of lower swap priority, and jobs to be swapped out of running jobs , A memory
[0021]
The job management program 11 is provided with a memory monitoring means 115 for monitoring the free memory of each node, and when it is detected that the free memory amount of each node becomes smaller than a predetermined value, the partial swap-out is performed. By calling the swap means 114 based on a predetermined rule and swapping out the memory of the job which has not been swapped out, it is possible to further effectively use the memory resources.
[0022]
Further, by changing the swap priority of the partially swapped-out job to be higher than that of the job whose entire memory has been swapped out, the priority changing means 111 allows the partially swapped out job to be changed. All the memories have a function of increasing the order of swap-in from the jobs which have been swapped out, and the job selecting means 112 has a function of selecting a job to be swapped in from the jobs which have been swapped out in the order of higher swap priority. By providing the swap means 114 with a function of swapping in the swap-in target job based on the amount of memory specified for each node, the time when an unusable memory occurs can be reduced, and the memory resources can be further reduced. Effective utilization can be achieved.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is an overall configuration diagram of Embodiment 1 of the present invention. The job management program 11 of the present invention is a program executed on a computer acting as the job management device 1. The priority changing unit 111 changes the swap priority of the partially swapped-out job to be lower than that of the running job in order to increase the order of the partially swapped-out job and the running job. To reduce the swap priority of partially swapped-out jobs to all memory, partially swapped-out jobs have higher priority than all swapped-out jobs Change higher than the job that was swapped out.
[0024]
The
[0025]
The swap unit 114 partially swaps in / out the job to be swapped in / out based on the memory amount designated for each node. The memory
[0026]
The job memory management table 12 exists on the memory of the master node 1 and manages the memory for job swapping for each job. The node memory management table 13 is a table for managing free memory for each node. The job execution device (job execution node node 0) 2 and the job execution device (job execution node node 1) 3 are computers that execute a user's job, and the job management device (master node) is an inter-node connection device. Are connected to each other.
[0027]
FIG. 2 shows the data format of an example of the job memory management table. This table is managed for each process in a job. The contents to be managed are as follows. What is managed for each job includes a swap priority and a swap status area. The swap priority sets the priority of using the resources (memory, CPU) of the node. If the swap priority of the urgent job is higher than the swap priority of the running job, the running job is swapped out. It is also used for the priority of jobs to be swapped in. In the swap state area, a flag is set to determine whether all the memories of the job to be swapped out are swapped out or partially swapped out.
[0028]
Items managed for each process include a node number, a required memory amount, a memory amount to be swapped out this time, and a total memory amount which has been swapped out. The node number is a node number where the process executes. The required memory amount is a memory amount required for each process, and is the same between processes. The amount of memory to be swapped out this time sets the amount of memory for the job to be swapped out. The amount of memory swapped out differs for each process. The swapped out total memory size sets the memory size of the job that has been swapped out.
[0029]
The amount of memory for the job to be swapped out is calculated in page units from the amount of memory required by each process of the job with the specified urgency, and the minimum swapout required to execute the job with the specified urgency is calculated. Set the amount of memory in page units for each process.
FIG. 3 shows a data format of an example of a node memory management table for managing free memory for each node. The node number is set to the number for identifying the node, the memory mounting amount is set to the memory amount mounted on the node, and the free memory amount is set to the value of the current free memory.
[0030]
FIG. 4 is a flowchart showing a flow of the partial swap-out process according to the first embodiment. When the urgency level is specified for the job waiting to be executed (S401), a job list for swap-out is created based on the swap-out state and the swap priority (S402). Details will be described in S408 to S412.
Next, the amount of memory to be swapped out from the top job in the swap target job list is calculated for each node based on the amount of memory requested by the urgent degree designated job (S403), and the urgent degree designated job operates. Is set as the memory amount to be swapped out (S404). Details will be described in S413 to S416.
[0031]
Next, it is determined whether or not the amount of memory that can be executed by the urgency-designated job has been reached (S406). If not, the address of the job memory management table for the next job in the swap-out target job list is set to the job. The memory management table pointer is set (S405), and the process returns to S403. If it has reached, the selected job is swapped out (S407). Since the swap-out process itself is a conventional technique, details of the process are omitted.
[0032]
The swap-out target job list is created for running jobs whose swap priority is lower than the job with the specified urgency level and for jobs that have been partially swapped out. It is determined whether or not the flag in the swap status area is a job in which partial swap-out is being performed (S408). If the job is being partially swapped out, the swap priority is changed to a value smaller than the job being executed in order to increase the swap-out priority (S410).
[0033]
If not, it is determined whether or not the swap priority of the running job is smaller than the job of which the urgency level is specified (S411). If it is smaller, the swap priority is raised compared to the swap priority of other running jobs, and if smaller, the swap priority is increased (S412), and the address of the next job memory management table is changed to the job memory to check the next job. It is set to the management table pointer (S409), and the process returns to S408. If not, the address of the next job memory management table is set in the job memory management table pointer to check the next job (S409), and the process returns to S408. When all the jobs in the running job queue and the jobs in the swout-out job queue have been checked, the address of the job memory management table of the first job in the job list to be swapped out is set in the job memory management table pointer, and the process proceeds to S403.
[0034]
To calculate the amount of memory to be swapped out for each node based on the amount of memory requested by the urgent level specified job from the top of the list of jobs to be swapped out, Is determined by referring to the amount of free memory in the node memory management table (S413). If not, the required amount of memory is calculated for each node (S415), the value is set to "the amount of memory to be swapped out this time" in the job memory management table (S416), and the next node is checked. To do so, the address of the next node memory management table is set in the node memory management table pointer (S414), and the process returns to S413.
[0035]
If it is sufficient, the address of the next node memory management table is set in the node memory management table pointer to check the next node (S414), and the process returns to S413. The amount of memory to be swapped out is a value obtained by subtracting the amount of free memory of the node from the amount of memory required for the urgency designated job. When the check of all the nodes is completed, the process proceeds to S406.
[0036]
A specific example of the above-described swap processing will be described based on the example of the job memory management table before the swap-out shown in FIG. 5 and the example of the job memory management table after the swap-out shown in FIG.
At present, it is assumed that there is one running job with a swap priority of 20, the free memory of node 0 is 0 MB, and the free memory of node 1 is 48 MB. Here, an example of the job memory management table before the running job is swapped out when the urgent designation job whose required memory amount per process is 32 MB, the number of processes is 3, and the swap priority is 30 is input. This is shown in FIG. FIG. 6 shows an example of the job memory management table after the running job is swapped out. Since the node number of the process 0 of the job with the specified urgency is 0, the required memory is 32 MB, and the free memory of the node 0 is 0, the memory amount to be swapped out this time is 32 MB. The node numbers of both processes 1 and 2 of the urgency designated job are 1, the required memory amounts are 32 MB, and the free memory amount of node 1 is 48 MB. Therefore, the shortage memory of processes 1 and 2 is 16 MB in total. Become. It is necessary to swap out 16 MB from process 1, but not in process 2.
[0037]
FIG. 6 shows an example of the job memory management table after the running job has been swapped out. As a result of the swap-out, the total memory amount of the process 0 that has been swapped out is 32 MB, that of the process 1 is 16 MB, and that of the process 2 is 0 MB. After the swap-out, the swap status area of the job is changed to a memory partial swap.
[0038]
FIG. 7 is a flowchart showing a flow of the automatic swap-out processing according to the first embodiment. The free memory amount of each node is periodically monitored by, for example, a timer monitor, and when the free memory amount becomes smaller than a predetermined amount, the memory that has not been swapped out is automatically swapped out (S701) to use the memory resources. Try to use it. Whether or not the free memory is smaller than the predetermined value is determined, for example, based on whether or not the free memory amount of the node is less than 1/10 of the memory amount mounted on the node (S705).
[0039]
The amount of memory that is automatically swapped out is swapped out, for example, by setting the memory that has not been swapped out in the target node until the free memory amount becomes half (S707). In order to perform this for all nodes, the address of the next node memory management table is set in the node memory management table pointer (S706), and the process returns to S705. When all the nodes have been checked, the process proceeds to S702.
[0040]
Next, swap-in jobs are selected in descending order of swap priority (S702). If the selected swap-in job cannot be swapped in due to lack of memory, the memory that has not been swapped out is automatically swapped out (S703). Details will be described in S708 to S712. When the swap-in memory is secured, the selected job is swapped in (S704). Since the swap-in processing itself is a conventional technique, details of the processing are omitted.
[0041]
The details of S703 will be described. It is determined whether or not the required memory size of the swap-in job is free in the node by referring to the node memory management table (S708). If it is free, the address of the next node memory management table is set in the node memory management table pointer to check the next node (S709), and the process returns to S708. When all the nodes have been checked, the process proceeds to S704.
[0042]
If not free, the amount of memory required for swap-in is calculated for each node by subtracting the amount of free memory of the node from the amount of required memory (S710), and a job with a large amount of memory that has not been swapped out is selected (S710). S711), the value is set to “the amount of memory to be swapped out this time” in the job memory management table, swap-out processing is performed (S712), and the address of the next node memory management table is set to check the next node. The node memory management table pointer is set (S709), and the process returns to S708. Since the swap-out process itself is a conventional technique, the details of the process are omitted.
[0043]
FIG. 8 shows an example of the node memory management table before the automatic swap-out by monitoring the free memory of the node. Since the free memory of node 0 is less than one-tenth of the mounted memory, automatic swap-out is performed until the amount of non-swapped-out memory of node 0 becomes one-half or more of the mounted memory. Done. In this example, as shown by the following equation, a memory amount of 108 MB is subject to automatic swap-out.
(256 MB ÷ 2) −20 MB = 108 MB
Since the free memory amount of the node 1 is larger than one tenth of the mounted memory amount, the node 1 is not subjected to the automatic swap-out.
[0044]
FIG. 9 shows an example of the node memory management table after the automatic swap-out by monitoring the free memory of the node. Due to the automatic swap-out, the free memory capacity of the node 0 becomes 128 MB.
FIG. 10 shows an example of the job memory management table before the automatic swap based on the required memory amount of the swap-in job.
[0045]
When the free memory capacity of the node 0 is 64 and the free memory capacity of the node 1 is 56 MB, the required memory capacity per process of the swap-in job is 32 MB, and the number of processes is 3 (32 × 3 = 96 MB per job). In some cases, since the memory capacity of the swap-in job is insufficient, the amount of memory to be swapped out for each process among the nodes in the swap memory capacity is calculated.
[0046]
a) The amount of memory to be swapped out this time for process 0 using node 0 is
Requested memory amount (32 MB) −free memory amount of node 0 (64 MB) = memory amount to be swapped out (0 MB)
In this case, since the amount of memory to be swapped out is 0, no swap-out is performed.
[0047]
b) The amount of memory to be swapped out this time for the process using node 1 is
Requested memory amount (32 MB × 2) −free memory amount of node 1 (56 MB) = 8 MB
And the amount of memory to be swapped out this time in process 1 is 8 MB. Also,
The amount of memory to be swapped out this time in process 2 is 0 MB.
FIG. 11 shows an example of the job memory management table after the automatic swap based on the required memory amount of the swap-in job. In the process 1, 8 MB is added to the total memory amount of the swapped-out memory, resulting in 24 MB. Since the amount of memory is being partially swapped out for the entire job, the swap state area remains in the memory partial swapping.
[0048]
FIG. 12 is a flowchart showing the flow of the partial swap-in process according to the first embodiment. When resources are released to the computer system due to the termination of the job being executed or the like, the swapped-out jobs can be swapped in (S121). Therefore, the jobs being swapped out are arranged in the order of the swap priority (S122). ).
[0049]
Next, for the job having the highest swap priority, it is determined whether there is another job having the same swap priority (S123). If not, the job having the highest swap priority is swapped in (S125). ). If there is another job having the same swap priority, a job to be swapped in is selected according to the amount of memory that has not been swapped out as shown in S127 to S1211 (S124). Since the swap-in processing itself is a conventional technique, details of the processing are omitted.
[0050]
In order to select a job to be swapped in according to the amount of memory that has not been swapped out, the job memory management table is first referred to, and it is determined whether or not the flag in the swap status area is in the process of swapping memory (S127). If not, the address of the job memory management table for the next swap-out job is set in the job memory management table pointer (S126), and the process returns to S127.
[0051]
If the memory is being partially swapped, the swap priority is changed to be higher than that of the job in which all memory is swapped in order to raise the swap-in priority of the flag in the swap state area over the job in which all memory is swapped (S128). . Next, the amount of memory that has not been swapped out is calculated by subtracting the swapped out total memory from the required memory amount of the job (S129). Next, the calculated amount of memory that has not been swapped out is compared with other swap-out jobs (S1210). If the calculated amount is smaller, the address of the job memory management table of the next swap-out job is set in the job memory management table pointer. (S126), and returns to S127 (S126). If it is larger, the swap priority is changed to a value larger than the current value so as to further increase the swap-in priority (S1211).
[0052]
When the swap priority is changed in this way, as shown in FIG. 13, the larger the amount of memory that has been partially swapped out and has not been swapped out, the higher the swap-in order, and the more efficient the use of memory resources. It becomes possible to plan.
(Supplementary Note 1) A job swap method for a shared memory type SMP computer system, comprising: a step of changing the swap priority of a partially swapped out job based on a predetermined rule; Selecting a job to be swapped out from the jobs that have been swapped out, and a job to be swapped out. A job swap method, comprising: calculating a memory amount; and partially swapping out the swap-out target job based on a memory amount designated for each node.
[0053]
(Supplementary note 2) The job swap according to Supplementary note 1, wherein when the free memory capacity of each node satisfies a predetermined condition, the non-swapped-out memory of the partially swapped-out job is swapped out based on a predetermined rule. Method.
(Supplementary Note 3) When it is detected that the memory amount required by the swap-in job is larger than the free memory amount, the non-swapped-out memory of the partially swapped-out job is swapped out based on a predetermined rule. 1. The job swap method according to 1.
[0054]
(Supplementary Note 4) A job swapping method for a shared memory type SMP computer system, wherein a step of changing the swap priority of a partially swapped out job based on a predetermined rule and a step of swapping out based on the swap priority Selecting a swap-in target job from the selected jobs; and swapping the swap-in target job based on the amount of memory specified for each node.
And a job swap method.
[0055]
(Supplementary Note 5) Priority changing means for changing the swap priority of a partially swapped-out job based on a predetermined rule, a job partially swapped out based on a swap priority, and a running job A job selecting means for selecting a job to be swapped out from, and a memory amount calculating means for calculating a memory amount to be swapped out for each node of the job to be swapped out based on a required memory amount of a job waiting to be executed designated by urgency And a swap unit for partially swapping out the swap-out target job based on a memory amount designated for each node.
[0056]
(Supplementary Note 6) Priority changing means for changing the swap priority of a partially swapped-out job based on a predetermined rule, a job partially swapped out based on the swap priority, and a running job A job selecting means for selecting a job to be swapped out from, and a memory amount calculating means for calculating a memory amount to be swapped out for each node of the job to be swapped out based on a required memory amount of a job waiting to be executed designated by urgency And a job management program for causing a computer to function as swap means for partially swapping out the swap-out target job based on a memory amount designated for each node.
[0057]
(Supplementary Note 7) A step of changing a swap priority of a partially swapped-out job based on a predetermined rule, and a priority change of selecting a job to be swapped in from the jobs swapped out based on the swap priority And a swap unit for swapping in the swap-in target job based on a memory amount designated for each node.
[0058]
(Supplementary Note 8) A step of changing a swap priority of a partially swapped-out job based on a predetermined rule, and a priority change of selecting a swap-in target job from the swapped-out jobs based on the swap priority Means and a job management program for causing a computer to function as a swap means for swapping in the swap-in target job based on a memory amount designated for each node.
[0059]
【The invention's effect】
According to the present invention, it is possible to reduce the overhead required for job swap and to effectively use memory resources in a shared memory type SMP computer system in which a single node or a plurality of nodes are connected by a network.
[Brief description of the drawings]
FIG. 1 is an overall configuration diagram of a first embodiment.
FIG. 2 shows an example of a job memory management table.
FIG. 3 is an example of a node memory management table;
FIG. 4 is a partial swap-out process according to the first embodiment;
FIG. 5 shows an example of a job memory management table before swap-out.
FIG. 6 shows a job memory management table after swap-out.
FIG. 7 is an automatic swap-out process according to the first embodiment;
FIG. 8 shows an example of a node memory management table before automatic swap-out.
FIG. 9 is an example of a node memory management table after automatic swap-out
FIG. 10 shows an example of a job memory management table before automatic swap-out.
FIG. 11 shows an example of a job memory management table after automatic swap-out.
FIG. 12 is a partial swap-in process according to the first embodiment;
FIG. 13 shows an example of a swap-in target job list.
FIG. 14 shows an example of overhead reduction at the time of swap-out according to the related art.
FIG. 15 shows an example in which resources are not effectively used in the conventional technology.
[Explanation of symbols]
1 Job management device (master node)
2 Job execution device (job execution node node 0)
3 Job execution device (Job execution node Node 1)
4 Node connection device
11 Job management program
12 Job memory management table
13 Node memory management table
111 Priority change means
112 Job selection means
113 Memory amount calculation means
114 Swap Means
115 Memory amount monitoring means
Claims (5)
部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、
スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するステップと、
緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するステップと、
ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするステップと
を有することを特徴とするジョブスワップ方法。A job swap method for a shared memory type SMP computer system,
Changing the swap priority of the partially swapped-out job based on a predetermined rule;
Selecting jobs to be swapped out of partially swapped out jobs and running jobs based on swap priority;
Calculating a swap-out target memory amount for each node of the swap-out target job based on the requested memory amount of the execution waiting job specified in the urgency degree;
Partially swapping out the job to be swapped out based on the amount of memory specified for each node.
部分的にスワップアウトされたジョブのスワップ優先度を所定のルールに基づいて変更するステップと、
スワップ優先度に基づいてスワップアウトされたジョブからスワップイン対象ジョブを選択するステップと、
ノード毎に指定されたメモリ量に基づいて前記スワップイン対象ジョブをスワップインするステップと
を有することを特徴とするジョブスワップ方法。A job swap method for a shared memory type SMP computer system,
Changing the swap priority of the partially swapped-out job based on a predetermined rule;
Selecting a job to be swapped in from jobs that have been swapped out based on swap priority;
Swapping the swap-in target job based on the amount of memory specified for each node.
スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するジョブ選択手段と、
緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するメモリ量算出手段と、
ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするスワップ手段と
を有することを特徴とするジョブ管理装置。Priority changing means for changing the swap priority of a partially swapped-out job based on a predetermined rule;
A job selection unit for selecting a job that has been partially swapped out based on the swap priority and a job to be swapped out of running jobs,
A memory amount calculation unit configured to calculate a swap-out target memory amount for each node of the swap-out target job based on the requested memory amount of the execution waiting job specified in the urgency degree;
And a swap unit for partially swapping out the job to be swapped out based on a memory amount designated for each node.
スワップ優先度に基づいて部分的にスワップアウトされたジョブ、および実行中ジョブからスワップアウト対象ジョブを選択するジョブ選択手段と、
緊急度指定された実行待ちジョブの要求メモリ量に基づいて、前記スワップアウト対象ジョブのノード毎にスワップアウト対象メモリ量を算出するメモリ量算出手段と、
ノード毎に指定されたメモリ量に基づいて前記スワップアウト対象ジョブを部分的にスワップアウトするスワップ手段と
してコンピュータを機能させるジョブ管理プログラム。Priority changing means for changing the swap priority of a partially swapped-out job based on a predetermined rule;
A job selection unit for selecting a job that has been partially swapped out based on the swap priority and a job to be swapped out of running jobs,
A memory amount calculation unit configured to calculate a swap-out target memory amount for each node of the swap-out target job based on the requested memory amount of the execution waiting job specified in the urgency degree;
A job management program for causing a computer to function as swap means for partially swapping out the swap-out target job based on a memory amount designated for each node.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003012833A JP2004227188A (en) | 2003-01-21 | 2003-01-21 | Job swap method, job management device and job management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003012833A JP2004227188A (en) | 2003-01-21 | 2003-01-21 | Job swap method, job management device and job management program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004227188A true JP2004227188A (en) | 2004-08-12 |
Family
ID=32901317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003012833A Withdrawn JP2004227188A (en) | 2003-01-21 | 2003-01-21 | Job swap method, job management device and job management program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004227188A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009104247A (en) * | 2007-10-19 | 2009-05-14 | Ricoh Co Ltd | Virtual storage control device, virtual storage control method, virtual storage control program, and recording medium |
JP2010211696A (en) * | 2009-03-12 | 2010-09-24 | Canon Inc | Memory swap management method, device and program |
JP2011193355A (en) * | 2010-03-16 | 2011-09-29 | Ricoh Co Ltd | Image forming device, control method, program and recording medium |
JP2012059204A (en) * | 2010-09-13 | 2012-03-22 | Nec Corp | Information processing apparatus, information processing method and computer program |
US8854388B2 (en) | 2008-06-19 | 2014-10-07 | Canon Kabushiki Kaisha | Image processing apparatus and memory management method for image processing apparatus |
US8914806B2 (en) | 2009-02-25 | 2014-12-16 | Canon Kabushiki Kaisha | Information processing apparatus and virtual storage management method, and storage medium for restriction on process swapping based on process attributes and processor utilization |
JP2019020945A (en) * | 2017-07-14 | 2019-02-07 | 富士通株式会社 | Parallel processing control device and job swap program |
EP3796170A1 (en) | 2019-09-20 | 2021-03-24 | Fujitsu Limited | Information processing apparatus, information processing system, and communication management program |
-
2003
- 2003-01-21 JP JP2003012833A patent/JP2004227188A/en not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009104247A (en) * | 2007-10-19 | 2009-05-14 | Ricoh Co Ltd | Virtual storage control device, virtual storage control method, virtual storage control program, and recording medium |
US8854388B2 (en) | 2008-06-19 | 2014-10-07 | Canon Kabushiki Kaisha | Image processing apparatus and memory management method for image processing apparatus |
US8914806B2 (en) | 2009-02-25 | 2014-12-16 | Canon Kabushiki Kaisha | Information processing apparatus and virtual storage management method, and storage medium for restriction on process swapping based on process attributes and processor utilization |
JP2010211696A (en) * | 2009-03-12 | 2010-09-24 | Canon Inc | Memory swap management method, device and program |
US8595745B2 (en) | 2009-03-12 | 2013-11-26 | Canon Kabushiki Kaisha | Job-process swapping between multiple storage devices based on the most recently executed type of a process and historical execution count among plural types of processes |
JP2011193355A (en) * | 2010-03-16 | 2011-09-29 | Ricoh Co Ltd | Image forming device, control method, program and recording medium |
JP2012059204A (en) * | 2010-09-13 | 2012-03-22 | Nec Corp | Information processing apparatus, information processing method and computer program |
JP2019020945A (en) * | 2017-07-14 | 2019-02-07 | 富士通株式会社 | Parallel processing control device and job swap program |
EP3796170A1 (en) | 2019-09-20 | 2021-03-24 | Fujitsu Limited | Information processing apparatus, information processing system, and communication management program |
US11544118B2 (en) | 2019-09-20 | 2023-01-03 | Fujitsu Limited | Information processing apparatus, information processing system, and non-transitory computer-readable storage medium for storing communication management program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799554B1 (en) | Methods and system for swapping memory in a virtual machine environment | |
JP5466568B2 (en) | Resource management method, resource management program, and resource management apparatus | |
US5784698A (en) | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments | |
JP5235989B2 (en) | System, method, and computer program for managing memory of virtual machine | |
US8291430B2 (en) | Optimizing system performance using spare cores in a virtualized environment | |
US6633897B1 (en) | Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler | |
US7143412B2 (en) | Method and apparatus for optimizing performance in a multi-processing system | |
KR100754300B1 (en) | Method and apparatus for dispatching tasks in a non-uniform memory access numa computer system | |
US5884077A (en) | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process | |
US7299468B2 (en) | Management of virtual machines to utilize shared resources | |
JP5417287B2 (en) | Computer system and computer system control method | |
KR101936453B1 (en) | Memory management model and interface for new applications | |
KR101651871B1 (en) | Job Allocation Method on Multi-core System and Apparatus thereof | |
JP2004326755A (en) | Management of dispatching function in virtual computer environment | |
JPH02193248A (en) | Actual storage management system | |
WO2005046304A2 (en) | Method and system for allocation of special purpose computing resources in a multiprocessor system | |
KR101587579B1 (en) | Memory balancing method for virtual system | |
US20130097382A1 (en) | Multi-core processor system, computer product, and control method | |
JP3226525B2 (en) | Main memory management method | |
US11797355B2 (en) | Resolving cluster computing task interference | |
KR101896497B1 (en) | Method and appratus for performance control | |
JP2004227188A (en) | Job swap method, job management device and job management program | |
CN107615246B (en) | Kernel load knowledge for thread elastic load balancing | |
CN112162818B (en) | Virtual memory allocation method and device, electronic equipment and storage medium | |
JP5158576B2 (en) | I / O control system, I / O control method, and I / O control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040610 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040610 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |