JPH04274519A - プログラム高速化自動実行方式 - Google Patents

プログラム高速化自動実行方式

Info

Publication number
JPH04274519A
JPH04274519A JP3057776A JP5777691A JPH04274519A JP H04274519 A JPH04274519 A JP H04274519A JP 3057776 A JP3057776 A JP 3057776A JP 5777691 A JP5777691 A JP 5777691A JP H04274519 A JPH04274519 A JP H04274519A
Authority
JP
Japan
Prior art keywords
program
modification
source program
section
source
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
JP3057776A
Other languages
English (en)
Inventor
Hiroshi Ito
宏 伊藤
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 JP3057776A priority Critical patent/JPH04274519A/ja
Priority to US07/841,078 priority patent/US5283730A/en
Publication of JPH04274519A publication Critical patent/JPH04274519A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は電子計算機システムにお
けるプログラム高速化自動実行方式に関し、数値計算を
目的としたFORTRANプログラム等を自動的に修正
して高速化する技術に関するものである。
【0002】
【従来の技術】科学技術等の分野の数値計算は一般に大
規模になるため、効率的な実行が要求される。
【0003】そのためには、一般に、マシン環境に特化
したソースプログラムの高速化修正作業が必要になる。 例えば、ベクトル演算が実行可能なマシンであれば、ベ
クトル化率を上げる等の修正が必要となる。
【0004】従来は、このような高速化修正作業を行う
にあたり、オペレーティングシステム上に用意されてい
るプログラム実行特性収集ツールを使用していた。
【0005】この種のプログラム実行特性収集ツールは
、FORTRAN等のプログラムを解析することにより
得られるプログラム特性の静的情報(各サブルーチン間
の参照関係や変数の引用状況等)と、実際にプログラム
を実行することにより得られる動的情報(プログラム単
位の参照回数,実行時間,各プログラム文の実行時間等
)とを、見やすく編集して出力する機能を有している。
【0006】そして、従来、ユーザは、プログラムの修
正とプログラム実行特性収集ツールによる高速化の達成
度合の確認とを繰り返すことにより、高速化修正作業を
行っていた。
【0007】
【発明が解決しようとする課題】上述したように、従来
は、オペレーティングシステム上に用意されているプロ
グラム実行特性収集ツールを使用することにより、修正
による高速化の達成度合は容易に確認することができた
が、修正方法の選択および実際の修正は人手により行わ
なければならず、これらを繰り返し行わなければならな
いことから、作業が煩雑であると共に、多大な作業工数
により処理に時間がかかるという欠点があった。
【0008】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、高速化実行に必要な修
正作業全体、すなわち、高速化修正対象とするサブルー
チンの抽出,分析,修正,実行が自動的かつ連続的に行
え、操作性および作業効率の向上を図ることのできるプ
ログラム高速化自動実行方式を提供することにある。
【0009】
【課題を解決するための手段】本発明は上記の目的を達
成するため、目標とする高速化条件を入力する高速化条
件入力部と、プログラム実行特性収集ツールによりソー
スプログラムを実行してプログラムの実行特性を収集す
る計算実行部と、プログラム実行特性収集ツールの出力
情報を高速化条件と比較して修正の必要なサブルーチン
を選択する解析結果判定部と、修正が必要と判定された
サブルーチンにつき各サブルーチンから必要な情報を収
集して高速化に必要なソースプログラムの修正方法を指
示するソースプログラム高速化判定部と、指示された修
正方法に従ってソースプログラムの修正を行うソースプ
ログラム修正部と、修正の済んだソースプログラムを出
力するソース出力部とを備えるようにしている。
【0010】
【作用】本発明のプログラム高速化自動実行方式にあっ
ては、高速化条件入力部が目標とする高速化条件を入力
し、計算実行部がプログラム実行特性収集ツールにより
プログラムを実行してプログラムの実行特性を収集し、
解析結果判定部がプログラム実行特性収集ツールの出力
情報を高速化条件と比較して修正の必要なサブルーチン
を選択し、ソースプログラム高速化判定部が修正が必要
と判定されたサブルーチンにつき各サブルーチンから必
要な情報を収集して高速化に必要なソースプログラムの
修正方法を指示し、ソースプログラム修正部が指示され
た修正方法に従ってソースプログラムの修正を行い、ソ
ース出力部が修正の済んだソースプログラムを出力する
【0011】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
【0012】図1は本発明のプログラム高速化自動実行
方式の一実施例を示す構成図である。なお、図中の矢印
を伴った二重線は処理の流れを示し、矢印を伴った実線
はデータの流れを示している。
【0013】図1において、本実施例は、機能部として
、高速化条件入力部1とデータ入力部2と計算実行部3
と解析結果判定部4とソースプログラム高速化判定部5
とソースプログラム修正部6と修正経過情報編集部7と
ソース出力部8と修正経過情報出力部9とを有している
。また、処理に用いるファイルとして、高速化条件入力
ファイルF1とソースプログラム格納ファイルF2と計
算用入力データ格納ファイルF3と計算中間結果格納フ
ァイルF4と解析結果格納ファイルF5と判定結果格納
ファイルF6と分析詳細情報格納ファイルF7と修正経
過情報格納ファイルF8と修正作業用ファイルF9とを
有している。なお、各部の機能,内容等については、重
複を避けるため、以下の動作を通して説明することとす
る。
【0014】先ず、高速化条件入力部1は、高速化条件
入力ファイルF1から、予めユーザが自由に指定した高
速化条件のレコードを入力する。
【0015】図2は高速化条件の例を示したものであり
、サブルーチンがプログラム全体に占めるCPU時間の
割合(%),ベクトル化率(%),参照頻度(回),消
費CPU時間(msec)等が指定されるようになって
いる。なお、特に指定されなかった項目については、例
えば次のような既定値が自動的に設定されるようになっ
ている。 ・ルーチンの占める割合      10%・ベクトル
化率              90%・参照頻度 
               500回・消費CPU
時間        1000msec
【0016】ま
た、高速化条件の指定時に、例えば“*”を入力した場
合に、その項目が高速化条件から除外される。
【0017】次いで、データ入力部2は、ソースユニッ
トライブラリとしてのソースプログラム格納ファイルF
2から高速化修正作業の対象となるソースプログラムを
入力すると共に、計算に必要なデータを計算用入力デー
タ格納ファイルF3から入力する。
【0018】次いで、計算実行部3は、データ入力部2
の入力したソースプログラムおよび計算用入力データに
基づき、オペレーティングシステム(図示せず)の提供
するプログラム実行特性収集ツール(図示せず)を用い
てソースプログラムを実行し、得られた実行特性を解析
結果格納ファイルF5に格納する。また、大規模な解析
計算に対処すべく、ソースプログラムの解析作業と修正
作業を交互に行う場合には、計算の中間結果を計算中間
結果格納ファイルF4に格納する。例えば、解析対象と
する現象の時間ステップを制限し、一定時間ステップ毎
に計算中間結果格納ファイルF4に途中結果を格納し、
解析作業を中断して後述のソースプログラムの修正を行
い、再び解析作業を行い、これらを繰り返すようにする
ことができる。
【0019】また、計算実行部3は、後述のソースプロ
グラム修正部6による修正の後のソースプログラムにつ
いても、修正による効果を判断するために、プログラム
実行特性収集ツールを用いて同様に実行を行う。
【0020】次いで、解析結果判定部4は、計算実行部
3の得たプログラム実行特性収集ツールの出力情報を高
速化条件入力部1の入力した高速化条件と比較し、修正
の必要なサブルーチンを選択し、結果を判定結果格納フ
ァイルF6に格納する。例えば、図2の高速化条件に対
しては、次のようなサブルーチンが選択される。 ・ルーチンの占める割合が5%以上のもの・ベクトル化
率が80%以下のもの ・参照頻度が1000回以上のもの ・消費CPU時間が800msec以上のもの
【002
1】次いで、ソースプログラム高速化判定部5は、解析
結果判定部4で修正が必要と判定されたサブルーチンに
つき、各サブルーチンから必要な情報を収集し、高速化
を阻害する要因をチェックした上で、修正必要箇所を特
定して高速化に必要なソースプログラムの修正方法を指
示し、その情報を分析詳細情報格納ファイルF7に格納
する。例えば、ソースプログラム高速化判定部5は、選
択されたサブルーチンから、・DOループの有無 ・READ文,WRITE文の有無 ・IF文の有無 ・ベクトル化指示の必要性 ・多重DOループ展開の必要性 ・外部関数のDOループ内インライン展開の必要性等を
収集・判断し、ベクトル化指示,多重DOループ展開,
インライン展開等のソースプログラムの修正方法を指示
する。
【0022】また、ソースプログラム高速化判定部5は
、修正後のソースプログラムを対象とする場合には、修
正による効果が充分に現れているか否かについても判断
を行い、効果が現れていない場合には元の状態に戻すこ
とを内容とする修正指示を行う。
【0023】次いで、ソースプログラム修正部6は、修
正対象のサブルーチンを修正作業用ファイルF9に書き
出した上で、ソースプログラム高速化判定部5によって
指示された修正方法に従って修正を行う。例えば、図3
に示すようなFORTRAN言語で記述されたオリジナ
ルのソースプログラムのサブルーチンに対して、最深の
DOループ“DO  200”についてベクトル化を行
う旨の修正指示がソースプログラム高速化判定部5から
与えられた場合、図4に示すように、ベクトル化指示行
“*VDIR  NODEP(P)”が挿入される。な
お、修正されたことが明確になるように、コメント行が
併せて挿入される。
【0024】また、ソースプログラムを元の状態に戻す
ように修正指示が与えられた場合、該当する修正箇所は
削除等されて元の状態に戻されるが、そのような修正が
行われたことを示すために、既存のプログラム部分はコ
メント行として常に残される。
【0025】次いで、ソース出力部8は、修正されたサ
ブルーチンの格納された修正作業用ファイルF9の内容
をソースプログラム格納ファイルF2のオリジナルのソ
ースプログラムに上書きして格納するか、あるいは、S
YSOUTファイル(図示せず)等に書き出す。
【0026】一方、修正経過情報編集部7は、ソースプ
ログラム修正部6による修正(元の状態に戻した場合も
含む)の過程およびプログラム実行特性収集ツールによ
り得られた修正前後の実行特性の詳細情報をサブルーチ
ン単位に編集し、その情報を修正経過情報格納ファイル
F8に格納する。修正経過情報は、例えば、図5に示す
ような内容であり、参照頻度,CPU時間,ベクトル化
率等に関して修正前と修正後の値が対比して示されるよ
うになっている。この例では、修正(ベクトル化指示の
追加)により、CPU時間が約12分の1に減少し、ベ
クトル化率が0.2%から99.1%に増加し、大幅な
改善が見られたことを示している。
【0027】次いで、修正経過情報出力部9は、編集さ
れた修正経過情報の格納された修正経過情報格納ファイ
ルF8の内容をSYSOUTファイル等に書き出す。
【0028】
【発明の効果】以上説明したように、本発明のプログラ
ム高速化自動実行方式にあっては、ユーザが指定した高
速化条件を可能な限り満たすよう、高速化のために必要
な高速化修正作業を自動的に行うため、ユーザは煩雑な
作業から解放され、操作性および作業効率の向上を図る
ことができるという効果がある。
【図面の簡単な説明】
【図1】本発明のプログラム高速化自動実行方式の一実
施例を示す構成図である。
【図2】高速化条件の例を示す図である。
【図3】オリジナルのソースプログラムの例を示す図で
ある。
【図4】修正後のソースプログラムの例を示す図である
【図5】修正経過情報の例を示す図である。
【符号の説明】
1……高速化条件入力部 2……データ入力部 3……計算実行部 4……解析結果判定部 5……ソースプログラム高速化判定部 6……ソースプログラム修正部 7……修正経過情報編集部 8……ソース出力部 9……修正経過情報出力部 F1…高速化条件入力ファイル F2…ソースプログラム格納ファイル F3…計算用入力データ格納ファイル F4…計算中間結果格納ファイル F5…解析結果格納ファイル F6…判定結果格納ファイル F7…分析詳細情報格納ファイル F8…修正経過情報格納ファイル F9…修正作業用ファイル

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  目標とする高速化条件を入力する高速
    化条件入力部と、プログラム実行特性収集ツールにより
    ソースプログラムを実行してプログラムの実行特性を収
    集する計算実行部と、プログラム実行特性収集ツールの
    出力情報を高速化条件と比較して修正の必要なサブルー
    チンを選択する解析結果判定部と、修正が必要と判定さ
    れたサブルーチンにつき各サブルーチンから必要な情報
    を収集して高速化に必要なソースプログラムの修正方法
    を指示するソースプログラム高速化判定部と、指示され
    た修正方法に従ってソースプログラムの修正を行うソー
    スプログラム修正部と、修正の済んだソースプログラム
    を出力するソース出力部とを備えたことを特徴とするプ
    ログラム高速化自動実行方式。
  2. 【請求項2】  ソースプログラム修正部により修正の
    済んだソースプログラムを再び計算実行部により実行し
    、高速化の効果が現れていない場合にソースプログラム
    修正部によりソースプログラムを再び元の状態に修正す
    ることを特徴とした請求項1記載のプログラム高速化自
    動実行方式。
  3. 【請求項3】  修正の過程および修正前後の実行特性
    の詳細情報を編集する修正経過情報編集部と、編集され
    た修正経過情報を出力する修正経過情報出力部とを備え
    たことを特徴とする請求項1または2記載のプログラム
    高速化自動実行方式。
JP3057776A 1991-02-28 1991-02-28 プログラム高速化自動実行方式 Pending JPH04274519A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3057776A JPH04274519A (ja) 1991-02-28 1991-02-28 プログラム高速化自動実行方式
US07/841,078 US5283730A (en) 1991-02-28 1992-02-25 System for automatically increasing program execution speed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3057776A JPH04274519A (ja) 1991-02-28 1991-02-28 プログラム高速化自動実行方式

Publications (1)

Publication Number Publication Date
JPH04274519A true JPH04274519A (ja) 1992-09-30

Family

ID=13065271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3057776A Pending JPH04274519A (ja) 1991-02-28 1991-02-28 プログラム高速化自動実行方式

Country Status (2)

Country Link
US (1) US5283730A (ja)
JP (1) JPH04274519A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016040691A (ja) * 2014-08-13 2016-03-24 富士通株式会社 プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352697B2 (en) * 2004-05-17 2013-01-08 Sandisk Il Ltd. Method of managing files for optimal performance
US9529636B2 (en) 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US9535767B2 (en) * 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016040691A (ja) * 2014-08-13 2016-03-24 富士通株式会社 プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置

Also Published As

Publication number Publication date
US5283730A (en) 1994-02-01

Similar Documents

Publication Publication Date Title
Schimm Process miner—a tool for mining process schemes from event-based data
King A new approach to program testing
US6308323B1 (en) Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method
US6292940B1 (en) Program complete system and its compile method for efficiently compiling a source program including an indirect call for a procedure
US7447617B2 (en) Data processing device designing method, data processing device designing apparatus, program and computer readable information recording medium
JPH07319706A (ja) ルール合成方法
KR101275727B1 (ko) 스테이트먼트를 재구성하는 방법 및 그 기능을 구비한컴퓨터 시스템
JPH04274519A (ja) プログラム高速化自動実行方式
Kelly et al. Effectiveness of optimizing compilation for CLP (R)
Krohn Vector coding techniques for high speed digital simulation
KR100407009B1 (ko) 프로그램재생방법 및 장치 및 프로그램재생을 위한프로그램을 기록한 매체
JPH0887417A (ja) コンパイラ装置
JP3430635B2 (ja) 定数参照最適化処理装置
JP5514682B2 (ja) バッチ処理プログラム分析方法および装置
WO2021149202A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
US6173281B1 (en) Method and computer program product for processing and combining data sets including bitmaps
JPH036663A (ja) ベクトルデータ処理方式
CN107908821A (zh) 结构应变能熵表征计算及结果处理系统
JP2000231478A (ja) ソフトウェアの自動生成装置および方法、記録媒体
JPS5846439A (ja) 計算機のプログラム編集方法
JPS63632A (ja) 原始プログラムの最適化処理方式
JPS5960642A (ja) 原始プログラムの最適化方式
JPH06222913A (ja) プログラム解析装置
JP3970373B2 (ja) プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラムを記録したコンピュータ読み取り可能な記録媒体
CN115495064A (zh) 基于稳控策略可视化编程自动生成装置代码的方法、装置及系统