JP5463699B2 - 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 - Google Patents
並列処理支援プログラム、並列処理支援装置および並列処理支援方法 Download PDFInfo
- Publication number
- JP5463699B2 JP5463699B2 JP2009059747A JP2009059747A JP5463699B2 JP 5463699 B2 JP5463699 B2 JP 5463699B2 JP 2009059747 A JP2009059747 A JP 2009059747A JP 2009059747 A JP2009059747 A JP 2009059747A JP 5463699 B2 JP5463699 B2 JP 5463699B2
- Authority
- JP
- Japan
- Prior art keywords
- parallel processing
- program
- function
- code
- specific code
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
まず、本実施の形態にかかる並列処理支援について説明する。図1は、本実施の形態にかかる並列処理支援の概要を示す説明図である。図1のように、並列処理支援装置100は、任意のプログラム101が入力されると、このプログラム101を並列処理用プログラム102に自動変換して出力する。出力された並列処理用プログラム102は、マルチコアプロセッサ110によって実行される。
S2:出力結果が必要となる文の直前でARPCの待ち合わせを挿入(具体的には、「func_A_wait」を挿入)
S3:出力結果が必要となる文を含むIf文の直前でARPCの待ち合わせを挿入(具体的には、「func_B_wait」を挿入)
S4:遠隔手続き呼び出しを開始した文が含まれるLoop文の末尾でARPCの待ち合わせ挿入(具体的には、「func_C_wait」を挿入)
まず、本実施の形態にかかる並列処理支援装置100のハードウェア構成について説明する。図3は、本実施の形態にかかる並列処理支援装置100のハードウェア構成を示すブロック図である。図3において、並列処理支援装置100は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、通信I/F(Interface)306と、入力デバイス307と、出力デバイス308と、を備えている。また、各構成部はバス310によってそれぞれ接続されている。
つぎに、並列処理支援装置100の機能的構成について説明する。図4は、本実施の形態にかかる並列処理支援装置の機能的構成を示すブロック図である。図4のように、並列処理支援装置100は、取得部401と、特定部402と、挿入部403と、出力部404と、受付部405と、付与部406と、を含む構成である。この制御部となる機能(取得部401〜付与部406)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305などの記憶領域に記憶された並列処理支援プログラムをCPU301に実行させることにより、または、通信I/F306により、その機能を実現する。
つぎに、上述した構成の並列処理支援装置100における並列処理支援の手順について説明する。図5は、並列処理支援の手順を示すフローチャートである。図5のように、マルチコアプロセッサ110によって並列処理を実行させたいプログラム101の入力をトリガに処理を開始する。なお、以下の説明では、プログラム101の一例としてCプログラム501を利用して、並列処理用プログラム102として呼び出し側Cプログラム502を作成する場合について説明する。
つぎに、図5にて説明したCプログラム501から呼び出し側Cプログラム502を作成する際のより具体的な手順について説明する。図10は、並列処理用のCプログラムの作成手順を示すフローチャートである。図10のフローチャートにおいて、まず、Cプログラム501の構文木とデータ依存箇所の特定結果を取得する(ステップS1001)。
つぎに、ステップS1006における並列処理の待ち合わせ箇所の特定についての具体的な処理手順について説明する。図11は、並列処理の待ち合わせ箇所の特定手順を示すフローチャートである。図11のフローチャートにおいて、まず、図10のステップS1002において、処理対象として検索されたステートメントを構成する文snを文s0に設定する(ステップS1101)。
複数のプロセッサによる並列処理の対象となる関数に特定のコードが付与されたプログラムを取得する取得手段、
前記取得手段によって取得されたプログラムの構文木が表す前記プログラム内の関数、文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数の待ち合わせ箇所を特定する特定手段、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコードに置換するとともに、前記特定手段によって特定された待ち合わせ箇所の前に、前記並列処理の終了を指示するコードを挿入する挿入手段、
前記挿入手段によって前記並列処理の開始と終了とを指示するコードが挿入されたプログラムを出力する出力手段、
として機能させることを特徴とする並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された記述箇所の前に、前記並列処理の終了を指示するコードを挿入することを特徴とする付記1に記載の並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された記述箇所の前に、前記並列処理の終了を指示するコードを挿入することを特徴とする付記1に記載の並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された記述箇所の前に、前記並列処理の終了を指示するコードを挿入することを特徴とする付記1に記載の並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された記述箇所の前に、前記並列処理の終了を指示するコードを挿入することを特徴とする付記1に記載の並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された処理の前に、前記並列処理の終了を指示するコードを挿入することを特徴とする付記1〜5のいずれか一つに記載の並列処理支援プログラム。
前記挿入手段は、前記特定手段によって特定された記述箇所の後に前記並列処理の終了を指示するコードを挿入することを特徴とする付記1〜6のいずれか一つに記載の並列処理支援プログラム。
前記取得手段によって前記特定のコードが付与されていないプログラムが取得された場合、当該プログラム内の並列処理の対象となる関数の選択を受け付ける受付手段、
前記受付手段によって受け付けた選択が表す関数に、前記特定のコードを付与する付与手段、として機能させ、
前記特定手段は、前記付与手段によって並列処理の対象となる関数に特定のコード付与されたプログラムの構文木が表す前記プログラム内の関数同士のデータ依存関係に基づいて、前記特定のコードが付与された関数によって作成されたデータを用いた処理の記述箇所を特定することを特徴とする付記1〜7のいずれか一つに記載の並列処理支援プログラム。
前記取得手段によって取得された前記プログラムの構文木を作成する作成手段として機能させ、
前記特定手段は、前記作成手段によって作成された構文木が表す前記プログラム内の関数同士のデータ依存関係に基づいて、前記特定のコードが付与された関数によって作成されたデータを用いた処理の記述箇所を特定することを特徴とする付記1〜8のいずれか一つに記載の並列処理支援プログラム。
前記取得手段によって取得されたプログラムの構文木が表す前記プログラム内の関数、文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数の待ち合わせ箇所を特定する特定手段と、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコードに置換するとともに、前記特定手段によって特定された待ち合わせ箇所の前に、前記並列処理の終了を指示するコードを挿入する挿入手段と、
前記挿入手段によって前記並列処理の開始と終了とを指示するコードが挿入されたプログラムを出力する出力手段と、
を備えることを特徴とする並列処理支援装置。
複数のプロセッサによる並列処理の対象となる関数に特定のコードが付与されたプログラムを取得する取得工程と、
前記取得工程によって取得されたプログラムの構文木が表す前記プログラム内の関数、文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数の待ち合わせ箇所を特定する特定工程と、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコードに置換するとともに、前記特定工程によって特定された待ち合わせ箇所の前に、前記並列処理の終了を指示するコードを挿入する挿入工程と、
前記挿入工程によって前記並列処理の開始と終了とを指示するコードが挿入されたプログラムを出力する出力工程と、
を実行することを特徴とする並列処理支援方法。
101 プログラム
102 並列処理用プログラム
110 マルチコアプロセッサ
401 取得部
402 特定部
403 挿入部
404 出力部
405 受付部
406 付与部
501 Cプログラム
502 呼び出し側Cプログラム
Claims (5)
- コンピュータを、
複数のプロセッサによる並列処理の対象となる関数に特定のコードが付与されたプログ
ラムを取得する取得手段、
前記取得手段によって取得されたプログラムの構文木が表す前記プログラム内の関数、
文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数による演算結果が利用される記述箇所、あるいは、他の文に制御が移行する文がある箇所、あるいは、待ち合わせ指定箇所が内部に存在する前記特定のコードが付与された関数と親を同一にする同一階層の条件分岐処理やループ処理を特定する特定手段、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコード
に置換するとともに、前記特定手段によって特定された処理の前に、前記並列処理の終了を指示するコードを挿入する挿入手段、
前記挿入手段によって前記並列処理の開始と終了とを指示するコードが挿入されたプロ
グラムを出力する出力手段、
として機能させることを特徴とする並列処理支援プログラム。 - 前記コンピュータを、さらに、
前記取得手段によって前記特定のコードが付与されていないプログラムが取得された場
合、他の関数と並列して実行させる関数の選択を受け付ける受付手段、
前記受付手段によって受け付けた選択が表す関数に、前記特定のコードを付与する付与
手段、として機能させ、
前記特定手段は、前記付与手段によって前記特定のコードが付与されたプログラムの構文木が表す前記プログラム内の関数、文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数による演算結果が利用される記述箇所、あるいは、他の文に制御が移行する文の記述箇所、あるいは、待ち合わせを指示するコードの記述箇所が内部に存在する前記特定のコードが付与された関数と親を同一にする同一階層の条件分岐処理またはループ処理の記述箇所を特定することを特徴とする請求項1に記載の並列処理支援プログラム。 - 前記特定手段は、前記取得手段によって取得されたプログラムの構文木が表す前記プログラム内の関数、文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数と構文木において親を同一にする同一階層の末尾の文の記述箇所を特定し、
前記挿入手段は、前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコードに置換するとともに、前記特定手段によって特定された記述箇所の後に前記並列処理の終了を指示するコードを挿入することを特徴とする請求項1または2に記載の並列処理支援プログラム。 - 複数のプロセッサによる並列処理の対象となる関数に特定のコードが付与されたプログ
ラムを取得する取得手段と、
前記取得手段によって取得されたプログラムの構文木が表す前記プログラム内の関数、
文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数による演算結果が利用される記述箇所、あるいは、他の文に制御が移行する文がある箇所、あるいは、待ち合わせ指定箇所が内部に存在する前記特定のコードが付与された関数と親を同一にする同一階層の条件分岐処理やループ処理を特定する特定手段と、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコード
に置換するとともに、前記特定手段によって特定された処理の前に、前記並列処理の終了を指示するコードを挿入する挿入手段と、
前記挿入手段によって前記並列処理の開始と終了とを指示するコードが挿入されたプロ
グラムを出力する出力手段と、
を備えることを特徴とする並列処理支援装置。 - コンピュータが、
複数のプロセッサによる並列処理の対象となる関数に特定のコードが付与されたプログ
ラムを取得する取得工程と、
前記取得工程によって取得されたプログラムの構文木が表す前記プログラム内の関数、
文の間のデータ依存関係および制御の流れに基づいて、前記特定のコードが付与された関数による演算結果が利用される記述箇所、あるいは、他の文に制御が移行する文がある箇所、あるいは、待ち合わせ指定箇所が内部に存在する前記特定のコードが付与された関数と親を同一にする同一階層の条件分岐処理やループ処理を特定する特定工程と、
前記特定のコードが付与された関数の記述箇所を前記並列処理の開始を指示するコード
に置換するとともに、前記特定工程によって特定された処理の前に、前記並列処理の終了を指示するコードを挿入する挿入工程と、
前記挿入工程によって前記並列処理の開始と終了とを指示するコードが挿入されたプロ
グラムを出力する出力工程と、
を実行することを特徴とする並列処理支援方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009059747A JP5463699B2 (ja) | 2009-03-12 | 2009-03-12 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009059747A JP5463699B2 (ja) | 2009-03-12 | 2009-03-12 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010211731A JP2010211731A (ja) | 2010-09-24 |
JP5463699B2 true JP5463699B2 (ja) | 2014-04-09 |
Family
ID=42971781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009059747A Expired - Fee Related JP5463699B2 (ja) | 2009-03-12 | 2009-03-12 | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5463699B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485574A (en) * | 1993-11-04 | 1996-01-16 | Microsoft Corporation | Operating system based performance monitoring of programs |
JP3640081B2 (ja) * | 1999-12-27 | 2005-04-20 | 日本電気株式会社 | Mpiプログラムのコンパイルにおける最適化方法 |
WO2007105309A1 (ja) * | 2006-03-14 | 2007-09-20 | Fujitsu Limited | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 |
JP4946323B2 (ja) * | 2006-09-29 | 2012-06-06 | 富士通株式会社 | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
JP4962564B2 (ja) * | 2007-03-29 | 2012-06-27 | 富士通株式会社 | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
-
2009
- 2009-03-12 JP JP2009059747A patent/JP5463699B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010211731A (ja) | 2010-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7324831B2 (ja) | ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器 | |
US8701084B1 (en) | Preview of auto-fix changes to software code | |
KR20160054629A (ko) | 사용자 인터페이스들 및 입력 컨트롤들을 적응시키는 방법 | |
EP1999557A1 (en) | Printing controller,gui display method, printer driver, and recording medium | |
CN111124379A (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN110825428A (zh) | 一种状态机配置方法、装置、设备及可读存储介质 | |
JP5444724B2 (ja) | 検証支援プログラム、情報処理装置および検証支援方法 | |
JP5233355B2 (ja) | プロパティ生成システムおよびプロパティ検証システム | |
JP5463699B2 (ja) | 並列処理支援プログラム、並列処理支援装置および並列処理支援方法 | |
Palanque et al. | Software architecture modelling: bridging two worlds using ergonomics and software properties | |
JP5245727B2 (ja) | 設計支援プログラム、設計支援装置、および設計支援方法 | |
JP2006301989A (ja) | 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム | |
JP5374965B2 (ja) | シミュレーション制御プログラム、シミュレーション制御装置、およびシミュレーション制御方法 | |
JP2008197883A (ja) | Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法 | |
JP2004362343A (ja) | ソースコード変換装置、ソースコード変換方法、およびプログラム | |
CN103890721A (zh) | 计算机程序接口 | |
US10768911B2 (en) | Managing software components for software application development | |
JP5262774B2 (ja) | シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法 | |
WO2014136210A1 (ja) | 実行フロー作成支援プログラム | |
Thomas et al. | Framework for development and distribution of hardware acceleration | |
JP5233354B2 (ja) | プロパティ検証システム、プロパティ検証方法、及びプログラム | |
JP2010026695A (ja) | ビジネスプロセス実行方法、ビジネスプロセス実行装置及びビジネスプロセス実行プログラム | |
JP2007310585A (ja) | 情報処理装置、データ処理方法およびデータ処理プログラム | |
Sumimoto et al. | MPI-Adapter2: An Automatic ABI Translation Library Builder for MPI Application Binary Portability | |
WO2022236031A1 (en) | Computer implemented program specialization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130321 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130430 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130701 |
|
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: 20131224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |