JP2018092311A - 情報処理装置、その制御方法、及びプログラム - Google Patents

情報処理装置、その制御方法、及びプログラム Download PDF

Info

Publication number
JP2018092311A
JP2018092311A JP2016234099A JP2016234099A JP2018092311A JP 2018092311 A JP2018092311 A JP 2018092311A JP 2016234099 A JP2016234099 A JP 2016234099A JP 2016234099 A JP2016234099 A JP 2016234099A JP 2018092311 A JP2018092311 A JP 2018092311A
Authority
JP
Japan
Prior art keywords
task
virtual machine
server
information processing
processing apparatus
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.)
Pending
Application number
JP2016234099A
Other languages
English (en)
Inventor
智一 土本
Tomokazu Tsuchimoto
智一 土本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016234099A priority Critical patent/JP2018092311A/ja
Priority to US15/827,492 priority patent/US10545799B2/en
Publication of JP2018092311A publication Critical patent/JP2018092311A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • G06Q20/145Payments according to the detected use or quantity
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 サーバの利用コストが発生する次の所定時刻までに、進捗が遅れているタスクを適切なサーバに移行すること。【解決手段】 タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置が、タスクの進捗を示す情報を、該タスクを実行している第一のサーバから取得する。そして、次に利用コストが発生する所定時刻とタスクの移行に要する時間とに基づくタイミングで、取得された情報に基づいてタスクの進捗が遅れているかを判定する。タスクの進捗が遅れていると判定された場合に、第一のサーバよりも処理能力の高い第二のサーバを選択し、選択された第二のサーバに対して、タスクの実行を指示する。【選択図】 図20

Description

本発明は、情報処理装置、その制御方法、及びプログラムに関する。
CT(Computational Tomography)やMRI(Magnetic Resonance Imaging)などの画像診断装置では、患者を撮影することにより医用画像が生成される。この医用画像に対する画像解析の実行は、医師や技師が保有するワークステーションや、画像診断装置内で実行される。
一方、近年は、遠隔地にあるサーバの計算資源を共有利用する、いわゆるクラウドで画像解析を実行する手法も普及しつつある。クラウドはサービス提供者自身がサーバを管理するプライベートクラウドと、クラウドプロバイダと呼ばれるサーバ管理業者から有料でサーバをレンタルするパブリッククラウドに大別される。
パブリッククラウドは、多くの場合、CPU、アクセラレータ、メモリ、記憶媒体などを仮想化した仮想マシンを、仮想マシンの種類と利用時間に応じた料金と支払うことで利用するものである。特許文献1には、タスクが期限内に完了するような仮想マシンを選択し、タスクの実行をスケジューリングする仕組みが開示されている。
特表2016−507121号公報
仮想マシンの料金体系は、仮想マシンを利用した時間に応じて利用コストが発生する従量制と、仮想マシンを利用した時間に関わらず一定の利用コストが発生する定額制とが存在する。
特に従量制の料金体系の場合、仮想マシンで実行中のタスクの進捗が遅れてしまうと、このタスクが完了するまでに時間がかかってしまい、当初想定していた利用コストよりも金額が高くなってしまう可能性がある。また、進捗の遅れを取り戻すために、現在の仮想マシンから処理能力の高い他の仮想マシンにタスクを移行することも考えられるが、タスクの移行中に利用コストが発生してしまう可能性もある。特許文献1ではこれらの課題を解決するための手段が何ら開示されていない。
本発明は、サーバの利用コストが発生する次の所定時刻までに、進捗が遅れているタスクを適切なサーバに移行することを目的とする。
上記の目的を達成するために本発明の情報処理装置は、タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置であって、前記タスクの進捗を示す情報を、該タスクを実行している第一のサーバから取得する取得手段と、次に利用コストが発生する前記所定時刻と前記タスクの移行に要する時間とに基づくタイミングで、前記取得された情報に基づいて前記タスクの進捗が遅れているかを判定する判定手段と、前記判定手段により前記タスクの進捗が遅れていると判定された場合に、前記第一のサーバよりも処理能力の高い第二のサーバを選択する選択手段と、前記選択された第二のサーバに対して、前記タスクの実行を指示する指示手段と、を備えることを特徴とする。
本発明により、サーバの利用コストが発生する次の所定時刻までに、進捗が遅れているタスクを適切なサーバに移行することが可能となる。
実施例1〜3における、情報処理システムのシステム構成の一例を示す図である。 実施例1〜3における、情報処理装置10のハードウェア構成の一例を示す図である。 実施例1〜3における、情報処理装置10の機能ブロックの一例を示す図である。 実施例1における処理の流れの一例を示すフローチャートである。 実施例2における処理の流れの一例を示すフローチャートである。 実施例3における処理の流れの一例を示すフローチャートである。 実施例4における、画像解析システム100のシステム構成の一例を示す図である。 実施例4における、画像閲覧装置102のハードウェア構成の一例を示す図である。 実施例4における、解析画像選択部601を実行する際にヒューマンインタフェース204に表示する画面の一例を示す図である。 実施例4における、第一の仮想マシン108、および第二の仮想マシン109のハードウェア構成の一例を示す図である。 実施例4における、仮想マシン108および仮想マシン109の機能ブロックを示す図である。 実施例4における、画像閲覧装置102の機能ブロックの一例を示す図である。 実施例4における、仮想マシン価格表606、プログラム管理表608、仮想マシン利用管理表611、実行時間管理表607、プログラム特性管理表701の一例を示す図である。 実施例4における、仮想マシン108および仮想マシン109の処理の流れの一例を示すフローチャートである。 実施例4における、画像位置合わせを行う画像解析プログラムの概要の一例を示すフローチャートと、位置合わせ処理の詳細の一例を示すフローチャートである。 実施例4における、画像閲覧装置102が実行する処理のうち、監視部609と移行制御部610が実行する処理の流れの一例を示すフローチャートである。 実施例4における、画像閲覧装置102が実行する処理のうち、実行中の画像解析タスクに関して、コスト最適化の一例を示すフローチャートと、仮想マシンの移行制御の一例を示すフローチャートである。 実施例4における、画像閲覧装置102が実行する処理のうち、画像解析処理の概要の一例を示すフローチャートである。 各実施例の概要を説明するための図である。 各実施例の概要を説明するための図である。
以下、各実施例について、図面を参照して説明する。尚、以下の各実施例(実施形態)は本発明を限定するものではなく、また、各実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、同一の構成については、同じ符号を付して説明する。
まず、各実施例の概要の一例について図19及び図20を用いて説明する。各実施例は、所定時刻ごとに利用コスト(利用料金)が発生する従量制の料金体系である仮想マシンに関する。利用コストは、図19(A)の2011−1〜2011−6に示すように、仮想マシンを利用し続けることによって、定期的に(所定時刻ごとに)発生する。また、利用コストが発生すると、次の所定時刻まで(次に利用コストが発生するまで)、ユーザは仮想マシンを利用することができる。各実施例は利用コストが所定時刻ごとに発生するものとして説明するが、これに限らない。利用コストが不定期に発生する形態であってもよい。
また、図19(A)の例は、第一の仮想マシンでタスク(例えば、画像解析処理や位置合わせ処理、画像変換処理等の実行すべき処理のことをいう。)を実行している場合を示している。このタスクは、2011−5が示す時刻までに完了する予定であったが、進捗が遅れており、完了予定時刻が2011−6の示す時刻を超えてしまうものである。
この遅れを改善するために、情報処理装置が、第一の仮想マシンよりも処理能力の高い第二の仮想マシンにタスクを移行する仕組みが考えられる。図19(B)はこの移行に関する例である。図19(B)は、現在時刻2012から移行処理を開始し、2014が示す時刻に移行が完了することを示している。これにより、タスクの進捗の遅れを改善することができるものの、第一の仮想マシンは、2011−5が示す時刻を超えて利用されているので、2011−5の時刻において利用コストが発生してしまう。
そこで、図20に示すように、現在時刻2012が、次に利用コストが発生する所定時刻2011−5から移行に要する時間2015を減じた時刻になった場合に、情報処理装置が進捗の遅れ(移行の要否)を判定する。そして、進捗が遅れていると判定された場合(移行が必要である場合)に、情報処理装置が第一の仮想マシンよりも処理能力の高い第二の仮想マシンにタスクを移行する。こうすることで、次に利用コストが発生する所定時刻を考慮しつつ、進捗の遅れを改善できる。
尚、各実施例では仮想化技術により動作する仮想マシンを例に説明を行うが、物理的なマシンであるサーバであってもよい。また、サーバという表現は、物理的なマシンとしてのサーバと仮想マシンとを含むものである。
以下、図19及び図20に示す各実施例の概要を詳細に説明する。
<実施例1〜3>
図1は、実施例1〜3における情報処理システムのシステム構成の一例を示す図である。情報処理システムは、情報処理装置10とクラウドシステム11とを含む。
情報処理装置10は、パーソナルコンピュータである。情報処理装置10は、1または複数の仮想マシンと通信可能であり、仮想マシンに対するタスクの実行指示やその実行結果の閲覧を行うことができる。すなわち、タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置に相当する。尚、情報処理装置10は、サーバや携帯端末、更にはタブレット端末であってもよい。
クラウドシステム11は、クラウドプロバイダによって管理された複数の種類の物理マシンを仮想化した複数の種類の仮想マシンで構成されている。そして、各仮想マシンはインターネット105に接続されている。尚、情報処理装置10とクラウドシステム11とが通信可能であれば、LAN(Local Area Network)であってもよい。ネットワークの種類は特に問わない。
106は第一の仮想マシン群であり、第一の仮想マシン108の集合である。第一の仮想マシン群106は、情報処理装置10からクラウドプロバイダへの利用開始要求に応じて利用可能となり、利用終了要求に応じて利用を終了するように構成されている。なお、第一の仮想マシン群106が連続で利用されている間、所定の間隔で利用料金(利用コスト)が発生する。
107は、先に説明した第一の仮想マシン群106よりも処理能力の高いプロセッサを有する第二の仮想マシン109の集合である。第二の仮想マシン群107も、情報処理装置10からクラウドプロバイダへの利用開始要求に応じて利用可能となり、利用終了要求に応じて利用を終了するように構成されている。なお、第二の仮想マシン群107も連続で利用されている間、所定の間隔で利用料金(利用コスト)が発生する。
尚、本実施例では第一の仮想マシン(群)と第二の仮想マシン(群)の2つを例にとって説明するが、仮想マシン(群)の数は3つ以上であってもよい。また、複数の情報処理装置10を1つの情報処理装置10として動作させてもよい。
図2は、実施例1〜3における、情報処理装置10のハードウェア構成の一例を示す図である。
201はシステムバスであり、各ハードウェア部品がデータをやりとりするための通信路である。
202はCPU(Central Processing Unit)であり、プログラムを実行し、各機能部を制御するものである。
203は通信I/F(Interface)であり、インターネット105に接続されており、各種情報の送受信を行うためのインタフェースである。
204はタッチパネル、キーボード、ディスプレイなど、データの表示と操作入力機能を備えたヒューマンインタフェースである。
205はDRAM(Dynamic Random Access Memory)などの揮発メモリであり、プログラムやデータを一時的に保持するため利用される。
206はHDD(Hard Disk Drive)などの不揮発メモリであり、プログラムやデータが格納されている。
図3は、実施例1〜3における、情報処理装置10の機能ブロックの一例を示す図である。情報処理装置10は機能部として、取得部31、判定部32、選択部33、指示部34、送信部35を備える。より具体的には、実施例1と実施例2の情報処理装置10は、取得部31、判定部32、選択部33、指示部34を備え、実施例3の情報処理装置10は、取得部31、判定部32、選択部33、指示部34、送信部35を備える。
取得部31は、仮想マシンで実行中のタスクの進捗を示す情報を取得するための機能部である。第一の仮想マシンでタスクを実行しているのであれば、取得部31は第一の仮想マシンからタスクの進捗を示す情報を取得する。タスクの進捗を示す情報とは、タスクの完了予定時刻やタスクの進捗の割合、タスクの実行結果を評価した評価値(タスクの実行結果の評価値に相当する。)などが挙げられる。
判定部32は、取得部31により取得された情報に基づいて、タスクの進捗が遅れているか(タスクを移行する必要があるか)を判定するための機能部である。判定部32が判定を行うタイミングは、タスクの実行に際して次に利用コストが発生する所定時刻から、タスクを移行する場合に必要となる時間を減じた時刻である。または、該タイミングは、タスクの実行に際して次に利用コストが発生する所定時刻から、タスクを移行する場合に必要となる時間を減じた時刻よりも前の時刻である。このように、判定部32は、次に利用コストが発生する所定時刻とタスクの移行に要する時間とに基づくタイミングで、取得部31により取得された情報に基づいてタスクの進捗が遅れているかを判定する。
選択部33は、タスクを実行する仮想マシンを選択するための機能部である。また、選択部33は、判定部32によりタスクの進捗が遅れていると判定された場合に、タスクを実行中の仮想マシンよりも処理能力の高い仮想マシンを選択する。タスクの進捗が遅れていると判定された場合に選択する仮想マシンは、所定の期限(例えば、ユーザから指定された時刻)までにタスクを完了することの可能な仮想マシンを選択することが望ましい。
指示部34は、選択部33により選択された仮想マシンに対してタスクの実行を指示するための機能部である。また、実施例2と実施例3では、指示部34は、タスクを実行中の仮想マシンに対して、タスクの実行に必要な情報(実施例2では中間データと称する。)を送信するよう指示するものとして機能する。尚、中間データは、例えば処理途中のデータやパラメータ等である。
送信部35は、実施例3において、タスクを実行する仮想マシンの環境に応じたプログラムを、選択部33により選択された仮想マシンに送信するための機能部である。仮想マシンを動作させる物理的なマシンごとに、プロセッサやメモリ等のハードウェアの種別が異なる。そのため、そのハードウェアの環境に適したプログラムをあらかじめHDD等に記憶しておき、送信部35が送信先の仮想マシンに応じてプログラムを取得して、これを送信する。
図4は、実施例1における処理の流れの一例を示すフローチャートである。以下説明するS41乃至S45の各ステップは、情報処理装置10のCPUが各機能部を動作することにより実現される処理である。
まず、タスクの実行が開始されたら図4に示す一連の処理が開始される。ステップS41では、情報処理装置10の取得部31は、タスクの進捗を示す情報を、該タスクを実行している仮想マシン(第一のサーバ、または第一の仮想マシン)から取得する。タスクの進捗を示す情報は、情報処理装置10からタスクを実行している仮想マシンに対して要求することにより取得してもよいし、該仮想マシンが定期的または不定期に情報処理装置10に対して送信するようにしてもよい。
また、仮想マシンが画像処理を複数回実行するようなタスクの場合、その画像処理が実行される度に、仮想マシンが情報処理装置10にタスクの進捗を示す情報を送信してもよい。すなわち、タスクの進捗を示す情報を、該タスクの画像処理が実行される度に取得する取得手段に相当する。
ステップS42では、情報処理装置10の判定部32は、現在時刻が所定のタイミングであるか否かを判定する。より具体的には、判定部32は、現在時刻が、タスクの実行に際して次に利用コストが発生する所定時刻から該タスクの移行に要する時間を減じた時刻であるか否かを判定する。または、判定部32は、現在時刻が、タスクの実行に際して次に利用コストが発生する所定時刻から該タスクの移行に要する時間を減じた時刻よりも所定時間前(例えば1分前や5分前等)の時刻であるか否かを判定するようにしてもよい。ここでいう次に利用コストが発生する所定時刻とは、利用コストが発生する所定時刻のうち、現在時刻よりも後の最も近い所定時刻を指す。このようなタイミングである場合に、後述するステップS43乃至ステップS45を実行する。
また、タスクの移行に要する時間は、あらかじめ決められた時間であってもよいし、タスクの移行に要する時間を予測した結果であってもよい。タスクの移行に要する時間を予測する場合には、タスクを中断するための処理時間や新たな仮想マシンを起動する時間、新たな仮想マシンに処理途中の中間データを送信するための時間等を考慮し、タスクの移行に要する時間を算出すればよい。
判定部32が、現在時刻が所定のタイミングであると判定した場合には、情報処理装置10はステップS43に処理を進める。判定部32が、現在時刻が所定のタイミングでないと判定した場合には、情報処理装置10は本一連の処理を終了する。
ステップS43では、情報処理装置10の判定部32は、ステップS41で取得したタスクの進捗を示す情報に基づいてタスクの進捗が遅れているか(タスクの移行が必要か)を判定する。すなわち、次に利用コストが発生する所定時刻とタスクの移行に要する時間とに基づくタイミングで、タスクの進捗を示す情報に基づいてタスクの進捗が遅れているかを判定する判定手段に相当する。タスクの進捗が遅れているか否かは、タスク実行前またはタスク実行後に情報処理装置10または仮想マシンが見積もった進捗予定と、ステップS41で取得した情報が示す進捗状況とを比較することにより判定部32が判定すればよい。または、タスクの完了予定時間を予測し、ユーザからあらかじめ指定された所定の期限を該完了予定時間が超えてしまう場合に、タスクの進捗が遅れていると判定部32が判定してもよい。更には、ユーザからタスク実行中に指定された所定の期限を該完了予定時刻が超えてしまう場合に、タスクの進捗が遅れていると判定部32が判定してもよい。
判定部32が、タスクの進捗が遅れていると判定した場合には、情報処理装置10はステップS44に処理を進める。判定部32が、タスクの進捗が遅れていないと判定した場合には、情報処理装置10は本一連の処理を終了する。すなわち、タスクの進捗が遅れていない場合は、情報処理システムはタスクの移行を行わない。
ステップS44では、情報処理装置10の選択部33は、現在タスクを実行している仮想マシンよりも処理能力の高い仮想マシン(第二のサーバ、または第二の仮想マシン)を選択する。すなわち、タスクの進捗が遅れていると判定された場合に、第一のサーバよりも処理能力の高い第二のサーバを選択する選択手段に相当する。ここでいう仮想マシンの処理能力の高さとは、仮想マシンを動作するサーバのプロセッサの処理速度やメモリの容量、通信速度、プログラムの実行速度等のいずれか又はすべてを鑑みた性能の高さである。クラウドプロバイダはあらかじめ処理能力の異なる複数の仮想マシンを提供しているので、この仮想マシンの中から現在利用中の仮想マシンよりも上位の仮想マシンを選択すればよい。
また、タスクを完了すべき期限が定められている場合もある。この場合には、選択部33はこの期限までにタスクを完了することの可能な仮想マシンを選択することが望ましい。すなわち、所定の期限までにタスクを完了することの可能なサーバを第二のサーバとして選択する選択手段に相当する。例えば、情報処理装置10が残りのタスクを各仮想マシンで実行した場合の完了時刻を予測することで、期限内にタスクを完了することの可能な仮想マシンを抽出するようにすればよい。尚、完了時刻の予測は、各仮想マシンが実行してもよい。
ステップS45では、情報処理装置10の指示部34は、ステップS44で選択された仮想マシンに対して、タスクの未処理分の実行を指示する。すなわち、選択された第二のサーバに対して、タスクの実行を指示する指示手段に相当する。より具体的には、指示部34は、今までタスクを実行していた仮想マシンに対してタスクの実行を中断するよう指示する。そして、選択された仮想マシンに対してタスクの実行に必要な情報を情報処理装置10から送信し、情報処理装置10が該仮想マシンに対してタスクの実行を開始するよう要求する。このようにして、情報処理システムはタスクを新たな仮想マシンに移行する。尚、指示部34は、選択された仮想マシンにタスクを最初から実行するよう指示してもよいし、タスクを途中から実行するよう指示してもよいが、タスクの未処理部分を実行するよう指示することが望ましい。
ステップS45の処理が完了したら、情報処理装置10は、本一連の処理を終了する。尚、情報処理装置10は、図4に示す一連の処理をタスクが完了するまで繰り返し実行する。そして、タスクが完了した場合には、情報処理装置10は繰り返しを止める。
以上のような流れで情報処理装置10が各処理を実行することにより、サーバ(仮想マシン)の利用コストが発生する次の所定時刻までに、進捗が遅れているタスクを適切なサーバに移行することが可能となる。
図5は、実施例2における処理の流れの一例を示すフローチャートである。以下説明するS41乃至S46の各ステップは、情報処理装置10のCPUが各機能部を動作することにより実現される処理である。
尚、ステップS41乃至ステップS44の各ステップは、実施例1と同様であるので説明は省略する。実施例2では、実施例1のステップS41乃至ステップS45に新たに追加されたステップS46について説明する。
ステップS44で仮想マシンの選択が完了したら、情報処理装置10はステップS46に処理を移行する。ステップS46では、情報処理装置10の指示部34は、現在タスクを実行している仮想マシンに対して、中間データの送信を指示する。すなわち、第一のサーバに対して、タスクの実行に必要な情報を送信するよう指示する指示手段に相当する。中間データの送信先は、ステップS44で選択した仮想マシンであってもよいし、情報処理装置10であってもよい。情報処理装置10に中間データが送信された場合には、指示部34は、ステップS44で選択された仮想マシンに対して情報処理装置10が中間データを送信する。このように、選択された仮想マシンに中間データを移行することで、該仮想マシンはタスクの再開をスムーズに行うことが可能となる。
図6は、実施例3における処理の流れの一例を示すフローチャートである。以下説明するS41乃至S47の各ステップは、情報処理装置10のCPUが各機能部を動作することにより実現される処理である。
尚、ステップS41乃至ステップS46の各ステップは、実施例1及び実施例2と同様であるので説明は省略する。実施例3では、実施例2のステップS41乃至ステップS46に新たに追加されたステップS47について説明する。また、ステップS46は必須ではないので、実施例1にステップS47を追加したフローチャートであってもよい。
ステップS46で中間データの送信指示が完了したら、ステップS47に処理を移行する。ステップS47では、情報処理装置10の送信部35は、ステップS44で選択された仮想マシンの環境に応じたプログラムを該仮想マシンに送信する。すなわち、タスクを実行するサーバの環境(ハードウェア構成)に応じたプログラムを、選択された第二のサーバに送信する送信手段に相当する。このプログラムは、タスクを実行するためのプログラムである。例えば、タスクが画像解析処理であれば、該プログラムは画像解析処理を実行可能なプログラムである。ユーザは情報処理装置10のHDDに仮想マシンの環境に応じたプログラムを複数記憶させておき、送信部35が選択された仮想マシンの環境に対応するプログラムを取得して、該仮想マシンにこれを送信する。
各仮想マシン(サーバ)は、それぞれ異なるプロセッサやメモリ等を搭載していることがある。つまり、その環境に応じた適切なプログラムを実行することができれば、効率的にタスクを実行することが可能となる。例えば、現在タスクを実行している仮想マシンにGPUが存在しない場合、該仮想マシンはCPUで画像処理を行うプログラムを実行しなければならない。しかし、移行先の仮想マシンにGPUが存在すれば、GPUで画像処理を行うプログラムが利用できるので、こうしたプログラムを情報処理装置10から送信する。こうすることで、タスクの処理速度を向上させることができる。
<実施例4>
次に、実施例4について説明する。実施例4では、医用画像の画像解析処理を仮想マシンに実行させる場合を例にとり、より具体的な説明を行う。尚、各実施例は、医用画像や画像解析処理に限らず適用可能な仕組みである。
図7は本実施例における画像解析システムのシステム構成の一例を示す図である。
100はパブリッククラウドシステムであり、クラウドプロバイダによって管理された複数の種類の物理マシンを仮想化した複数の種類の仮想マシンで構成され、各仮想マシンはインターネット105に接続されている。
101は病院内システムであり、画像閲覧装置102や画像診断装置103などと、それらを相互に通信可能とする病院内ネットワークに接続されている。なお、病院内ネットワークはインターネット105等のネットワークにも接続され、各装置からインターネットにも接続可能に構成されている。
102は画像閲覧装置であり、医師などの操作者に対し、画像診断装置103(詳細は後述)が形成した画像の表示、および画像解析を行うことができる。
103は画像診断装置であり、CT(Computational Tomography)やMRI(Magnetic Resonance Imaging)などである。この画像診断装置103が形成した画像(一般に画像再構成と呼ばれる処理により形成される)は、画像サーバ104(詳細は後述)に送信されて保管される。
104は画像サーバであり、画像診断装置103が形成した画像を保管するものである。また病院内ネットワークを通じて受信した画像閲覧装置102からの要求に応じて、保管された画像の送信や保存処理を行う。
105はインターネットである。パブリッククラウド100と病院内システム101のデータの通信路である。
106は第一の仮想マシン群であり、第一の仮想マシン108(詳細は後述)の集合である。第一の仮想マシン群106は、画像閲覧装置102からクラウドプロバイダへの利用開始要求に応じて利用可能となり、利用終了要求に応じて利用を終了するように構成されている。なお、第一の仮想マシン群106が連続で利用されている間、所定の間隔で利用料金が発生する。
107は、先に説明した第一の仮想マシン群106とはプロセッサ種別の異なる、第二の仮想マシン109(詳細は後述)の集合である。第二の仮想マシン群107も、画像閲覧装置102からの利用開始要求に応じて実体が具現化し、利用終了要求に応じて実体が解放するように構成されている。なお、第二の仮想マシン群107も、利用開始から利用終了まで連続で利用されている間、所定の間隔で利用料金が発生する。この利用料金は、パブリックプロバイダにより仮想マシン群106とは独立して設定されている。
108は、第一の仮想マシン群106に属し、実体が具現化された仮想マシンである。109は、第二の仮想マシン群107に属し、実体が具現化された仮想マシンである。
図8は、本実施例における、画像閲覧装置102のハードウェア構成の一例を示す図である。尚、図8のハードウェア構成は、図2と同様である。
201はシステムバスであり、各ハードウェア部品がデータをやりとりするための通信路である。
202はCPU(Central Processing Unit)であり、プログラムを実行し、各機能部を制御するものである。
203は通信I/F(Interface)であり、病院内ネットワークおよびインターネット105に接続されている。
204はタッチパネル、キーボード、ディスプレイなど、画像データの表示と操作入力機能を備えたヒューマンインタフェースである。
205はDRAM(Dynamic Random Access Memory)などの揮発メモリであり、画像解析プログラムや画像データを一時的に保持するため利用される。
206はHDD(Hard Disk Drive)などの不揮発メモリであり、画像解析プログラムが格納されている。
図10は、第一の仮想マシン108、および第二の仮想マシン109のハードウェア構成例の一例を示す図である。本実施例では、第一の仮想マシン108と第二の仮想マシン109は、CPUの数、GPU(Graphical Processing Unit)の有無が異なるものとしているが、説明を簡単にすべく、同一の図を用いて説明する。
401はシステムバスであり、各ハードウェア部品の通信路である。
402はCPU(Central Processing Unit)などの演算器であり、プログラムを実行する。なお本実施例では、仮想マシン108は2個のCPUで構成され、仮想マシン109は32個のCPUを搭載した構成とするが、これに限らない。
403はGPU(Graphical Processing Unit)などの演算器であり、CPUとは異なるプログラム言語で記述されたプログラムを実行する。なお本実施例では、仮想マシン108はGPUを非搭載とし、仮想マシン109は1個のGPUを搭載した構成とする。
404は通信I/F(Interface)であり、パブリッククラウド内ネットワークおよびインターネット105の通信ネットワークに接続されている。
405はDRAM(Dynamic Random Access Memory)などの揮発メモリであり、画像解析プログラムや画像データを一時的に保持するため利用される。
406はHDD(Hard Disk Drive)などの不揮発メモリであり、画像解析を目的とするプログラムが複数格納されている。なお、この複数の画像解析プログラムは、同一目的の画像解析プログラムも含まれ、それぞれ実行を行うハードウェアの数や種類ごとにチューニングされている。
図11は本実施例における、仮想マシン108および仮想マシン109の機能ブロックを示した図である。なお本発明の説明に不要な、一般的な仮想マシンとしての機能ブロックは省略している。
501は解析プログラム・解析画像受信部あり、インターネット105を通じて画像閲覧装置102から、医師の指定した解析画像と解析処理に対応する画像解析プログラムを受信する。
502は画像解析部で、501が受信した画像解析プログラムを、501が受信した解析画像を対象に実行する。
503は状況送信部であり、画像解析プログラムの実行する画像解析の進捗状況を画像閲覧装置102に送信する。この進捗状況は、たとえば画像解析プログラムが進捗率を算出し、状況送信部503に送信する。なお、画像解析の採用するアルゴリズムに応じて、進捗状況の定義は異なってよい。たとえば画像類似度といった評価値を勾配法により最適化する位置合わせの場合、過去の収束回数と現時点の反復回数の比率から算出することができる。ほかにも、反復回数に応じて評価値がどのように減少していくかを示す予め用意したモデルとの比較によって算出してもよい。本発明は、画像解析プログラムの進捗状況の算出方法は特に限定されない。
504は終了判定部である。画像解析が終了するかを判定し、終了していれば結果送信部505が画像解析処理の結果を送信する。
505は結果送信部であり、画像解析処理の結果を送信する。
506は移行要求受信部であり、画像閲覧装置102より仮想マシンの移行要求がないか監視を行う。移行要求を受信した際は画像解析を中断する。
507は中間データ送信部であり、移行要求を受信した際に、移行先の仮想マシンに中間データを送信する。
図12は本実施例における、画像閲覧装置102の機能ブロックを示した図である。なお本発明の説明に不要な、一般的な画像閲覧装置としての機能ブロックは省略している。
601は解析タスク決定部であり、解析対象の画像と解析手法、およびその実行時間の上限を決定する。操作者に選択肢を提示し、操作者によって決定される。
ここで、図9を用いてファイル選択や画像解析方法の選択を行う画面を説明する。図9は、本実施例における、解析タスク決定部601を実行する際にヒューマンインタフェース204に表示する画面の例を示す図である。
301は画像ファイル選択領域であり、画像サーバ104に格納された画像の名称一覧が表示され、操作者がヒューマンインタフェース204の操作を通じて複数を選択状態に設定可能となっている。
302はプレビュー領域であり、画像選択領域301によって最後に選択された画像を表示する領域である。操作者はこれにより、画像名称に対応する画像データの可視表現を視認することができる。
303は締め切り時間、すなわち実行時間の上限を指定する領域であり、操作者が任意の値を指定することができる。
304は解析の実行を指示するボタンであり、操作者が所望する解析手法が選択できるようになっている。この304の押下を契機に、301で選択された画像に対して、303で指定された上限にして、ボタンに表示された解析処理が開始される。
図12の説明に戻る。602は解析プログラム・解析画像送信部であり、後述するプログラム選択部605により決定された画像解析プログラムと解析タスク決定部601で決定した解析画像を、後述するコスト最適化部603により決定された仮想マシンに送信する。
603はコスト最適化部であり、決定した解析タスクに関して、各仮想マシンでの実行速度予測値と、仮想マシンの価格に基づき、実行時間の締め切りを満たす仮想マシンのうち、コスト最適な仮想マシンを決定する。本実施例におけるコスト最適とは、解析タスクの実行時間の締め切りを満たしつつ、仮想マシンの利用コストを最も抑えたものをいう。尚、コスト最適は利用コストを最も抑えたものである必要はなく、現在利用している仮想マシンの利用コストと比較して金額が抑えられるものであればよい。
604は実行速度予測部であり、指定された仮想マシンを用いた場合の、指定された解析処理を行うプログラムの実行時間を予測する。本実施例では、過去の実行時間の記録を用いて予測を行う。
605はプログラム選択部であり、指定された解析処理を行う画像解析プログラムが複数ある場合に、仮想マシンの特性に基づき、最も高速に実行可能な画像解析プログラムを選択する。尚、選択する画像解析プログラムが該仮想マシンにおいて最も高速である必要はない。実行時間の締め切りまでに解析タスクが完了できる画像解析プログラムが選択できればよい。
606は仮想マシン価格表であり、仮想マシンの種別と、その利用料金を対応づけたものである。コスト最適化部603がコスト最適化を行う際に用いるもので、予め不揮発メモリ206に格納されている。なお、クラウドプロバイダが価格を更新した際は、この仮想マシン価格表も更新するように、クラウドプロバイダの提供する価格情報を監視するように構成することが望ましい。
ここで、図13(A)は、仮想マシン価格表606の一例である。仮想マシンの種別、各種の演算機能、メモリ、アクセラレータの有無、ストレージ容量、利用料金、利用料金の発生契機などが格納されている。なおこれはあくまで一例であり、図示された項目以外の関連する情報を含めてよい。
図12の説明に戻る。607は実行時間管理表であり、仮想マシンで過去に実行した画像解析プログラムの実行時間を記録したものである。これは画像解析プログラムを実行するたびに更新してもよいし、あらかじめ測定をしたものを固定的に用いてもよい。不揮発メモリ206に格納されている。
ここで、図13(D)は、実行時間管理表607の一例である。プログラムの種別と、仮想マシンの種別を対応づけて、過去の実行時間がすべて記録されている。
図12の説明に戻る。608はプログラム管理表であり、予め用意された複数の画像解析プログラムが管理さており、不揮発メモリ206に格納されている。プログラム選択部605が画像解析プログラムの中から、仮想マシンで動作する画像解析プログラムを選択するのに用いる。
ここで、図13(B)は、プログラム管理表608の一例である。画像解析プログラム、その動作環境などが対応付けされている。
図12の説明に戻る。609は監視部であり、仮想マシンでの解析プログラムの実行状況を監視する。監視している状況に基づいてコスト最適化を行い、仮想マシンを移行すべきか判定を行う。
610は移行制御部であり、監視部609が移行処理を決定した際に駆動されるものであり、画像解析プログラムを実行している仮想マシンから、解析が終わっている部分を引き継いで、新しい仮想マシンで実行を行うための制御を行う。具体的には、移行後の仮想マシンの利用開始手続きや画像解析プログラムの送信をしつつ、移行前の仮想マシンから、画像解析プログラムの継続に必要な中間データの抜き取りを行い、新しい仮想マシンへ転送を行う。
611は仮想マシン利用管理表であり、現在実行している解析処理ごとに、実行している仮想マシンなどを対応づけたものである。これは、解析処理が実行や終了などを契機に更新されるもので、揮発メモリ205に格納される。
ここで、図13(C)は、仮想マシン利用管理表611の一例である。利用中の仮想マシンごとに、仮想マシンの種別、解析対象画像、利用開始時刻、画像解析プログラムの状態、利用領料金、および利用料金の発生契機などを対応づけている。
図12の説明に戻る。612は解析結果受信部であり、仮想マシンで実行した画像解析プログラムの解析結果を受信する。
613は解析画像表示部であり、解析結果をヒューマンインタフェース204に表示する。
ここで、図18を用いて、解析タスク決定部601によって画像が選択されてから、解析画像表示部613が解析結果の画像を表示するまでの一連の流れを、画像閲覧装置102における処理について簡単に説明する。図18は、画像閲覧装置102が実行する画像解析処理の概要を示したフローチャートである。
ステップS1201は、画像閲覧装置102が解析開始の指示があるか判定するステップである。指示があれば、画像閲覧装置102がステップS1202に処理を進める。ここで画像開始の指示は、解析ボタン304の押下である。指示がない場合は、画像閲覧装置102がステップS1204に処理を進める。
ステップS1202は、画像閲覧装置102がコスト最適な仮想マシンと、その仮想マシンで最も高速に動作する画像解析プログラムを選択するステップである。このとき、画像閲覧装置102は、すでに画像解析プログラムが終了している空き状態の仮想マシンと新規に利用できる仮想マシンから選択する。新たに利用を開始する場合は、画像閲覧装置102がクラウドプロバイダに利用開始を要求する。なお、画像解析プログラムが終了している仮想マシンは仮想マシン利用管理表611から検索することができ、新しい仮想マシンは仮想マシン価格表606から検索することができる。また、各仮想マシンで最も高速な画像解析プログラムと実行時間の予測値は、実行時間管理表607から検索することができる。
ステップS1203は、画像閲覧装置102が、ステップS1202で選択した画像プログラムと解析対象の画像データを、ステップS1202で選択した仮想マシンに送信するステップである。
ステップS1204は、画像閲覧装置102が、ステップS1203で送信した画像解析プログラムが完了したか判定するステップである。具体的には、画像閲覧装置102が画像解析プログラムの終了通知がくるまでステップS1204を繰り返し、完了すれば画像閲覧装置102がステップS1205に処理を進める。
ステップS1205は、画像閲覧装置102が、仮想マシン利用管理表611の当該タスクが完了した旨を更新するステップである。この制御により、以降でコスト最適化を行う際に、次に利用料金が発生するまでは、当該実行マシンが利用可能となる。
ステップS1206は、画像閲覧装置102が、画像解析プログラムが解析した解析結果を受信するステップである。
ステップS1207は、画像閲覧装置102が、画像解析結果をヒューマンインタフェース204に表示するステップである。
ステップS1208は、画像閲覧装置102が、ステップS1202で選択した仮想マシンの利用が終了したか判定するステップである。具体的には、画像閲覧装置102が、画像解析プログラムの終了通知がくるまでステップS1208を繰り返し、完了すれば画像閲覧装置102がステップS1209に処理を進める。
ステップS1209は、画像閲覧装置102が、仮想マシン利用管理表611から、終了した仮想マシンの情報を削除するステップである。
図14は、本実施例における、図11で説明した仮想マシンの機能ブロックの処理の流れを説明するためのフローチャートである。なお、仮想マシンの利用開始処理は予め終わっているものとする。
ステップS801は、仮想マシンが、画像閲覧装置102から画像解析プログラムと処理対象である画像データの受信が完了しているか判定するステップである。完了していれば仮想マシンがステップS802に処理を進め、完了していなければ仮想マシンがステップS804に処理を進める。
ステップS802は、仮想マシンが、受信した画像解析プログラムを、受信した画像データを対象に設定して起動するステップである。画像解析プログラムが終了すると、仮想マシンがステップS803に処理を進める。
ここで、図15を用いて、画像解析プログラムの処理を説明する。
図15(A)は、本実施例における、画像位置合わせを行う画像解析プログラムの概要を示すフローチャートである。すなわち、304で示した解析ボタンのうち、位置合わせに対応する解析ボタンが押下された際に実行されるプログラムである。
ステップS901は、仮想マシンが剛体位置合わせを実施するステップである。
ステップS902は、仮想マシンが非剛体位置合わせを低解像度で行うステップである。このとき、仮想マシンは、ステップS901で求めた変形情報に基づいて、入力画像を変形してから位置合わせを行う。
ステップS903は、仮想マシンが非剛体位置合わせを高解像度で行うステップである。このとき、仮想マシンは、ステップS902で求めた変形情報に基づいて、入力画像を変形してから位置合わせを行う。
ステップS904は変形画像を送信するステップであり、ステップS903で求めた変形情報を用いて、入力画像を変形し、画像閲覧装置102に送信する。
ステップS901、ステップS902、ステップS903で説明したように、本実施例における位置合わせ処理は、位置合わせを複数の手法で行い、段階を経るごとに高精度となるように設計されている。計算量が軽いが複雑な変形に対応できない剛体位置合わせをまず行い、次に、計算に時間がかかるが複雑な変形に対応した非剛体位置合わせを、低解像度、高解像度の順に行う。また各位置合わせ手法が求めた変形情報は、次の位置合わせ手法の入力画像の変形に利用される。
ここで、図15(B)を用いて、ステップS901,ステップS902,ステップS903の詳細な処理内容を、典型的な反復的位置合わせ手法をモデルとして述べる。図15(B)は、ステップS901,ステップS902,ステップS903で実行される、位置合わせ処理の詳細を示すフローチャートである。
ステップS905は、仮想マシンが変形情報の更新を行うステップであり、更新量を算出し、変形情報に反映させる。変形量算出方法は、位置合わせ手法によって様々な定義があるが、特に限定しない。
ステップS906は、仮想マシンが位置合わせ精度を評価するステップであり、ステップS905によって更新された変形情報の評価値を算出する。
ステップS907は、仮想マシンが評価値が収束したかを判定するステップであり、評価値の変化が少ない場合は処理を終了し、そうでなければステップS908へ処理を進める。
ステップS908は、仮想マシンが進捗率を送信するステップであり、ステップS906で求めた評価値から進捗率を算出し、画像閲覧装置102に送信する。
ステップS910は、仮想マシンが画像解析プログラムの移行要求を受信しているか判定するステップであり、画像閲覧装置102にから移行要求が来ていれば、ステップS911へ処理を進め、そうでなければステップS905へ処理を進める。
ステップS911は、仮想マシンが画像解析プログラムの中間データ送信処理を行うステップであり、位置合わせ処理の継続に必要な変形情報を送信する。また、画像解析プログラムの中間データは、画像解析の種類に応じて異なる点に注意されたい。
ステップS912は、仮想マシンがプログラムを終了するステップである。
図14の説明に戻る。ステップS803は、画像解析プログラムが終了したことを画像閲覧装置102へ通知するステップである。
ステップS804は、仮想マシンが、現時刻に仮想マシン利用終了に要する時間を加味した時刻と、次の利用料金が発生する時刻の、差異が所定の値(例えば利用単位時間の1%)より少ないか判定するステップである。すなわち、仮想マシンの利用を終了している最中に利用料金が発生しないようにしている。差が少なければ仮想マシンはステップS805に処理を進め、そうでなければ仮想マシンはステップS801に処理を進める。
ステップS805は、仮想マシンが、仮想マシンの利用を終了することを画像閲覧装置102へ通知するステップである。ステップS806は、仮想マシンが、仮想マシン利用終了をするステップである。
図16は、画像閲覧装置102の監視部609と移行制御部610が実行する処理の流れを示すフローチャートである。なお、図10に示す監視及び移行の処理は、仮想マシン利用管理表611で管理されている画像解析タスクについて、ひとつずつ実行する。また、本フローチャートは、現在時刻が、タスクの実行に際して次に利用コストが発生する所定時刻から該タスクの移行に要する時間を減じた時刻である場合に実行される。または、現在時刻が、タスクの実行に際して次に利用コストが発生する所定時刻から該タスクの移行に要する時間を減じた時刻よりも所定時間前(例えば1分前や5分前等)の時刻である場合に実行される。
ステップS1001は、画像閲覧装置102が、仮想マシンで実行している仮想プログラムの進捗状況が、前回のスケジューリング時に予測した進捗状況との差異が所定値以上かを判定するステップである。すなわち、画像閲覧装置102が、タスクの進捗状況が悪いか否かを判定するということである。本実施例では、画像位置合わせ処理の場合、各段階での平均終了評価値との比較値と、実行時間の標準偏差の大きさに応じた安全係数をもちいて、画像閲覧装置102がタスクの進捗状況を算出する。差異が大きければ画像閲覧装置102がステップS1005に処理を進め、そうでなければ画像閲覧装置102がステップS1002に処理を進める。
なお、それら平均終了時間や処理終了時の平均的な評価値などは、実行時間管理表607から都度算出する方法もあるが、あらかじめ算出したものを画像閲覧装置102が保持しておくと効率的である。一例を図13(E)のプログラム特性管理表701を示しておく。なおこの表は、画像解析プログラムと仮想マシンの組み合わせごとに作成されているのが望ましい。
ステップS1002は、画像閲覧装置102が、現在の時刻が当該仮想マシンの利用料金が発生する契機が近い(例えば利用単位時間の1%以内)か判定するステップである。契機が近ければ画像閲覧装置102がステップS1005に処理を進め、そうでなければ画像閲覧装置102がステップS1003に処理を進める。
ステップS1003は、画像閲覧装置102が、画像解析タスクが終了しているか確認するステップである。当該タスクの終了がはじめて判明した際は、画像閲覧装置102がステップS1005に処理を進め、そうでなければ画像閲覧装置102がステップS1004に処理を進める。
ステップS1004は、画像閲覧装置102が、所定の間隔が経過したか判定するステップである。画像閲覧装置102は、以前にステップS1004を実行した時刻と比較し、所定の間隔(例えば1分)がたっていれば、ステップS1005に処理を進め、そうでなければステップS1001に処理を進める。
ステップS1005は、画像閲覧装置102が、当該画像解析タスクに関して、コスト最適となる仮想マシンの割り当てを行うステップである。
ここで、図17(A)を用いて、ステップS1005の処理を詳細に説明する。図17(A)は、本実施例における、実行中の画像解析タスクに関して、コスト最適化を行うフローチャートである。
ステップS1101は、画像閲覧装置102が、空き仮想マシンを利用したスケジュール案を生成するステップである。具体的には、画像閲覧装置102が仮想マシン利用管理表611を参照し、実行が完了している、利用中の仮想マシンを用いたスケジュール案を生成する。
ステップS1102は、画像閲覧装置102が、新しく仮想マシンを利用したスケジュール案を生成するステップである。画像閲覧装置102は、新規に利用可能な仮想マシン全てで実行するスケジュールを仮想マシンごとに生成する。なお、利用料金の変化の契機などで他の実行マシンへ遷移するスケジュール案なども含めてもよい。
ステップS1103は、画像閲覧装置102が、処理目的にあうプログラムについて繰り返し実行するステップである。画像閲覧装置102は、プログラム管理表608で管理されたプログラムのうち、実行する画像解析処理の用途に合うプログラムすべてについて、ひとつずつ繰り返す。
ステップS1104は、画像閲覧装置102が、ステップS1101で作成したスケジュール案それぞれについて繰り返し実行するステップである。
ステップS1105は、画像閲覧装置102が、画像解析プログラムの進捗率、入力画像の特徴、過去の実行時間といった情報に基づいて、スケジュール案が示す仮想マシンで実行した場合の残処理の実行時間を予測する。
ステップS1106は、画像閲覧装置102が、スケジュール案が示す仮想マシンが、現在実行している仮想マシンと異なる場合には、ステップS1105で求めた予測実行時間に、移行に要する時間を加算する。ここで移行に要する時間とは、実行中の画像解析プログラムの処理中断に要する時間、処理の継続に必要な中間データの転送処理に要する時間、新しい仮想マシンに画像データと中間データと画像解析プログラムを送信するのに要する時間、などである。ほかに、新しく仮想マシンの利用を開始するのに要する時間などもある。
ステップS1107は、画像閲覧装置102が、過去の実行時間のばらつきに応じてステップS1106で求めた予測実行時間を補正するステップである。ここで、ばらつきの大きいものには、より大きな安全係数を用いて補正する。ここでは、画像閲覧装置102は、プログラム特性管理表701に保持されている、実行時間の標準偏差に所定の係数を乗じたものを用いる。
ステップS1108は、画像閲覧装置102が、予測実行時間に基づいて、仮想マシンの利用料金を算出するステップである。画像閲覧装置102は、仮想マシン価格表606を参照し、利用料金が発生する契機ごとに、その際の利用料金を積算することで算出する。
ステップS1109は、画像閲覧装置102が、ステップS1104に処理を戻すステップである。
ステップS1110は、画像閲覧装置102が、ステップS1103に処理を戻すステップである。
ステップS1111は、画像閲覧装置102が、スケジュール案のうち、締め切りを守るかどうかを判定し、そのなかでも、利用料金が少ないスケジュール案を選択するステップである。
ここで、図16の説明に戻る。ステップS1006は、画像閲覧装置102が、仮想マシン割り当てに変化があるか判定するステップである。ステップS1005で求めたコスト最適な仮想マシン割り当てが、現在画像解析プログラムを実行している仮想マシンとは異なる場合、画像閲覧装置102がステップS1007に処理を進め、そうでなければステップS1001に処理を戻す。
ステップS1007は、画像閲覧装置102が、画像解析タスクを実行している仮想マシンを移行するステップである。仮想マシンの詳細については、図17(B)を用いて後述する。ステップS1007の処理が完了すると、ステップS1001に戻る。
ここで、図17(B)を用いて、ステップS1007の処理を詳細に説明する。図17(B)は、本実施例における、画像解析タスクに関して、仮想マシンの移行を行うフローチャートである。
本実施例では、ステップS1112およびステップS1114が並行に開始される。
ステップS1112は、画像閲覧装置102が、移行先の仮想マシンの利用開始を行うステップである。画像閲覧装置102がパブリッククラウド100のプロバイダの仮想マシン管理システム(不図示)と通信し、仮想マシンの割り当て、仮想OSの起動などが行われる。
ステップS1113は、画像閲覧装置102が、仮想マシンの起動が完了したか判定するステップである。画像閲覧装置102は、起動が完了するまで判定を繰り返し、完了したらステップS1116に処理を進める。
ステップS1114は、画像閲覧装置102が、画像解析タスクを実行している仮想マシンに移行要求を送信するステップである。先に説明したとおり、この要求が行われると、仮想マシンは画像解析処理を中断し、画像解析処理の継続に必要な中間データが画像閲覧装置102に送信される。
ステップS1115は、画像閲覧装置102が、仮想マシンから中間データを受信するステップである。中間データの受信が完了すると、画像閲覧装置102はステップS1116に処理を進める。
ステップS1116は、画像閲覧装置102が、ステップS1113およびステップS1115のステップがどちらも完了したことを契機に開始される。ステップS1116は、画像閲覧装置102が移行先の仮想マシンに画像データ、ステップS1114で受信した中間データと、ステップS1111で選択されているプログラムを送信する処理である。
以上説明した処理制御を行うと、画像解析タスクが進捗する度に、残処理に対するコスト最適な仮想マシンが選定され、仮想マシンの変更が必要な際は移行制御が行われることにより、一層の効率化が図られる。
また、仮想マシンの移行時は、画像解析の中間データを転送するという特徴的な制御により、同一目的だが実装が異なる画像解析プログラムが処理を継続できるようになる。本実施例では、同一目的の画像解析プログラムを複数備え、仮想マシンごとに比較的高速な画像解析プログラムを選択するという特徴的な制御をさらに備え、仮想マシンの利用時間を短縮し、一層の効率化がなされる。
また、画像解析プログラムの実行が完了しても、仮想マシンの利用料金が発生する直前まで仮想マシンの終了処理がなされないという特徴的な制御により、他の画像解析タスクが当該仮想マシンを活用可能となり、一層の効率化がなされる。
<実施例4の変形例>
実施例4において、コスト最適化部603、実行速度予測部604、プログラム選択部605、監視部609、移行制御部610を画像閲覧装置102に備えるとしたが、これらの機能を、画像解析を行う仮想マシン内に備えるように構成してもよい。それにより、画像閲覧装置102の処理負荷を低減することが可能である。その場合は、ステップS908で進捗率を求めた直後に、図17(A)のフローを実行する。さらに別の構成として、図17(A)のフローを実行する仮想マシンを、画像解析用の仮想マシンとは別に、専用に用意する構成でもよい。
本実施例において、実行時間の予測方法は過去の実行時間の記録に基づいて予測するとしたが、過去の実行時間の記録が無い場合に、ハードウェア特性の類似性の高い仮想マシンの記録を用いてもよい。その際は類似する仮想マシンの秒あたりの演算回数やメモリ転送帯域などの比率に基づいて算出した値を流用する。
本実施例において、画像解析の対象が画像位置あわせ処理を例に説明したが、他の画像解析処理においても、進捗の算出方法が画像解析の方法に合わるだけで、同様の制御で適用可能である。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
<その他の変形例>
なお、各実施例は、前述した各実施例の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も各実施例に含まれる。
したがって、各実施例の機能処理をコンピュータで実現(実行可能と)するために、前記コンピュータにインストールされるプログラムコード自体も各実施例を実現するものである。つまり、各実施例は、各実施例の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから各実施例のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、各実施例のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、各実施例の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、各実施例に含まれるものである。
また、各実施例のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した各実施例の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した各実施例の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した各実施例の機能が実現される。
なお、前述した各実施例は、各実施例を実施するにあたっての具体化の例を示したものに過ぎず、これらによって各実施例の技術的範囲が限定的に解釈されてはならないものである。即ち、本開示の仕組みはその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
10 情報処理装置
108 第一の仮想マシン
109 第二の仮想マシン
31 取得部
32 判定部
33 選択部
34 指示部
35 送信部

Claims (12)

  1. タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置であって、
    前記タスクの進捗を示す情報を、該タスクを実行している第一のサーバから取得する取得手段と、
    次に利用コストが発生する前記所定時刻と前記タスクの移行に要する時間とに基づくタイミングで、前記取得された情報に基づいて前記タスクの進捗が遅れているかを判定する判定手段と、
    前記判定手段により前記タスクの進捗が遅れていると判定された場合に、前記第一のサーバよりも処理能力の高い第二のサーバを選択する選択手段と、
    前記選択された第二のサーバに対して、前記タスクの実行を指示する指示手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記タイミングは、次に利用コストが発生する前記所定時刻から前記タスクの移行に要する時間を減じた時刻又は該時刻より前の時刻であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記選択手段は、所定の期限までに前記タスクを完了することの可能なサーバを前記第二のサーバとして選択することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記タスクは、画像処理を複数回実行するタスクであり、
    前記取得手段は、前記タスクの進捗を示す情報を、該タスクの画像処理が実行される度に取得することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記指示手段は、更に、前記第一のサーバに対して、前記タスクの実行に必要な情報を送信するよう指示することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記情報処理装置は、
    前記タスクを実行するサーバの環境に応じたプログラムを、前記選択された第二のサーバに送信する送信手段
    を更に備えることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記環境は、前記タスクを実行するサーバのハードウェア構成であることを特徴とする請求項6に記載の情報処理装置。
  8. 前記プログラムは、前記タスクを実行するサーバの環境において最も高速に動作するプログラムであることを特徴とする請求項6または7に記載の情報処理装置。
  9. 前記情報が示す進捗は、前記タスクの実行結果の評価値であることを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記サーバは、仮想マシンであることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置の制御方法であって、
    前記情報処理装置の取得手段が、前記タスクの進捗を示す情報を、該タスクを実行している第一のサーバから取得する取得ステップと、
    前記情報処理装置の判定手段が、次に利用コストが発生する前記所定時刻と前記タスクの移行に要する時間とに基づくタイミングで、前記取得された情報に基づいて前記タスクの進捗が遅れているかを判定する判定ステップと、
    前記情報処理装置の選択手段が、前記判定ステップにより前記タスクの進捗が遅れていると判定された場合に、前記第一のサーバよりも処理能力の高い第二のサーバを選択する選択ステップと、
    前記情報処理装置の指示手段が、前記選択された第二のサーバに対して、前記タスクの実行を指示する指示ステップと、
    を備えることを特徴とする情報処理装置の制御方法。
  12. タスクの実行に際して所定時刻ごとに利用コストが発生する複数のサーバと通信可能な情報処理装置の制御方法を実行可能なプログラムであって、
    前記情報処理装置を、
    前記タスクの進捗を示す情報を、該タスクを実行している第一のサーバから取得する取得手段と、
    次に利用コストが発生する前記所定時刻と前記タスクの移行に要する時間とに基づくタイミングで、前記取得された情報に基づいて前記タスクの進捗が遅れているかを判定する判定手段と、
    前記判定手段により前記タスクの進捗が遅れていると判定された場合に、前記第一のサーバよりも処理能力の高い第二のサーバを選択する選択手段と、
    前記選択された第二のサーバに対して、前記タスクの実行を指示する指示手段、
    として機能させることを特徴とするプログラム。
JP2016234099A 2016-12-01 2016-12-01 情報処理装置、その制御方法、及びプログラム Pending JP2018092311A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016234099A JP2018092311A (ja) 2016-12-01 2016-12-01 情報処理装置、その制御方法、及びプログラム
US15/827,492 US10545799B2 (en) 2016-12-01 2017-11-30 Information processing apparatus, method for controlling same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234099A JP2018092311A (ja) 2016-12-01 2016-12-01 情報処理装置、その制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2018092311A true JP2018092311A (ja) 2018-06-14

Family

ID=62240085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234099A Pending JP2018092311A (ja) 2016-12-01 2016-12-01 情報処理装置、その制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US10545799B2 (ja)
JP (1) JP2018092311A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020261483A1 (ja) * 2019-06-27 2020-12-30
WO2021117186A1 (ja) * 2019-12-12 2021-06-17 三菱電機株式会社 データ処理実行装置、データ処理実行方法及びデータ処理実行プログラム
DE112022000944T5 (de) 2021-03-24 2023-12-14 Fujifilm Corporation Verarbeitungssystem für medizinische informationen und verarbeitungsverfahren für medizinische informationen, bereitstellungsverfahren von verarbeitungsdienst für medizinische informationen und programm

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620156B2 (en) * 2020-12-04 2023-04-04 Red Hat, Inc. Live migration with guaranteed maximum migration downtimes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040194055A1 (en) * 2003-03-24 2004-09-30 International Business Machines Corporation Method and program product for costing and planning the re-hosting of computer-based applications
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
CN104008013B (zh) * 2013-02-26 2018-02-09 华为技术有限公司 一种核资源分配方法、装置及众核系统
FR3035243B1 (fr) * 2015-04-20 2018-06-29 Commissariat A L'energie Atomique Et Aux Energies Alternatives Placement d'une tache de calcul sur un processeur fonctionnellement asymetrique

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020261483A1 (ja) * 2019-06-27 2020-12-30
WO2020261483A1 (ja) * 2019-06-27 2020-12-30 日本電気株式会社 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
JP7314999B2 (ja) 2019-06-27 2023-07-26 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
WO2021117186A1 (ja) * 2019-12-12 2021-06-17 三菱電機株式会社 データ処理実行装置、データ処理実行方法及びデータ処理実行プログラム
DE112022000944T5 (de) 2021-03-24 2023-12-14 Fujifilm Corporation Verarbeitungssystem für medizinische informationen und verarbeitungsverfahren für medizinische informationen, bereitstellungsverfahren von verarbeitungsdienst für medizinische informationen und programm

Also Published As

Publication number Publication date
US10545799B2 (en) 2020-01-28
US20180157541A1 (en) 2018-06-07

Similar Documents

Publication Publication Date Title
US10841236B1 (en) Distributed computer task management of interrelated network computing tasks
US11310331B2 (en) Optimizing user interface data caching for future actions
US9826031B2 (en) Managing distributed execution of programs
JP2018092311A (ja) 情報処理装置、その制御方法、及びプログラム
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US8935404B2 (en) Saving program execution state
US8966030B1 (en) Use of temporarily available computing nodes for dynamic scaling of a cluster
US9329909B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US20160380908A1 (en) Resource Prediction for Cloud Computing
JP6901683B2 (ja) 調整プログラム、調整装置および調整方法
JP2013533540A (ja) 適応画像レンダリングおよびインポスターの使用
CN103608801A (zh) 演示软件自动化服务
US20150095875A1 (en) Computer-assisted release planning
JP2020129257A (ja) スケジュールプログラム、スケジュール装置およびスケジュール方法
US11057315B1 (en) Generating a scaling plan for external systems during cloud tenant onboarding/offboarding
JP2019061359A (ja) プログラム及び情報処理装置
US9971683B1 (en) Automatic computer memory management coordination across a group of servers
JP6815975B2 (ja) Api管理システムおよびapi管理方法
JP2017173894A (ja) オーケストレーションサーバ、オーケストレーション方法、およびオーケストレーションプログラム
JP2008305313A (ja) リモートデフラグ方式、サービス装置、プログラム、及びリモートデフラグ方法
JP2019003568A (ja) 処理計画装置、処理計画方法及びプログラム
JP2018165860A (ja) 分散コンピューティングシステム、処理選択装置、処理選択方法及びプログラム
US11922226B2 (en) Adaptive control of deadline-constrained workload migrations
US20240135265A1 (en) Method, system, and computer-readable medium for connecting users to different types of care suppliers
JP2024031670A (ja) 管理方法、管理装置、および管理プログラム