JP2006277364A - Execution method of program, multiprocessor system and control program therefor - Google Patents

Execution method of program, multiprocessor system and control program therefor Download PDF

Info

Publication number
JP2006277364A
JP2006277364A JP2005095865A JP2005095865A JP2006277364A JP 2006277364 A JP2006277364 A JP 2006277364A JP 2005095865 A JP2005095865 A JP 2005095865A JP 2005095865 A JP2005095865 A JP 2005095865A JP 2006277364 A JP2006277364 A JP 2006277364A
Authority
JP
Japan
Prior art keywords
processor
program
subprogram
processing
processors
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
JP2005095865A
Other languages
Japanese (ja)
Inventor
Yuji Yokoya
雄司 横谷
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 JP2005095865A priority Critical patent/JP2006277364A/en
Publication of JP2006277364A publication Critical patent/JP2006277364A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technique capable of shortening the turn around time of program execution in a multiprocessor system having a plurality of different architectures. <P>SOLUTION: A processor selection means 32 refers to the value of a processing result obtained by execution of a sub-program 31 by a processor 11, which is stored in an intermediate result storage means 4, and executes a sub-program 33a on the processor 11 when this value is matched to a condition in which the execution time of the processor 11 is shorter than that of a processor 12. When the value of the intermediate result storage means 4 is not matched to the condition in which the execution time of the processor 11 is shorter than that of the processor 12, the selection means selects the processor 12 and executes the sub-program 33b on the processor 12. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明はプログラムの実行方法とマルチプロセッサシステム及びその制御プログラムとに関し、特に、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で高速にプログラムの演算処理を行なうことのできるプログラムの実行方法と、マルチプロセッサシステム及びその制御プログラムとに関する。   The present invention relates to a program execution method, a multiprocessor system, and a control program therefor, and more particularly, a program execution method capable of performing program processing at high speed on a multiprocessor system composed of processors having a plurality of different architectures. And a multiprocessor system and its control program.

複数のデータに対して同一の演算を連続して行う処理を1命令で非常に高速に実行するベクトルプロセッサのように、一般的な汎用プロセッサのほかに、特定の処理を高速に実行することを目的としたアーキテクチャをもつプロセッサが存在する。このようなプロセッサと一般的な汎用プロセッサといった異なるアーキテクチャをもつプロセッサを組み合わせて、プログラムの処理を実行するマルチプロセッサシステムがある。   In addition to general general-purpose processors, such as a vector processor that executes the same operation on multiple data continuously with a single instruction, it can execute specific processing at high speed. There are processors with the desired architecture. There is a multiprocessor system that executes processing of a program by combining such processors and processors having different architectures such as general-purpose processors.

このマルチプロセッサシステムにおけるプログラムの実行方法が、特許文献1に開示されている。   A method for executing a program in this multiprocessor system is disclosed in Patent Document 1.

この従来のプログラムの実行方法は、次のように動作する。   This conventional program execution method operates as follows.

プログラムが開始されると、システムを構成する、異なるアーキテクチャをもつどのプロセッサでも実行可能なオブジェクトコードが実行され、このプログラムが動作しているプロセッサの識別情報が格納されている主記憶領域を参照し、その識別情報によって、プロセッサごとに用意されたプロセッサ固有のオブジェクトコードを実行する。
特公平7−52436号
When the program is started, the object code that can be executed by any processor having a different architecture constituting the system is executed, and the main storage area in which the identification information of the processor in which the program is operating is stored is referred to. The processor-specific object code prepared for each processor is executed based on the identification information.
Japanese Patent Publication No.7-52436

しかしながら、この従来のプログラム実行方法は、プログラムが最初にロードされたプロセッサを使用して最後まで処理を行うことしかできないため、同じ処理をより短時間で処理できる別のプロセッサが存在しても、そのプロセッサを利用して、プログラムのターンアラウンド時間を短縮することができないという課題があった。   However, since this conventional program execution method can only perform processing to the end using the processor in which the program is first loaded, even if there is another processor that can process the same processing in a shorter time, There was a problem that the turnaround time of the program could not be shortened using the processor.

また、上述したベクトルプロセッサのように、一度に多数のデータを処理する命令は、実際の演算を開始するまでの立ち上がり時間が一般的な汎用プロセッサの命令より長くかかるため、処理するデータの数があるしきい値より小さい場合、一般的な汎用プロセッサで、個々のデータを複数命令繰り返して処理するより実行時間が長くなってしまう。   In addition, as in the vector processor described above, an instruction that processes a large amount of data at a time takes a longer rise time before starting an actual operation than a general-purpose processor instruction. When the threshold value is smaller than a certain threshold value, the execution time becomes longer than when a general general-purpose processor processes individual data repeatedly by a plurality of instructions.

処理するデータ数がプログラムの実行を開始する前に決定できる場合は、実行時間が最も短くなるプロセッサを選択してプログラムの実行を行なうことで、ターンアラウンド時間を短縮することができるが、処理するデータ数がプログラムの処理の途中で決定されるような場合は、最適なプロセッサを選択できないという課題もあった。   If the number of data to be processed can be determined before the execution of the program starts, the turnaround time can be shortened by selecting the processor with the shortest execution time and executing the program. When the number of data is determined during the processing of the program, there is a problem that an optimal processor cannot be selected.

そこで、本発明は上記課題に鑑みて発明されたものであって、複数の異なるアーキテクチャを持つマルチプロセッサシステムにおいて、プログラム実行のターンアラウンド時間を短縮することができるプログラムの実行方法と、マルチプロセッサシステム及びその制御プログラムを提供することにある。   Accordingly, the present invention has been invented in view of the above problems, and in a multiprocessor system having a plurality of different architectures, a program execution method capable of reducing the turnaround time of program execution, and the multiprocessor system And providing a control program thereof.

上記課題を解決する第1の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で演算処理をおこなうプログラムの実行方法であって、プログラム実行中に、所定のプロセッサが行なったプログラムの処理の中間結果を用いて、後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせることを特徴とする。   A first invention for solving the above problem is a program execution method for performing arithmetic processing on a multiprocessor system including a plurality of processors having different architectures, and a program executed by a predetermined processor during program execution Using the intermediate result of the above process, a processor that can execute the subsequent process at the highest speed is selected, and the arithmetic process of the subsequent process is performed on the selected processor.

上記課題を解決する第2の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で、複数のサブプログラムから構成されるプログラムを実行するプログラム実行方法であって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択するステップと、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させるステップとを有することを特徴とする。   A second invention for solving the above-described problem is a program execution method for executing a program composed of a plurality of subprograms on a multiprocessor system composed of a plurality of processors having different architectures. Among the processors of the architecture, a processor capable of executing the processing of the subprogram executed next to the subprogram executed by the predetermined processor at the highest speed based on the processing result of the subprogram executed by the predetermined processor is the plurality of different processors. Selecting from a processor of an architecture; and causing the selected processor to execute a subprogram to be executed next to the subprogram.

上記課題を解決する第3の発明は、上記第1の発明又は第2の発明において、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件を予め決定しておくことを特徴とする。   According to a third invention for solving the above-mentioned problem, in the first invention or the second invention, the condition of the processor to be selected is set corresponding to the intermediate result of the program processing or the value of the processing result of the subprogram. It is characterized in that it is determined in advance.

上記課題を解決する第4の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサのプログラムの処理の中間結果に基づいて、後続処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる選択手段を有することを特徴とする。   A fourth invention for solving the above problem is a multiprocessor system comprising a plurality of processors of different architectures, and based on an intermediate result of processing of a program of a predetermined processor among the processors of different architectures. And a selection means for selecting a processor capable of executing the subsequent processing at the highest speed from the processors of the plurality of different architectures and performing the arithmetic processing of the subsequent processing on the selected processor.

上記課題を解決する第5の発明は、複数のサブプログラムから構成されるプログラムを実行する、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる選択手段を有することを特徴とする。   A fifth invention for solving the above-mentioned problem is a multiprocessor system configured by a plurality of processors having different architectures, which executes a program configured by a plurality of subprograms, and among the plurality of processors having different architectures. Based on the processing result of the subprogram executed by the predetermined processor, the processor that can execute the processing of the subprogram executed next to the subprogram executed by the predetermined processor at the highest speed is selected from the processors of the plurality of different architectures. And a selection means for causing the selected processor to execute a subprogram to be executed next to the subprogram.

上記課題を解決する第6の発明は、上記第4の発明又は第5の発明において、前記プログラムの処理の中間結果が格納される記憶手段を有することを特徴とする。   A sixth invention for solving the above-mentioned problems is characterized in that in the fourth invention or the fifth invention, there is provided storage means for storing an intermediate result of the processing of the program.

上記課題を解決する第7の発明は、上記第4から第6の発明のいずれかにおいて、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件が記憶された記憶手段を有し、前記選択手段は、プログラムの処理の中間結果、又はサブプログラムの処理結果を、前記記憶されている条件と比較し、条件に合致するプロセッサを選択する手段であることを特徴とする。   According to a seventh invention for solving the above-mentioned problem, in any one of the fourth to sixth inventions, a processor condition to be selected corresponding to an intermediate result of a program process or a value of a sub-program process result Is stored, and the selection means is a means for comparing an intermediate result of the processing of the program or a processing result of the subprogram with the stored condition, and selecting a processor that matches the condition. It is characterized by being.

上記課題を解決する第8の発明は、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムの演算処理を制御する制御プログラムであって、前記制御プログラムは、前記マルチプロセッサシステムに、所定のプロセッサが行なった実行プログラムの処理の中間結果を用いて、前記実行プログラムの後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる処理を実行させることを特徴とする。   An eighth invention for solving the above problem is a control program for controlling arithmetic processing of a multiprocessor system including a plurality of processors having different architectures, and the control program is provided in a predetermined processor in the multiprocessor system. Is used to select a processor that can execute the subsequent process of the execution program at the highest speed, and to execute a process for performing the arithmetic process of the subsequent process on the selected processor. It is characterized by.

上記課題を解決する第9の発明は、複数のサブプログラムから構成されるプログラムを、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で実行させる際の制御プログラムであって、前記制御プログラムは、前記マルチプロセッサシステムに、前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択する処理と、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる処理とを実行させることを特徴とする。   A ninth invention for solving the above-mentioned problem is a control program for executing a program composed of a plurality of subprograms on a multiprocessor system composed of a plurality of processors having different architectures, In the multiprocessor system, processing of a subprogram executed next to a subprogram executed by the predetermined processor based on a processing result of the subprogram executed by the predetermined processor among the processors of the plurality of different architectures. A process for selecting a processor that can execute at the highest speed from the processors of the plurality of different architectures, and a process for causing the selected processor to execute a subprogram to be executed next to the subprogram. .

上記課題を解決する第10の発明は、上記第8の発明又は第9の発明において、前記制御プログラムは、前記マルチプロセッサシステムに、プログラムの処理の中間結果、又はサブプログラムの処理結果を、予め記憶されている、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して選択すべきプロセッサの条件と比較し、条件に合致するプロセッサを選択する処理を実行させることを特徴とする。   In a tenth aspect of the present invention for solving the above-described problems, in the eighth aspect or the ninth aspect, the control program sends an intermediate result of program processing or a processing result of a subprogram to the multiprocessor system in advance. Comparing the stored intermediate result of the processing of the program or the condition of the processor to be selected corresponding to the value of the processing result of the subprogram, the processing for selecting the processor that matches the condition is executed. To do.

本発明の作用を説明すると、例えば、図1に示される如く、プログラム3は、プロセッサ11上で動作するサブプログラム31、サブプログラム33a、サブプログラム34およびプロセッサ選択手段32と、サブプログラム33aと同等の処理をプロセッサ12上で行なうサブプログラム33bとを含む。   The operation of the present invention will be described. For example, as shown in FIG. 1, the program 3 is equivalent to the subprogram 33, the subprogram 33a, the subprogram 34 and the processor selection means 32 operating on the processor 11, and the subprogram 33a. And a subprogram 33b for performing the above processing on the processor 12.

プロセッサ選択手段32は、中間結果格納手段4に格納されている、プロセッサ11がサブプログラム31を実行することにより得た処理結果の値を参照し、その値がプロセッサ11の実行時間がプロセッサ12の実行時間より短くなる条件に合致していれば、サブプログラム33aをプロセッサ11上で実行する。   The processor selection unit 32 refers to the value of the processing result obtained by the processor 11 executing the subprogram 31 stored in the intermediate result storage unit 4, and this value is the execution time of the processor 11. If the condition is shorter than the execution time, the subprogram 33a is executed on the processor 11.

一方、中間結果格納手段4の値がプロセッサ11の実行時間がプロセッサ12の実行時間より短くなる条件に合致していなければ、プロセッサ12を選択し、プロセッサ12上でサブプログラム33bを実行する。   On the other hand, if the value of the intermediate result storage means 4 does not match the condition that the execution time of the processor 11 is shorter than the execution time of the processor 12, the processor 12 is selected and the subprogram 33b is executed on the processor 12.

本発明は、複数の異なるアーキテクチャを持つマルチプロセッサシステムにおいて、プログラム実行のターンアラウンド時間を短縮できるという優れた効果を奏する。   The present invention has an excellent effect that the turnaround time of program execution can be shortened in a multiprocessor system having a plurality of different architectures.

その理由は、プログラム実行中に、処理の中間結果の値を用いて、後続処理を最も高速に実行できるプロセッサを選択し、そのプロセッサ上で該処理の演算処理を行なわせるためである。   The reason is that, during the execution of the program, using the value of the intermediate result of the process, a processor that can execute the subsequent process at the highest speed is selected and the arithmetic process of the process is performed on the processor.

次に、本発明の実施の形態について、図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

図1は本発明の実施の形態の構成を示すブロック図である。   FIG. 1 is a block diagram showing the configuration of the embodiment of the present invention.

図1を参照すると、本発明のマルチプロセッサシステムは、プログラム制御により動作するアーキテクチャの異なる2個のプロセッサ11及びプロセッサ12(中央処理装置又はデータ処理装置)と、これらのプロセッサと結合された主記憶装置(メモリ)2と、主記憶装置(メモリ)2中に格納されるプログラム3及び中間結果格納手段4とから構成されている。   Referring to FIG. 1, a multiprocessor system according to the present invention includes two processors 11 and 12 (central processing unit or data processing unit) having different architectures that operate under program control, and a main memory coupled to these processors. It comprises a device (memory) 2, a program 3 stored in the main storage device (memory) 2, and intermediate result storage means 4.

プログラム3は、サブプログラム31と、サブプログラム33aと、サブプログラム33bと、サブプログラム34と、プロセッサ選択手段32を機能させるプログラムとを含む。   The program 3 includes a subprogram 31, a subprogram 33a, a subprogram 33b, a subprogram 34, and a program that causes the processor selection unit 32 to function.

サブプログラム31、サブプログラム33a、サブプログラム34及びプロセッサ選択手段32は、プロセッサ11上で動作する。   The subprogram 31, subprogram 33 a, subprogram 34, and processor selection unit 32 operate on the processor 11.

サブプログラム33bは、サブプログラム33aと同等の処理をプロセッサ12上で行なわせるプログラムである。   The subprogram 33b is a program that causes the processor 12 to perform processing equivalent to the subprogram 33a.

上記プログラム3は、次のように動作する。   The program 3 operates as follows.

プログラム3が起動されると、サブプログラム31は、プロセッサ11上で実行され、中間結果の値を中間結果格納手段4に格納する。   When the program 3 is activated, the subprogram 31 is executed on the processor 11 and stores the intermediate result value in the intermediate result storage means 4.

プロセッサ選択手段32は、中間結果格納手段4の値を参照し、その値がプロセッサ11の実行時間がプロセッサ12の実行時間より短くなる条件に合致していれば、プロセッサ11を選択してサブプログラム33aをプロセッサ11上で実行する。一方、中間結果格納手段4の値がプロセッサ11の実行時間がプロセッサ12の実行時間よりも長くなる条件に合致していなければ、プロセッサ12を選択してサブプログラム33bをプロセッサ12上で実行する。   The processor selection means 32 refers to the value of the intermediate result storage means 4, and if the value matches the condition that the execution time of the processor 11 is shorter than the execution time of the processor 12, the processor selection means 32 selects the subprogram. 33a is executed on the processor 11. On the other hand, if the value of the intermediate result storage means 4 does not meet the condition that the execution time of the processor 11 is longer than the execution time of the processor 12, the processor 12 is selected and the subprogram 33b is executed on the processor 12.

前記プロセッサ選択手段32で選択されたサブプログラム33a、又はサブプログラム33bの実行が終了すると、サブプログラム34がプロセッサ11で実行される。   When the execution of the subprogram 33a or the subprogram 33b selected by the processor selection means 32 is completed, the subprogram 34 is executed by the processor 11.

次に、図3のフローチャートを参照して本発明の実施の形態の動作について詳細に説明する。尚、サブプログラム33a、及びサブプログラム33bは、図2に示すFortran言語で記述された処理を行なうものとする。   Next, the operation of the embodiment of the present invention will be described in detail with reference to the flowchart of FIG. Note that the subprogram 33a and the subprogram 33b perform processing described in the Fortran language shown in FIG.

また、プロセッサ11がサブプログラム33aを実行するのに必要な時間をT1(N)、プロセッサ12がサブプログラム33bを実行する時間をT2(N)とする。ここで、Nは図2のDOループの繰り返し数とする。Nは、サブプログラム31の処理により決定されるものとする。さらに、N≦10ならばT1(N)≦T2(N)が成り立つものとする。尚、この条件はプログラム3に記述されており、主記憶装置2に記憶されており、判断にあたってプロセッサ選択手段32が適時利用するものとする。   Further, the time required for the processor 11 to execute the subprogram 33a is T1 (N), and the time for the processor 12 to execute the subprogram 33b is T2 (N). Here, N is the number of repetitions of the DO loop of FIG. N is determined by the processing of the subprogram 31. Furthermore, if N ≦ 10, T1 (N) ≦ T2 (N) holds. This condition is described in the program 3 and is stored in the main storage device 2 and is used by the processor selection means 32 in a timely manner for determination.

まず、プログラム3が起動されると、サブプログラム31がプロセッサ11上で実行され、処理結果である決定されたNの値が中間結果格納手段4に格納される(Step 100)。   First, when the program 3 is started, the subprogram 31 is executed on the processor 11, and the determined value of N, which is a processing result, is stored in the intermediate result storage means 4 (Step 100).

次に、プロセッサ格納手段320は、中間結果格納手段4に格納されたNの値を参照し(Step 101)、その値がプロセッサ11の実行時間T1(N)がプロセッサ12の実行時間T2(N)より短くなる条件であるN<10に合致していれば(Step 102)、サブプログラム33aをプロセッサ11上で実行させる(Step 103)。一方、N≧10ならば、サブプログラム33bをプロセッサ12上で実行させる(Step 104)。   Next, the processor storage means 320 refers to the value of N stored in the intermediate result storage means 4 (Step 101), the value of which is the execution time T1 (N) of the processor 11 and the execution time T2 (N of the processor 12). ) If N <10 which is a shorter condition is satisfied (Step 102), the subprogram 33a is executed on the processor 11 (Step 103). On the other hand, if N ≧ 10, the subprogram 33b is executed on the processor 12 (Step 104).

サブプログラム33a、又はサブプログラム33bの処理が終了したら、サブプログラム34がプロセッサ11上で実行される(Step 105)。   When the processing of the subprogram 33a or the subprogram 33b is completed, the subprogram 34 is executed on the processor 11 (Step 105).

このように構成された実施の形態によれば、プロセッサ選択手段32により、中間結果格納手段4を参照して、プロセッサ11とプロセッサ12とのうち、実行時間が短くなるプロセッサを選択して実行しているので、プログラムのターンアラウンド時間を短縮することができる。   According to the embodiment configured as described above, the processor selection unit 32 refers to the intermediate result storage unit 4 to select and execute a processor having a shorter execution time from the processors 11 and 12. As a result, the turnaround time of the program can be shortened.

次に、本発明の他の実施の形態を説明する。   Next, another embodiment of the present invention will be described.

図4は本発明の他の実施の形態の構成を示すブロック図である。   FIG. 4 is a block diagram showing the configuration of another embodiment of the present invention.

図4を参照すると、他の実施の形態におけるマルチプロセッサシステムは、プログラム制御により動作するアーキテクチャの異なるn個のプロセッサ(中央処理装置;データ処理装置)プロセッサ411a、プロセッサ411b‥プロセッサ411nと、これらのプロセッサと結合された主記憶装置(メモリ)42と、主記憶装置(メモリ)42中に格納されるプログラム43及び中間結果格納手段44とから構成されている。   Referring to FIG. 4, a multiprocessor system according to another embodiment includes n processors (central processing units; data processing units) processors 411a, 411b,. A main storage device (memory) 42 coupled to the processor, a program 43 stored in the main storage device (memory) 42, and intermediate result storage means 44 are configured.

プログラム43は、サブプログラム431と、n個のサブプログラム433a、サブプログラム433b‥サブプログラム433nと、サブプログラム434と、プロセッサ選択手段432を機能させるプログラムとを含む。   The program 43 includes a subprogram 431, n subprograms 433a, subprogram 433b... Subprogram 433n, a subprogram 434, and a program that causes the processor selection unit 432 to function.

サブプログラム431、サブプログラム433a、サブプログラム434、及びプロセッサ選択手段432は、プロセッサ411a上で動作する。   The sub program 431, the sub program 433a, the sub program 434, and the processor selection unit 432 operate on the processor 411a.

サブプログラム433bはサブプログラム433aと同等の処理がプロセッサ411b上で、‥、サブプログラム433nはサブプログラム433aと同等の処理がプロセッサ411n上で行なわれる。   The subprogram 433b performs processing equivalent to the subprogram 433a on the processor 411b, and the subprogram 433n performs processing equivalent to the subprogram 433a on the processor 411n.

プログラム43は、次のように動作する。   The program 43 operates as follows.

プログラム43が起動されると、サブプログラム431は、プロセッサ411a上で実行され、中間結果の値を中間結果格納手段44に格納する。   When the program 43 is activated, the subprogram 431 is executed on the processor 411 a and stores the intermediate result value in the intermediate result storage means 44.

プロセッサ選択手段432は、中間結果格納手段44の値を参照し、その値がプロセッサ411aの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム433aをプロセッサ411a上で実行させる。   The processor selection unit 432 refers to the value of the intermediate result storage unit 44, and if the value matches the condition that the execution time of the processor 411a is shorter than the execution time of all the other processors, the processor 433a Execute on 411a.

また、中間結果格納手段44の値がプロセッサ411bの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム433bをプロセッサ411b上で実行させる。   If the value of the intermediate result storage means 44 matches the condition that the execution time of the processor 411b is shorter than the execution times of all other processors, the subprogram 433b is executed on the processor 411b.

同様に、プロセッサ411nの実行時間が他のすべてのプロセッサの実行時間より短くなる条件に合致していれば、サブプログラム433nをプロセッサ411n上で実行させる。   Similarly, if the condition that the execution time of the processor 411n is shorter than the execution times of all other processors is met, the subprogram 433n is executed on the processor 411n.

プロセッサ選択手段432で選択されたサブプログラムの実行が終了すると、次にサブプログラム434がプロセッサ411a上で実行される。   When the execution of the subprogram selected by the processor selection means 432 is completed, the subprogram 434 is then executed on the processor 411a.

このように、3個以上の異なるプロセッサから構成されるマルチプロセッサシステムにおいても、プロセッサ選択手段432において、最も実行時間が短いプロセッサを選択して処理を行うため、プログラムのターンアラウンド時間を短縮することができる。   As described above, even in a multiprocessor system composed of three or more different processors, the processor selection means 432 performs processing by selecting the processor having the shortest execution time, thereby reducing the program turnaround time. Can do.

本発明は、異なるプロセッサから構成されるマルチプロセッサシステム上で効率よく実行可能なプログラムを作成するといった用途に適用することができる。   The present invention can be applied to the use of creating a program that can be efficiently executed on a multiprocessor system including different processors.

図1は本発明の実施の形態の構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of the embodiment of the present invention. 図2はサブプログラム33a及びサブプログラム33bの一例を示した図である。FIG. 2 is a diagram showing an example of the subprogram 33a and the subprogram 33b. 図3は本発明の実施の形態の動作フローチャートである。FIG. 3 is an operation flowchart of the embodiment of the present invention. 図4は本発明の他の実施の形態の構成を示すブロック図である。FIG. 4 is a block diagram showing the configuration of another embodiment of the present invention.

符号の説明Explanation of symbols

2 主記憶装置
3 プログラム
4 中間結果格納手段
11,12 プロセッサ
31 サブプログラム
32 プロセッサ選択手段
33a サブプログラム
33b サブプログラム
34 サブプログラム
2 Main storage device 3 Program 4 Intermediate result storage means 11 and 12 Processor 31 Subprogram 32 Processor selection means 33a Subprogram 33b Subprogram 34 Subprogram

Claims (10)

複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で演算処理をおこなうプログラムの実行方法であって、
プログラム実行中に、所定のプロセッサが行なったプログラムの処理の中間結果を用いて、後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせることを特徴とするプログラム実行方法。
An execution method of a program for performing arithmetic processing on a multiprocessor system composed of a plurality of processors of different architectures,
During execution of a program, an intermediate result of program processing performed by a predetermined processor is used to select a processor that can execute subsequent processing at the highest speed, and to perform arithmetic processing of the subsequent processing on the selected processor. A program execution method.
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で、複数のサブプログラムから構成されるプログラムを実行するプログラム実行方法であって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択するステップと、
前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させるステップと
を有することを特徴とするプログラム実行方法。
A program execution method for executing a program composed of a plurality of subprograms on a multiprocessor system composed of a plurality of processors of different architectures,
A processor capable of executing the processing of the subprogram executed next to the subprogram executed by the predetermined processor at the highest speed based on the processing result of the subprogram executed by the predetermined processor among the processors of the plurality of different architectures. Selecting from a plurality of processors of different architectures;
And a step of causing the selected processor to execute a subprogram to be executed next to the subprogram.
プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件を予め決定しておくことを特徴とする請求項1又は請求項2に記載のプログラム実行方法。   3. The program execution method according to claim 1, wherein a processor condition to be selected is determined in advance corresponding to an intermediate result of the program processing or a value of a processing result of the subprogram. . 複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサのプログラムの処理の中間結果に基づいて、後続処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる選択手段を有することを特徴とするマルチプロセッサシステム。
A multiprocessor system composed of processors of different architectures,
Based on an intermediate result of the processing of the program of the predetermined processor among the processors of the plurality of different architectures, a processor that can execute the subsequent processing at the highest speed is selected from the processors of the plurality of different architectures, and the processor on the selected processor A multiprocessor system comprising selection means for performing a subsequent processing operation.
複数のサブプログラムから構成されるプログラムを実行する、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムであって、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択し、前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる選択手段を有することを特徴とするマルチプロセッサシステム。
A multiprocessor system configured by a plurality of processors having different architectures, which executes a program including a plurality of subprograms,
A processor capable of executing the processing of the subprogram executed next to the subprogram executed by the predetermined processor at the highest speed based on the processing result of the subprogram executed by the predetermined processor among the processors of the plurality of different architectures. A multiprocessor system comprising selection means for selecting a processor of a plurality of different architectures and causing the selected processor to execute a subprogram to be executed next to the subprogram.
前記プログラムの処理の中間結果が格納される記憶手段を有することを特徴とする請求項4又は請求項5に記載のマルチプロセッサシステム。   6. The multiprocessor system according to claim 4, further comprising storage means for storing an intermediate result of the processing of the program. プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して、選択すべきプロセッサの条件が記憶された記憶手段を有し、
前記選択手段は、プログラムの処理の中間結果、又はサブプログラムの処理結果を、前記記憶されている条件と比較し、条件に合致するプロセッサを選択する手段であることを特徴とする請求項4から請求項6のいずれかに記載のマルチプロセッサシステム。
Corresponding to the value of the intermediate result of the processing of the program or the processing result of the subprogram, it has storage means for storing the condition of the processor to be selected,
5. The selecting means is means for comparing an intermediate result of program processing or a processing result of a subprogram with the stored condition and selecting a processor that matches the condition. The multiprocessor system according to claim 6.
複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステムの演算処理を制御する制御プログラムであって、
前記制御プログラムは、前記マルチプロセッサシステムに、所定のプロセッサが行なった実行プログラムの処理の中間結果を用いて、前記実行プログラムの後続処理を最も高速に実行できるプロセッサを選択し、前記選択したプロセッサ上で後続処理の演算処理を行なわせる処理を実行させることを特徴とするマルチプロセッサシステムの制御プログラム。
A control program for controlling arithmetic processing of a multiprocessor system composed of processors of different architectures,
The control program selects, in the multiprocessor system, a processor that can execute the subsequent processing of the execution program at the highest speed by using an intermediate result of execution program processing performed by a predetermined processor. A control program for a multiprocessor system, which executes a process for performing a calculation process of a subsequent process.
複数のサブプログラムから構成されるプログラムを、複数の異なるアーキテクチャのプロセッサより構成されるマルチプロセッサシステム上で実行させる際の制御プログラムであって、
前記制御プログラムは、前記マルチプロセッサシステムに、
前記複数の異なるアーキテクチャのプロセッサのうち、所定プロセッサが実行したサブプログラムの処理結果に基づいて、前記所定プロセッサが実行したサブプログラムの次に実行するサブプログラムの処理を最も高速に実行できるプロセッサを、前記複数の異なるアーキテクチャのプロセッサから選択する処理と、
前記選択したプロセッサに、前記サブプログラムの次に実行するサブプログラムを実行させる処理と
を実行させることを特徴とする制御プログラム。
A control program for executing a program composed of a plurality of subprograms on a multiprocessor system composed of a plurality of processors of different architectures,
The control program is stored in the multiprocessor system.
A processor capable of executing the processing of the subprogram executed next to the subprogram executed by the predetermined processor at the highest speed based on the processing result of the subprogram executed by the predetermined processor among the processors of the plurality of different architectures. Selecting from a plurality of processors of different architectures;
A control program for causing the selected processor to execute a process for executing a subprogram to be executed next to the subprogram.
前記制御プログラムは、前記マルチプロセッサシステムに、プログラムの処理の中間結果、又はサブプログラムの処理結果を、予め記憶されている、プログラムの処理の中間結果、又はサブプログラムの処理結果の値に対応して選択すべきプロセッサの条件と比較し、条件に合致するプロセッサを選択する処理を実行させることを特徴とする請求項8又は請求項9に記載の制御プログラム。   The control program corresponds to the intermediate processing result of the program processing or the value of the processing result of the subprogram stored in advance in the multiprocessor system. 10. The control program according to claim 8, wherein the control program executes a process of selecting a processor that matches the condition of the processor to be selected.
JP2005095865A 2005-03-29 2005-03-29 Execution method of program, multiprocessor system and control program therefor Pending JP2006277364A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005095865A JP2006277364A (en) 2005-03-29 2005-03-29 Execution method of program, multiprocessor system and control program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005095865A JP2006277364A (en) 2005-03-29 2005-03-29 Execution method of program, multiprocessor system and control program therefor

Publications (1)

Publication Number Publication Date
JP2006277364A true JP2006277364A (en) 2006-10-12

Family

ID=37212056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005095865A Pending JP2006277364A (en) 2005-03-29 2005-03-29 Execution method of program, multiprocessor system and control program therefor

Country Status (1)

Country Link
JP (1) JP2006277364A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095871A (en) * 2011-03-11 2016-05-26 インテル・コーポレーション Dynamic core selection for heterogeneous multi-core systems

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095871A (en) * 2011-03-11 2016-05-26 インテル・コーポレーション Dynamic core selection for heterogeneous multi-core systems
JP2016095872A (en) * 2011-03-11 2016-05-26 インテル・コーポレーション Dynamic core selection for heterogeneous multi-core systems
JP2016095870A (en) * 2011-03-11 2016-05-26 インテル・コーポレーション Dynamic core selection for heterogeneous multi-core systems
US10437319B2 (en) 2011-03-11 2019-10-08 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US10437318B2 (en) 2011-03-11 2019-10-08 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US10534424B2 (en) 2011-03-11 2020-01-14 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US11755099B2 (en) 2011-03-11 2023-09-12 Intel Corporation Dynamic core selection for heterogeneous multi-core systems

Similar Documents

Publication Publication Date Title
JP4484925B2 (en) Method and apparatus for control flow management in SIMD devices
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
US9176737B2 (en) Controlling the execution of adjacent instructions that are dependent upon a same data condition
JP5994679B2 (en) Processing device and control method of processing device
KR101660659B1 (en) Executing subroutines in a multi-threaded processing system
US9355061B2 (en) Data processing apparatus and method for performing scan operations
JP2008071130A (en) Simd type microprocessor
US20100095091A1 (en) Processor, Method and Computer Program
JP2007526571A5 (en)
JP2007272353A (en) Processor device and compound condition processing method
US8977837B2 (en) Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes
US20200371802A1 (en) Vector index registers
JP2006277364A (en) Execution method of program, multiprocessor system and control program therefor
JP5233078B2 (en) Processor and processing method thereof
JP4444305B2 (en) Semiconductor device
US20140281423A1 (en) Processor and method for processing instructions using at least one processing pipeline
KR20230124598A (en) Compressed Command Packets for High Throughput and Low Overhead Kernel Initiation
JP2004062909A (en) System and method for software pipelining loop having multiple control flow passes
JP2009086870A (en) Vector processing device
CN111722876A (en) Method, apparatus, system, and medium for executing program using superscalar pipeline
JP2006309454A (en) Program control method and processor
JP2009251724A (en) Vector processor controller
GB2523805A (en) Data processing apparatus and method for performing vector scan operation
US20230084603A1 (en) Methods and apparatus for context switching
US20100185834A1 (en) Data Storing Method and Processor Using the Same

Legal Events

Date Code Title Description
A977 Report on retrieval

Effective date: 20080115

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080523

A02 Decision of refusal

Effective date: 20080709

Free format text: JAPANESE INTERMEDIATE CODE: A02