JP2018128811A - 情報処理装置、情報処理方法、プログラム - Google Patents

情報処理装置、情報処理方法、プログラム Download PDF

Info

Publication number
JP2018128811A
JP2018128811A JP2017020910A JP2017020910A JP2018128811A JP 2018128811 A JP2018128811 A JP 2018128811A JP 2017020910 A JP2017020910 A JP 2017020910A JP 2017020910 A JP2017020910 A JP 2017020910A JP 2018128811 A JP2018128811 A JP 2018128811A
Authority
JP
Japan
Prior art keywords
processor
offload
processing
information
processes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017020910A
Other languages
English (en)
Other versions
JP6891521B2 (ja
Inventor
賢治 兼村
Kenji Kanemura
賢治 兼村
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017020910A priority Critical patent/JP6891521B2/ja
Publication of JP2018128811A publication Critical patent/JP2018128811A/ja
Application granted granted Critical
Publication of JP6891521B2 publication Critical patent/JP6891521B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

【課題】オフロード処理を行う際には、全体としてのアプリケーションの実行時間の短縮に寄与しないオフロード処理をしてしまうおそれがあり、オフロード先のリソースを効率的に利用することが難しい、という課題を解決すること。【解決手段】プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、情報処理装置は、プロセッサで同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサに実行させるか否かプロセスごとに判断する判断手段を有する。【選択図】図8

Description

本発明は、情報処理装置、情報処理方法、プログラムに関し、特に、メインプロセッサにおいて実行する並列分散プログラムの一部をサブプロセッサで実行するオフロード処理を行う情報処理装置、情報処理方法、プログラムに関する。
メインプロセッサとサブプロセッサとを備えるサーバシステムなどの情報処理装置が知られている。このような情報処理装置では、プログラムのレイテンシを短くするなどの目的のため、メインプロセッサで動作するプログラムの実行処理の一部をサブプロセッサに実行させるオフロード処理を行うことがある。
このようなオフロード処理を行う際に用いられる技術の一つとして、例えば、特許文献1がある。特許文献1には、第1プロセッサと、第2プロセッサと、第1プロセッサと第2プロセッサとをつなぐ通信バスと、通信バス遅延モニタリング部と、オフロード判定・指示部と、を有する演算処理システムが記載されている。特許文献1によると、通信遅延モニタリング部は、通信バスにおける遅延時間を観測して、バス利用率を求める。また、オフロード判定・指示部は、バス利用率に基づいて、入力処理のオフロード判定および指示を行う。このようにバス利用率に基づくオフロード判定、指示を行うことで、サブプロセッサである第2プロセッサによる処理に対する応答時間の制約を満たしつつ、メインプロセッサである第1プロセッサの処理量を減らして消費電力を低減することが出来る。
また、関連する技術として、例えば、特許文献2がある。特許文献2には、分散並列処理の各オフロード対象処理のオフロード比率を変更する技術が記載されている。具体的には、特許文献2には、特定処理判定手段と、処理変換手段と、を備えるプログラム変換装置が記載されている。特許文献2によると、特定処理判定手段は、第1のプロセッサが備える第1のリソースの第1の使用量と第2のプロセッサが備える第2のリソースの第2の使用量との使用比率を第1の比率として併用して動作する第1の実行方式指定プログラムを含む対象プログラム中の部分プログラムの範囲を判定する。また、処理変換手段は、部分プログラムを、使用比率を第1の比率とは異なる第2の比率として併用して動作する第2の実行方式指定プログラムに変換し、変換後プログラムを生成する。このような構成により、システムが備えるプロセッサのリソースを最大限に使用し、処理能力を向上させることが出来る。
特開2016−139271号公報 国際公開第2014/002412号
並行して動作するプロセス間でメッセージを送受信するメッセージパッシング型の分散処理プログラムなどにおいては、プロセス間で通信処理や同期処理を行いながらアプリケーションの実行を進めていくことが一般的である。そのため、上記のような分散処理プログラムでは、プロセスごとに通信や同期の待ち時間が発生することになる。
しかしながら、特許文献1に記載されている技術では、バス利用率のみが考慮されており、上記プロセス間の待ち時間は考慮されていない。そのため、オフロードによって部分的に処理が高速化できたとしても、待ち時間が増加するのみであり、全体としてのアプリケーションの実行時間の短縮には寄与しないことがあった。その結果、オフロード先のリソースを効率的に利用できていないおそれがある、という問題が生じていた。
また、特許文献2に記載されている技術でも、プロセス間の待ち時間は考慮されていない。そのため、特許文献2に記載されている技術は、特許文献1の場合と同様に、全体としてのアプリケーションの実行時間の短縮に寄与せず、オフロード先のリソースを効率的に利用できないおそれがあった。
このように、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題が生じていた。
そこで、本発明の目的は、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することにある。
かかる目的を達成するため本発明の一形態である情報処理装置は、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
前記情報処理装置は、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
という構成を採る。
また、本発明の他の形態であるプログラムは、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラムである。
また、本発明の他の形態である情報処理方法は、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
という構成を採る。
本発明は、以上のように構成されることにより、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することが可能となる。
本発明の第1の実施形態に係る計算機システムの全体の構成の一例を示すブロック図である。 図1で示す計算機システムで実行されるメッセージパッシング型のアプリケーションプログラムの一例を示す図である。 図1で示す計算機が果たす役割の一例を示す図である。 図1で示す計算機システムで実行される処理の一例を説明するための図である。 変換手段により行われる処理の一例を示すフローチャートである。 オフロード実行手段がオフロード比率を決定する際の処理の一例を示すフローチャートである。 オフロード処理を行う際の処理の一例を示すフローチャートである。 本発明の第1の実施形態に係る計算機システムにより行われるオフロード処理の一例を示す図である。 本発明の第2の実施形態に係る情報処理装置の構成の一例を示す概略ブロック図である。
[第1の実施形態]
本発明の第1の実施形態を図1乃至図8を参照して説明する。図1は、計算機システム100の全体の構成の一例を示すブロック図である。図2は、計算機システム100で実行されるメッセージパッシング型のアプリケーションプログラム200の一例を示す図である。図3は、計算機101が果たす役割の一例を示す図である。図4は、計算機システム100で実行される処理の一例を説明するための図である。図5は、変換手段310により行われる処理の一例を示すフローチャートである。図6は、オフロード実行手段320がオフロード比率を決定する際の処理の一例を示すフローチャートである。図7は、オフロード処理を行う際の処理の一例を示すフローチャートである。図8は、計算機システム100により行われるオフロード処理の一例を示す図である。
第1の実施形態では、メインプロセッサ300用のメッセージパッシング型の分散並列プログラムであるアプリケーションプログラム200に基づく実行の一部をサブプロセッサ400へオフロードする処理を行うことが可能な計算機システム100について説明する。本実施形態における計算機システム100で実行される分散並列プログラムは、並列して処理されるプロセス(プログラムの実行単位)間で通信処理や同期処理を行いながらアプリケーション実行を進めていく。後述するように、計算機システム100は、当該計算機システム100において並列で処理する各プロセスの通信待ち、同期待ちの待ち時間(あるいは、同期待ちの開始時刻)を考慮して、プロセスおよびオフロード対象処理ごとに、オフロードするか否か、オフロードする際の比率、などを判断する。つまり、計算機システム100は、同期待ちの開始時刻などに基づいて、メインプロセッサ300が実行する処理の一部をサブプロセッサ400に実行させる。このように同期待ちの待ち時間(同期待ちの開始時刻)を考慮したオフロード実行可否の判断を行うことで、アプリケーション全体の実行時間の短縮に寄与しない不要なオフロードを抑制することが可能となり、サブプロセッサ400のリソースを過剰に利用することを抑制することが可能となる。
図1は、本発明の第1の実施形態に係る計算機システム100(情報処理装置)の全体の構成の一例を示している。図1を参照すると、計算機システム100は、複数の(例えば、2以上の任意の数の)計算機101を有している。また、複数の計算機101のそれぞれは、バスやネットワークなどの接続網105を介して互いに通信可能なよう接続されている。
図1で示すように、計算機101は、例えば、演算処理装置102と、記憶装置103と、通信装置104と、を有している。演算処理装置102は、例えば記憶装置103や外部の記憶装置に格納されたプログラムなどに基づいて演算処理を行う。記憶装置103は、メモリなどであり、プログラムや処理に必要な情報などが格納される。通信装置104は、接続網105を介した他の計算機101との通信の際などに用いる。
本実施形態においては、上記のような計算機101のうち、1つ以上の計算機101がメインプロセッサ300(プロセッサ)の役割を果たし、それ以外の計算機101がサブプロセッサ400(外部プロセッサ)の役割を果たす。また、本実施形態においては、メインプロセッサ300はベクトル処理を高速実行可能なベクトルプロセッサであるとし、サブプロセッサ400は、スカラ処理を高速実行可能なスカラプロセッサであるものとする。換言すると、計算機システム100は、1つ又は複数個の計算機101から構成されるベクトル型のメインプロセッサ300(GPGPU(General-purpose computing on graphics processing units)などでも良い)と、1つ又は複数個の計算機101から構成されるスカラ型のサブプロセッサ400と、から構成されている。
ここで、図2を参照して、計算機システム100で実行されるメッセージパッシング型のアプリケーションプログラム200の一例について説明する。
図2を参照すると、アプリケーションプログラム200は、オフロード開始指示行201とスカラ処理部202とオフロード終了指示行203とをそれぞれ1つ以上含んでいる。オフロード開始指示行201は、オフロード対象とするコード部分の開始を指定する。スカラ処理部202は、オフロード開始指示行201とオフロード終了指示行との間に挟まれた部分であり、本実施形態におけるオフロード対象処理である。換言すると、計算機システム100は、スカラ処理部202の部分をオフロードするか否か判断するとともに、オフロードする際の比率を判断することになる。オフロード終了指示行203は、オフロード対象とするコード部分の終了を指定する。
また、アプリケーションプログラム200は、ベクトル処理部204を0個以上含んでおり、プロセス間同期処理部205を1つ以上含んでいる。ベクトル処理部204は、メインプロセッサ300において処理することになる部分である。プロセス間同期処理部205は、同時に実行される他のプロセスとの間での同期処理、通信処理などを行うことになる部分である。
なお、アプリケーションプログラム200上での各処理部の出現順序は、図2で示す場合に限定されない。例えば、オフロード開始指示行201より前にベクトル処理部204が存在していても構わない。また、オフロード開始指示行201、オフロード終了指示行203については、図2で示す順での並びを1セットとして、1セット以上をアプリケーションプログラム200が備えるものとする。つまり、アプリケーションプログラム200は、オフロード開始指示行201、オフロード終了指示行203の順番で構成されるセットを1つ以上含んでいる。
以上が、アプリケーションプログラム200の一例である。続いて、図3及び図4を参照して、メインプロセッサ300とサブプロセッサ400についてより詳細に説明する。
メインプロセッサ300は、上述したように、例えばベクトル型のプロセッサである。メインプロセッサ300は、後述する変換手段310により変換されたベクトルプロセッサ向けの実行コードを実行する。また、メインプロセッサ300は、オフロード対象処理の一部又は全部の実行をサブプロセッサ400にオフロードする。
図3を参照すると、メインプロセッサ300は、変換手段310とオフロード実行手段320とを有している。上記各手段は、例えば、メインプロセッサ300として動作する計算機101が有する記憶装置103に格納されたプログラムを、当該計算機101が有する演算処理装置102が実行することで、実現される。
変換手段310は、アプリケーションプログラム200に基づいて、変換後アプリケーションプログラム500を生成する。図4で示すように、変換手段310には、アプリケーションプログラム200が入力される。すると、変換手段310は、アプリケーションプログラム200を入力として、実行形式ファイルである変換後アプリケーションプログラム500を生成する。
図3、図4を参照すると、変換手段310は、ベクトルプロセッサ向けコード生成手段311とオフロード処理コード生成手段312とを有している。
ベクトルプロセッサ向けコード生成手段311は、実行形式ファイルの生成において、メインプロセッサ300であるベクトルプロセッサ上で動作する実行コードを生成する。換言すると、ベクトルプロセッサ向けコード生成手段311は、アプリケーションプログラム200を入力として、ソースコード全体に対して、ベクトルプロセッサ向けの実行コードを生成する。
オフロード処理コード生成手段312は、実行形式ファイルの生成において、オフロード開始指示行201およびオフロード終了指示行203で挟まれたソースコード部分に対して、サブプロセッサ400であるスカラプロセッサ向けの実行コードを生成する。換言すると、オフロード処理コード生成手段312は、スカラ処理部202に対して、ベクトルプロセッサ向けコード生成手段311により生成済みのベクトルプロセッサ向けコードの分岐処理として、スカラプロセッサ向けの実行コードを生成する。後述するオフロード実行手段320は、オフロード処理コード生成手段312により生成された実行コードに基づいて、オフロード処理を実施することになる。
以上のように、変換手段310は、アプリケーションプログラム200を入力として、実行形式ファイルである変換後アプリケーションプログラム500を生成する(図4参照)。変換手段310により生成される変換後アプリケーションプログラム500には、ベクトルプロセッサ向けの実行コードと、スカラプロセッサ向けの実行コードと、が含まれていることになる。
オフロード実行手段320は、計算機システム100上で変換後アプリケーションプログラム500と連携して動作する。
例えば、オフロード実行手段320は、変換後アプリケーションプログラム500を初めて実行する際には、オフロード処理は実施しない。つまり、全ての処理をメインプロセッサ300であるベクトルプロセッサ上でのみ実行する。この際に、オフロード実行手段320は、各処理の性能情報を採取する。そして、オフロード実行手段320は、採取した性能情報に基づく分析を行い、オフロード処理を実行するか否かなどを判断する。また、同一の変換後アプリケーションプログラム500を2回目以降に実行する際には、オフロード実行手段320は、メインプロセッサ300であるベクトルプロセッサだけではなくサブプロセッサ400であるスカラプロセッサも利用して、オフロード処理を伴う実行を行う。この際、オフロード実行手段320は、変換後アプリケーションプログラム500を初めて実行した際の分析結果に基づいて、オフロード処理を実行する。
図3、図4を参照すると、オフロード実行手段320は、処理情報採取手段321と、処理情報分析手段322と、オフロード比率決定手段323と、オフロード処理実行手段324と、を有している。
処理情報採取手段321は、変換後アプリケーションプログラム500を初めて実行する際に、スカラ処理やベクトル処理、通信・同期処理などの各処理について性能情報を採取する。処理情報採取手段321は、採取した性能情報を、例えば記憶装置103に格納する。
性能情報は、オフロード比率を決定するために利用する情報である。性能情報は、例えば、処理情報分析手段322により利用される。性能情報としては、例えば、CPU(Central Processing Unit)やメモリ、キャッシュ等の利用状況等の計算機システム100のリソース情報、命令の種別や引数、呼び出し回数および実行時間等の命令情報、関数の実行時間、引数、呼び出し回数、呼び出し関係などの関数情報、プロセス間の通信・同期処理の通信サイズ、通信・同期の開始・終了時刻、待ち合わせ時間、通信相手の情報等の通信・同期処理情報などが考えられる。性能情報は、上記例示した一部であっても構わないし、上記例示した以外の情報を含んでいても構わない。
処理情報分析手段322は、変換後アプリケーションプログラム500の初めての実行が終了した後、処理情報採取手段321が採取した性能情報に基づいて、プロセスごと、オフロード対象処理ごとに、オフロード処理した場合の同期待ちの開始時間の変化などについて分析する。
例えば、処理情報分析手段322は、変換後アプリケーションプログラム500の初めての実行が終了した後、記憶装置103から性能情報を取得する。そして、処理情報分析手段322は、取得した性能情報に基づいて、オフロードに伴う転送時間も考慮して、予め定められたオフロード比率ごとに、オフロード処理した場合のオフロード対象処理の実行時間の変化、その場合の各通信・同期処理の開始・終了時刻、処理時間および待ち合わせ時間の変化、オフロード処理により消費されるスカラプロセッサのリソース使用量などを分析する。つまり、処理情報分析手段322は、全ての処理をメインプロセッサ300で実行した場合に採取した情報に基づいて、処理の一部をオフロードした場合の通信・同期処理の開始時刻などを推定・分析する。その後、処理情報分析手段322は、分析結果をオフロード比率決定手段323に送信する。
なお、処理情報分析手段322が分析を行うオフロード比率は、任意に設定して構わない(例えば、処理情報分析手段322は、オフロード比率が10%ずつ変化した場合のそれぞれの分析を行うなど)。
オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセス間の同期・通信待ち時間(あるいは、同期待ち開始時刻)を考慮して、アプリケーション全体の実行時間が最小となり、かつ、サブプロセッサ400であるスカラプロセッサのリソース利用量が最小となるように、プロセスごと、オフロード対象処理ごとにオフロード比率を算出する。
例えば、オフロード比率決定手段323は、以下の計算によってオフロード比率を決定する。つまり、オフロード比率決定手段323は、あるプロセスのあるオフロード対象処理とその後に続く同期・通信処理に関して、以下の条件を満たす場合に、オフロード対象処理をオフロード実行することを決定する。
1.“オフロード対象処理のメインプロセッサ300での実行時間” > “オフロード対象処理のサブプロセッサ400での実行時間+オフロード転送時間(往復)”
2.“当該プロセスについて、オフロード対象処理をメインプロセッサ300で実行した場合の同期待ちの開始時刻” > “当該プロセスの同期・通信相手(つまり、並列で実行される他のプロセス)について、オフロード対象処理をオフロード実行(オフロード処理によるオフロード対象処理の実行時間短縮が最も大きい場合のオフロード比率でのオフロード実行)した場合の同期待ちの開始時刻の中で、最も遅い開始時刻”
このように、オフロード比率決定手段323は、オフロードを実行することで、プロセスの全てをメインプロセッサ300が実行するよりも実行時間が短くなることを第1の条件としてオフロードを実行するか否か判断する。
また、オフロード比率決定手段323は、オフロードを実行することで、アプリケーション全体の実行時間が短くなることを第2の条件として、オフロードを実行するか否か判断する。つまり、オフロード比率決定手段323は、メインプロセッサ300で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部をサブプロセッサ400に実行させるか否か判断する。より具体的には、オフロード比率決定手段323は、プロセスをメインプロセッサ300で実行した場合の同期待ちの開始時刻が、並列で実行される他のプロセスにおいてオフロード実行した場合(処理の一部をサブプロセッサ400に実行させた場合)の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部をサブプロセッサ400に実行させる。
また、オフロード比率決定手段323は、オフロード実行すると決定した場合、並列で動作する各プロセスの同期待ちの開始時刻の関係性に基づいて、オフロード対象処理のオフロード比率を決定する。例えば、オフロード比率決定手段323は、上記の条件2において、あるプロセスの同期待ちの開始時刻と当該あるプロセスと並列で動作する他のプロセスの同期待ちの開始時刻とが等しくなるように、オフロード比率を決定する。なお、オフロード比率の変更は、例えば、国際公開第2014/002412号に開示されている方法などを用いて行うことが出来る(例示した以外の方法でオフロード比率を変更しても構わない)。
上記のように、オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセスごと、オフロード対象処理ごとに、オフロードするか否か判断するとともに、オフロードする際のオフロード比率を決定する。その後、オフロード比率決定手段323は、判断した結果や決定したオフロード比率を記憶装置103や外部の図示しない記憶装置に格納する。
なお、本実施形態においては、オフロード比率決定手段323は、第1の条件、及び、第2の条件を同時に確認し、第1の条件、及び、第2の条件を満たす場合に、オフロードする旨を決定するとした。しかしながら、オフロード比率決定手段323は、例えば、第1の条件を満たす場合にのみ、第2の条件を確認し、第2の条件を満たす場合にオフロードする旨を決定するよう構成しても構わない。
オフロード処理実行手段324は、変換後アプリケーションプログラム500を2回目以降に実行する場合において、オフロード比率決定手段323が決定した情報に基づいて、オフロード処理を実行する。つまり、同一の変換後アプリケーションプログラム500を2回目移行に実行する場合、オフロード処理実行手段324は、オフロード比率決定手段323による判断結果や決定結果を示す情報を取得する。そして、オフロード処理実行手段324は、取得した情報に基づいて、プロセスごと、オフロード対象処理ごとに、サブプロセッサ400へのオフロード対象処理の転送と実行、オフロード処理結果の取得を実行する。
なお、オフロード比率決定手段323によりオフロード実行しないと判断されている部分については、オフロード処理は行わずにメインプロセッサ300でそのまま実行されることになる。
以上が、本実施形態における計算機システム100の構成の一例についての説明である。続いて、図5乃至図7を参照して、計算機システム100の動作の一例について説明する。まず、図5を参照して、変換手段310の動作の一例について説明する。
図5を参照すると、変換手段310にアプリケーションプログラム200が入力される。すると、変換手段310のベクトルプロセッサ向けコード生成手段311は、ソースコード全体に対して、ベクトルプロセッサ向けの実行コードを生成する(ステップS101)。
また、変換手段310のオフロード処理コード生成手段312は、オフロード開始指示行201からオフロード終了指示行203に囲まれたソースコード(つまり、スカラ処理部202)に対して、スカラプロセッサ向けの実行コードを生成する(ステップS102)。つまり、オフロード処理コード生成手段312は、上記ステップS101の処理により生成済みのベクトルプロセッサ向けの実行コードの分岐処理として、オフロード処理実行手段324がオフロード処理を実施するスカラプロセッサ向けの実行コードを生成する(ステップS102)。
例えば、上記のような処理により、変換手段310は、入力されたアプリケーションプログラム200に基づいて、ベクトルプロセッサ向けの実行コードとスカラプロセッサ向けの実行コードとを含む変換後アプリケーションプログラム500を生成する。
続いて、図6を参照して、変換後アプリケーションプログラム500を初めて実行する際の処理の流れについて説明する。換言すると、図6を参照して、オフロード実行手段320がオフロード比率を決定する際の処理の一例について説明する。
図6を参照すると、変換後アプリケーションプログラム500を初めて実行する場合、メインプロセッサ300は、例えばオフロードを行わずに全ての処理を自身で実行する。この際、処理情報採取手段321は、本実行に際して、スカラ処理やベクトル処理、通信・同期処理等の各処理について性能情報を採取する(ステップS201)。処理情報採取手段321が採取可能な性能情報としては、例えば、CPUやメモリ、キャッシュ等の利用状況等の計算機システムリソース情報、命令の種別や引数、呼び出し回数および実行時間等の命令情報、関数の実行時間、引数、呼び出し回数、呼び出し関係などの関数情報、プロセス間の通信・同期処理の通信サイズ、通信・同期の開始・終了時間、待ち合わせ時間、通信相手の情報等の通信・同期処理情報が含まれ得る。
続いて、処理情報分析手段322は、処理情報採取手段321が採取した性能情報に基づいて、オフロードに伴う転送時間も考慮して、オフロード比率ごとに、オフロードを実行した場合の同期待ちの開始時間の変化などを分析する。例えば、処理情報分析手段322は、性能情報に基づいて、オフロード処理した場合のオフロード対象処理の実行時間の変化、その場合の各通信・同期処理の開始・終了時刻、処理時間および待ち合わせ時間の変化、オフロード処理により消費されるスカラプロセッサのリソース使用量などを分析する(ステップS202)。その後、処理情報分析手段322は、分析結果をオフロード比率決定手段323に送信する。
オフロード比率決定手段323は、処理情報分析手段322による分析結果に基づいて、プロセスごと・オフロード対象処理ごとに、サブプロセッサ400へのオフロード比率を決定する。
例えば、オフロード比率決定手段323は、以下の条件を満たす場合に、オフロード対象処理をオフロード実行することを決定する。
1.“オフロード対象処理のメインプロセッサ300での実行時間” > “オフロード対象処理のサブプロセッサ400での実行時間+オフロード転送時間(往復)”
2.“当該プロセスについて、オフロード対象処理をメインプロセッサ300で実行した場合の同期待ちの開始時刻” > “当該プロセスの同期・通信相手(つまり、並列で実行される他のプロセス)について、オフロード対象処理をオフロード実行(オフロード処理によるオフロード対象処理の実行時間短縮が最も大きい場合のオフロード比率でのオフロード実行)した場合の同期待ちの開始時刻の中で、最も遅い開始時刻”
また、オフロード比率決定手段323は、オフロード実行すると決定した場合、上記の条件2において、あるプロセスの同期待ちの開始時刻と当該あるプロセスと並列で動作する他のプロセスの同期待ちの開始時刻とが等しくなるように、オフロード比率を決定する(ステップS203)。
このように、オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセスごと、オフロード対象処理ごとに、オフロードするか否か判断するとともに、オフロードする際のオフロード比率を決定する。その後、オフロード比率決定手段323は、判断した結果や決定したオフロード比率を記憶装置103や外部の図示しない記憶装置に格納する。
続いて、図7を参照して、変換後アプリケーションプログラム500を2回目以降に実行する際の処理の流れについて説明する。換言すると、図7を参照して、オフロード処理を行う際の処理の一例について説明する。
図7を参照すると、オフロード処理実行手段324は、実行しようとする処理がオフロード対象であるか否か判断する(ステップS301)。
ベクトル処理部204に基づいて生成されたベクトルプロセッサ向けのコードなどオフロード対象でない場合(ステップS301、No)、オフロード処理実行手段324は、当該処理をベクトルプロセッサであるメインプロセッサ300上で実行させる(ステップS304)。一方、スカラ処理部202に基づいて生成されたスカラプロセッサ向けのコードなどオフロード対象である場合(ステップS301、Yes)、オフロード処理実行手段324は、オフロード比率決定手段323によりオフロードを行うと判断されているか否か確認する(ステップS302)。
オフロード比率決定手段323によりオフロードを行わないと判断されている場合(ステップS302、No)、オフロード処理実行手段324は、オフロード対象処理をそのままベクトルプロセッサ上で動作させる(ステップS304)。一方で、オフロード比率決定手段323によりオフロードを行うと判断されている場合(ステップS302、Yes)、オフロード処理実行手段324は、オフロード比率決定手段323により決定されたオフロード比率に基づいて、オフロード対象処理をサブプロセッサ400上へオフロードする。その後、オフロード処理実行手段324は、サブプロセッサ400からオフロードの処理結果を受け取る(ステップS303)。
変換後アプリケーションプログラム500が実行終了でない場合(ステップS305、No)は、ステップS301へ戻り継続実行する。一方で、変換後アプリケーションプログラム500の実行が終了した場合(ステップS305、Yes)は、オフロード処理実行手段324は、処理を終了する。
このように、計算機システム100は、オフロード比率決定手段323とオフロード処理実行手段324とを有するオフロード実行手段320を有している。このような構成により、オフロード処理実行手段324は、オフロード比率決定手段323による判断結果、決定結果に基づいて、オフロード対象処理をオフロードするか否か判断することが出来る。例えば、オフロード処理実行手段324は、オフロードを実行することで、プロセスの全てをメインプロセッサ300が実行するよりも実行時間が短くなり、かつ、オフロードを実行することで、アプリケーション全体の実行時間が短くなる場合に、オフロード対象処理をオフロードすることが可能となる。その結果、オフロードしてもアプリケーション全体の実行時間の短縮に寄与しない不要なオフロードを抑制することが可能となり、サブプロセッサ400のリソースを過剰に利用することを抑制することが可能となる。これにより、例えば、サブプロセッサ400のリソースの利用量を節約できるため、消費電力量の低減や、他アプリケーションからのリソース利用が可能となるなど、システムリソースの有効・効率利用が実現できる。
ここで、本発明の効果の詳細について、図8を参照して説明する。
図8中のオリジナル実行(左の図)は、メッセージパッシング型の分散並列プログラムであるアプリケーションを、メインプロセッサ300上で3プロセス並列実行した場合の処理内容と実行時間を示している。
図8で示す例では、ベクトル処理、スカラ処理、同期処理を順に行う構成となっており、プロセス間で処理インバランスを有している。つまり、メインプロセッサ300上では、プロセスP#0、P#1、P#2が並列で実行されており、それぞれのベクトル処理、スカラ処理の実行時間が異なっている。例えば、図8の例では、プロセスP#0は、他の2プロセス(P#1、P#2)と比較して、同期待ちの開始時刻が早く同期待ちの時間が長くなっている。
図8中の本発明(右の図)は、図8のオリジナル実行と同じアプリケーションのうちのスカラ処理をサブプロセッサ400へオフロードする一例を示している。このとき、本発明のオフロード比率決定手段323は、プロセスP#1およびプロセスP#2についてはスカラ処理をオフロードする(オフロード比率100%)旨を決定する。一方で、プロセスP#0については、オフロードしない(オフロード比率0%)旨を決定する。
その理由は、プロセスP#0のスカラ処理をオフロードしたとしても、その後の同期待ち処理があるため、オフロードしない場合と比較してアプリケーション全体の実行時間短縮の効果に違いがないためである。このプロセスP#0のスカラ処理をオフロードしないこと(すなわち、プロセスP#0の同期待ち時間を最小とすること)によって、サブプロセッサ400のリソースが1つ空くことになる。その結果、使用電力の低減や他アプリからのリソース利用が可能となるなど、システムリソースを有効かつ効率的に利用することが可能となる。
なお、本実施形態においては、計算機システム100がメッセージパッシング型の分散並列プログラムを実行する例について説明した。しかしながら、本発明は、並列して動作するとともに、所定の処理の後、並列して動作する他のプロセスと同期待ちや通信待ちが発生するプログラムであるならば、上記例示した以外のプログラムであっても適用可能である。
また、本実施形態においては、ベクトル型のメインプロセッサ300とスカラ型のサブプロセッサ400とを有する場合について説明した。しかしながら、メインプロセッサ300は必ずしもベクトル型でなくても構わないし、サブプロセッサ400は必ずしもスカラ型でなくても構わない。
また、本実施形態においては、メインプロセッサ300が変換手段310とオフロード実行手段320とを有するとした。しかしながら、変換手段310やオフロード実行手段320としての機能は、メインプロセッサ300の外部に位置する外部装置が有していても構わない。
また、本実施形態においては、オフロード対象処理について、ユーザがオフロード開始指示行201やオフロード終了指示行203で指定する例について挙げた。しかしながら、オフロード対象処理は、例えば、処理情報採取手段321が採取する性能情報から処理情報分析手段322が自動的に判定しても構わない。例えば、処理情報分析手段322は、性能情報に基づいて、オフロードすることで実行時間の短縮に繋がると判断される部分をオフロード対象処理として判定する。このような構成により、ユーザがソースコードに指示行を追加する作業を省くことが可能となる。また、ユーザが意識していなかったオフロード対象処理を発見することが可能となる。
また、本実施形態においては、変換後アプリケーションプログラム500を1回実行して性能情報を採取し、分析した結果からオフロード比率決定手段323がオフロード比率を決定するとした。しかしながら、必ずしも採取した性能情報の分析結果に基づいてオフロード比率を決定するよう構成しなくても構わない。例えば、アプリケーションプログラム200のソースコードの内容を静的に解析して、当該解析結果に基づいてオフロードするか否か、オフロード比率、を決定するよう構成しても構わない。このように構成することで、性能情報採取向けに変換後アプリケーションプログラム500を1回実行する時間やそれに伴う費用等を節約することが可能となる。
また、オフロード比率については、必ずしも、2回目以降の実行前に性能情報の解析結果からオフロード比率決定手段323が静的に決定する場合に限られない。例えば、他の変換後アプリケーションプログラム500とサブプロセッサ400のリソース利用状況情報を共有し、当該リソース利用状況も加味して実行時に動的にオフロード比率を決定することも考えられる。このように構成することで、より汎用的かつ詳細に、サブプロセッサ400のリソースを効率的に利用することが可能となる。ただし、このように構成した場合、メインプロセッサ300を使用して動的にオフロード比率を判定する処理が発生するため、それに伴うオーバヘッドが発生することになる。
また、本実施形態においては、オフロード実行について、1回目と2回目以降の実行を同じ実行形式ファイルで実行させるため、オフロード処理実行手段324が動的に1回目と2回目以降の実行でオフロード処理を切り替えて実行する実施例を示した。この代わりに、2回目以降で使用する変換後アプリケーションプログラム500を変更して、オフロード比率100%であるオフロード処理については切り替え処理をなくし、オフロード処理のみ実行するようにするよう構成しても構わない。このように構成することで、切り替え処理分の実行時間を削除できるため、微細ではあるがよりアプリケーション全体の実行時間を短縮することが可能となる。
[第2の実施形態]
次に、図9を参照して、本発明の第2の実施形態について説明する。第2の実施形態では、情報処理装置6の構成の概要について説明する。
図9を参照すると、情報処理装置6は、プロセッサ61と、判断手段62と、を有している。判断手段62は、例えば、情報処理装置6が有する図示しない記憶装置に格納されたプログラムを、プロセッサ61や図示しない演算装置が実行することで実現される。
プロセッサ61は、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能である。プロセッサ61で実行されるプロセスは、例えば、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている。
判断手段62は、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する。
このように、情報処理装置6は、判断手段62を有している。このような構成により、情報処理装置6は、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断することが出来る。その結果、外部プロセッサ7に全体の実行時間の短縮に寄与しない不要な処理を実行させることを抑制することが可能となる。これにより、オフロード先の外部プロセッサ7のリソースを効率的に利用することが可能となる。
また、上述した情報処理装置6は、当該情報処理装置6に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能なプロセッサ61を有し、プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置6に、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する判断手段62を実現させるためのプログラムである。
また、上述した情報処理装置6により実行される情報処理方法は、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能なプロセッサ61を有し、プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置6により行われる情報処理方法であって、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する、という方法である。
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置6と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
なお、図9では、情報処理装置6の外部に外部プロセッサ7が存在する場合について例示している。しかしながら、外部プロセッサ7は情報処理装置6が有していても構わない。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
前記情報処理装置は、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
情報処理装置。
(付記2)
付記1に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻と、他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の当該他のプロセスの同期待ちの開始時刻と、に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記3)
付記1又は2に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻が、前記他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部を前記外部プロセッサに実行させる
情報処理装置。
(付記4)
付記1乃至3のいずれかに記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻の関係性に基づいて、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
(付記5)
付記4に記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻が等しくなるように、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
(付記6)
付記1乃至5のいずれかに記載の情報処理装置であって、
並列で処理する複数の前記プロセスの全てを前記プロセッサが実行した際に、予め定められた性能情報を採取する処理情報採取手段と、
前記処理情報採取手段が採取した前記性能情報に基づいて、予め定められたオフロード比率ごとの複数の前記プロセスそれぞれの同期待ち開始時刻を分析する処理情報分析手段と、
を有し、
前記判断手段は、前記処理情報分析手段による分析結果に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記7)
付記6に記載の情報処理装置であって、
前記処理情報分析手段は、前記処理情報採取手段が採取した前記性能情報に基づいて、前記プロセスの処理のうちの前記外部プロセッサに実行させる部分を判定する
情報処理装置。
(付記8)
付記1乃至7のいずれかに記載の情報処理装置であって、
前記判断手段は、前記プロセスの処理の一部を前記外部プロセッサに実行させることで、当該プロセスを前記プロセッサが実行するよりも実行時間が短くなる場合に、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記9)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラム。
(付記10)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
情報処理方法。
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
100 計算機システム
101 計算機
102 演算処理装置
103 記憶装置
104 通信装置
105 接続網
200 アプリケーションプログラム
201 オフロード開始指示行
202 スカラ処理部
203 オフロード終了指示行
204 ベクトル処理部
205 プロセス間同期処理部
300 メインプロセッサ
310 変換手段
311 ベクトルプロセッサ向けコード生成手段
312 オフロード処理コード生成手段
320 オフロード実行手段
321 処理情報採取手段
322 処理情報分析手段
323 オフロード比率決定手段
324 オフロード処理実行手段
400 サブプロセッサ
500 変換後アプリケーションプログラム
6 情報処理装置
61 プロセッサ
62 判断手段
7 外部プロセッサ

Claims (10)

  1. プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
    前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
    前記情報処理装置は、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
    情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻と、他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の当該他のプロセスの同期待ちの開始時刻と、に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
    情報処理装置。
  3. 請求項1又は2に記載の情報処理装置であって、
    前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻が、前記他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部を前記外部プロセッサに実行させる
    情報処理装置。
  4. 請求項1乃至3のいずれかに記載の情報処理装置であって、
    前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻の関係性に基づいて、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
    情報処理装置。
  5. 請求項4に記載の情報処理装置であって、
    前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻が等しくなるように、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
    情報処理装置。
  6. 請求項1乃至5のいずれかに記載の情報処理装置であって、
    並列で処理する複数の前記プロセスの全てを前記プロセッサが実行した際に、予め定められた性能情報を採取する処理情報採取手段と、
    前記処理情報採取手段が採取した前記性能情報に基づいて、予め定められたオフロード比率ごとの複数の前記プロセスそれぞれの同期待ち開始時刻を分析する処理情報分析手段と、
    を有し、
    前記判断手段は、前記処理情報分析手段による分析結果に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
    情報処理装置。
  7. 請求項6に記載の情報処理装置であって、
    前記処理情報分析手段は、前記処理情報採取手段が採取した前記性能情報に基づいて、前記プロセスの処理のうちの前記外部プロセッサに実行させる部分を判定する
    情報処理装置。
  8. 請求項1乃至7のいずれかに記載の情報処理装置であって、
    前記判断手段は、前記プロセスの処理の一部を前記外部プロセッサに実行させることで、当該プロセスを前記プロセッサが実行するよりも実行時間が短くなる場合に、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
    情報処理装置。
  9. プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
    前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラム。
  10. プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
    前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
    情報処理方法。

JP2017020910A 2017-02-08 2017-02-08 情報処理装置、情報処理方法、プログラム Active JP6891521B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017020910A JP6891521B2 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017020910A JP6891521B2 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法、プログラム

Publications (2)

Publication Number Publication Date
JP2018128811A true JP2018128811A (ja) 2018-08-16
JP6891521B2 JP6891521B2 (ja) 2021-06-18

Family

ID=63172994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017020910A Active JP6891521B2 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法、プログラム

Country Status (1)

Country Link
JP (1) JP6891521B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
JP2011197803A (ja) * 2010-03-17 2011-10-06 Ricoh Co Ltd プログラム実行制御方法
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JP2014092873A (ja) * 2012-11-01 2014-05-19 Nec Corp ハイブリッド並列処理システム、ハイブリッド並列処理方法およびコンピュータプログラム
JP2014160453A (ja) * 2013-01-23 2014-09-04 Waseda Univ 並列性の抽出方法及びプログラムの作成方法
JP2016218503A (ja) * 2015-05-14 2016-12-22 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
JP2011197803A (ja) * 2010-03-17 2011-10-06 Ricoh Co Ltd プログラム実行制御方法
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JP2014092873A (ja) * 2012-11-01 2014-05-19 Nec Corp ハイブリッド並列処理システム、ハイブリッド並列処理方法およびコンピュータプログラム
JP2014160453A (ja) * 2013-01-23 2014-09-04 Waseda Univ 並列性の抽出方法及びプログラムの作成方法
JP2016218503A (ja) * 2015-05-14 2016-12-22 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置

Also Published As

Publication number Publication date
JP6891521B2 (ja) 2021-06-18

Similar Documents

Publication Publication Date Title
WO2019001092A1 (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
KR101565865B1 (ko) 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템
US20190026158A1 (en) Virtual vector processing
CN109840142B (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
US20140052965A1 (en) Dynamic cpu gpu load balancing using power
US7366814B2 (en) Heterogeneous multiprocessor system and OS configuration method thereof
US20120117242A1 (en) Service linkage system and information processing system
Gu et al. Partitioning and offloading in smart mobile devices for mobile cloud computing: State of the art and future directions
CN104536937A (zh) 基于cpu-gpu异构集群的大数据一体机实现方法
US9471387B2 (en) Scheduling in job execution
CN114911612B (zh) 一种面向cpu-gpu异构资源的任务调度方法
Wu et al. Software aging in mobile devices: Partial computation offloading as a solution
KR20110049507A (ko) 어플리케이션 실행 장치 및 방법
CN114982210A (zh) 计算网络中的无服务器功能部署的管理
WO2014002412A1 (ja) プログラム変換装置及び方法、処理切替方法、実行方式決定方法及びプログラム記憶媒体、プロセッサシステム並びに並列実行方法
Enokido et al. An energy-efficient redundant execution algorithm by terminating meaningless redundant processes
US10866838B2 (en) Cluster computing service assurance apparatus and method
TW201541347A (zh) 多核心處理器系統及其排程方法
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
CN111242776A (zh) 基于区块链的记账方法、装置、存储介质及电子设备
CN114706689A (zh) 一种基于子任务特性的多核处理器任务调度方法及系统
Liu et al. Task offloading with execution cost minimization in heterogeneous mobile cloud computing
US20150220362A1 (en) Multi-core processor system, electrical power control method, and computer product for migrating process from one core to another
JP6891521B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210331

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210510

R150 Certificate of patent or registration of utility model

Ref document number: 6891521

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150