JP2002163238A - 情報処理方法および記録媒体 - Google Patents
情報処理方法および記録媒体Info
- Publication number
- JP2002163238A JP2002163238A JP2000360397A JP2000360397A JP2002163238A JP 2002163238 A JP2002163238 A JP 2002163238A JP 2000360397 A JP2000360397 A JP 2000360397A JP 2000360397 A JP2000360397 A JP 2000360397A JP 2002163238 A JP2002163238 A JP 2002163238A
- Authority
- JP
- Japan
- Prior art keywords
- parallel processing
- processing block
- program
- thread
- execution
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
行対象となるプログラムを複数の並列処理ブロックに分
割する。スレッド分割ステップ2は、並列処理ブロック
分割ステップ1によって生成された並列処理ブロック
を、プロセッサ群4の個数に応じた複数のスレッドに分
割する。プロセッサ群4は、スレッド分割ステップ2に
よって生成されたスレッドを実行する。指示ステップ3
は、プロセッサ群4のそれぞれのプロセッサがスレッド
の実行を終了した場合であって、プログラムに所定の指
示がなされていない場合には、当該プロセッサに対して
次の並列処理ブロックに係るスレッドを実行するように
指示する。
Description
記録媒体に関し、特に複数のプロセッサを有する計算装
置に対して、所定の情報処理を実行させる情報処理方法
および記録媒体に関する。
ログラムを実行させる場合には、対象となるプログラム
を複数の並列処理ブロックに分割し、得られた並列処理
ブロックを、処理の基本単位であるスレッドに分割して
各プロセッサに分担して処理させる方法が一般的であっ
た。
に示すプログラムを5つのプロセッサを有する計算装置
で実行する場合の様子を示す図である。この例では、実
行対象となるプログラムには2つの処理ループ(行番号
「1」〜「3」および行番号「5」〜「7」)が含まれ
ており、それぞれが第1の並列処理ブロックおよび第2
の並列処理ブロックとされている。
ッサに対応する処理の基本単位であるスレッド#1〜#
5が生成され、スレッド#1は、最初の処理ループ(行
番号「1」〜「3」のループ)の変数iが1から200
までの処理を分担し、スレッド#2は、同じく最初の処
理ループの変数iが201から400までの処理を分担
する。同様にして、スレッド#3、スレッド#4、およ
び、スレッド#5は、それぞれ、401から600、6
01から800、および、801から1000までの処
理を分担する。
は、並列処理ブロック間には「バリア」と呼ばれる監視
機構が設けられており、全てのスレッドの処理が終了す
るまで次の並列処理ブロックの実行が保留されていた。
る場合には、処理に要する時間は各並列処理ブロックに
おいて最も遅いスレッドの処理時間を加算した時間とな
り、プロセッサ資源が有効に活用できない場合があると
いう問題点があった。
たものであり、プロセッサ資源を有効活用することによ
り、処理時間を短縮することが可能な情報処理方法を提
供することを目的とする。
決するために、図1に示す、複数のプロセッサ(プロセ
ッサ群4)を有する計算装置に対して、所定の情報処理
を実行させる情報処理方法において、実行対象となるプ
ログラムを複数の並列処理ブロックに分割する並列処理
ブロック分割ステップ1と、並列処理ブロック分割ステ
ップ1によって分割された並列処理ブロックを、複数の
プロセッサのそれぞれに分担して処理させるための基本
処理単位であるスレッドに分割するスレッド分割ステッ
プ2と、所定のプロセッサにおいて、スレッドの実行が
終了した場合には、次の並列処理ブロックの実行を指示
する指示ステップ3と、を有することを特徴とする情報
処理方法が提供される。
は、実行対象となるプログラムを複数の並列処理ブロッ
クに分割する。スレッド分割ステップ2は、並列処理ブ
ロック分割ステップ1によって分割された並列処理ブロ
ックを、複数のプロセッサのそれぞれに分担して処理さ
せるための基本処理単位であるスレッドに分割する。指
示ステップ3は、所定のプロセッサにおいて、スレッド
の実行が終了した場合には、次の並列処理ブロックの実
行を指示する。
を参照して説明する。図1は、本発明の情報処理方法の
原理を説明する原理図である。この図に示すように、本
発明に係る情報処理方法は、プロセッサ群4を有する情
報処理装置に所定の情報処理を実行させることを目的と
している。ここで、本発明に係る情報処理方法は、並列
処理ブロック分割ステップ1、スレッド分割ステップ
2、および、指示ステップを有している。
対象となるプログラムを複数の並列処理ブロックに分割
する。スレッド分割ステップ2は、並列処理ブロック分
割ステップ1によって分割された並列処理ブロックを、
プロセッサ群4のそれぞれのプロセッサに分担して処理
させるための基本処理単位であるスレッドに分割する。
いて、スレッドの実行が終了した場合には、次の並列処
理ブロックの実行を指示するが、プログラムに所定の指
示がなされている場合には、全てのスレッドの処理が終
了するまで、次の並列処理ブロックの実行を指示しな
い。
る。いま、実行対象のプログラムが入力されると、並列
処理ブロック分割ステップ1は、これを複数の並列処理
ブロックに分割する。なお、並列処理ブロックとは、例
えば、ループ処理などのような一定の機能的な一体性を
有する処理単位をいう。従って、プログラムに複数のル
ープ処理が含まれている場合には、これらがそれぞれ並
列処理ブロックとして分割される。
ック分割ステップ1によって生成された並列処理ブロッ
クのそれぞれを実行される順に取得し、各プロセッサに
分担させるべき処理単位としてのスレッドに分割する。
図1の例では、5つのプロセッサが存在しているので、
並列処理ブロックは5つのスレッドに分割される。
2によって生成されたスレッドを、各プロセッサによっ
て分担して処理する。このとき、プロセッサによって実
行される処理の内容は、同一ではないので、処理が終了
するタイミングは、プロセッサ毎に異なることになる。
処理が完了するまで、バリアが監視していたので、ある
プロセッサが先に処理を終了した場合であっても他の全
てのプロセッサが処理を完了するまで待つ必要があっ
た。
プロセッサにおいて処理が完了した場合には、プログラ
ムに指示がない限り、指示ステップ3が次の並列処理ブ
ロックの実行を指示するので、先にスレッドの実行を終
えたプロセッサは次の並列処理ブロックのスレッドを実
行することになる。
プログラムに出現した場合には、指示ステップ3が次の
並列処理ブロックへの移行を保留するので、そこで、全
てのスレッドが同期することになる。
理ブロックにおける最長のスレッドの実行時間を加算し
た値が実行時間であったが、本発明の情報処理方法によ
れば、所定の並列ブロックに全ての最長のスレッドが分
担されない限りは、実行時間を短縮することが可能とな
る。
る。図2は、本発明の情報処理方法を実行する実施の形
態の構成例を示す図である。
な情報処理装置において実行される。ここで、情報処理
装置10は、PU(Processor Unit)10a−1〜10
a−5、ROM(Read Only Memory)10b、RAM
(Random Access Memory)10c、HDD(Hard Disk
Drive)10d、GB(Graphics Board)10e、I/
F(Interface)10f、および、バス10gによって
構成されており、その外部には表示装置11および入力
装置12が接続されている。
HDD10dに格納されたプログラムに従って、各種演
算処理を実行するとともに、装置の各部を制御する。R
OM10bは、PU10a−1〜10a−5が実行する
基本的なプログラムやデータ等を格納している。
−5が実行対象とするプログラムや演算途中のデータを
一時的に格納する。HDD10dは、PU10a−1〜
10a−5が実行するプログラムやデータを格納してい
る。具体的には、システムを管理し、基本的なユーザ操
作環境を提供するための基本的なプログラムであるOS
(Operating System)や、本発明に係るコンパイラ、リ
ンカ、および、実行対象となるアプリケーションプログ
ラム等を格納している。
5から供給された描画命令に従って描画処理を施し、得
られた画像を映像信号に変換して出力する。I/F10
fは、入力装置12から出力されたデータを、装置内部
の表現形式に変換して入力する。
5、ROM10b、RAM10c、HDD10d、GB
10e、および、I/F10fを相互に接続し、これら
の間で情報の授受を可能とする。
は、並行して処理を行うことが可能であり、実行対象の
プログラムを複数の並列処理ブロックに分割して処理す
る。その際、共通のリソースであるROM10b等にア
クセスする際には、排他制御により、他のユニットの影
響を受けないように制御されている。
して示してあるが、要は複数のPUと、それぞれのPU
が独立して動作するような構成を有していればよい。図
3は、図2に示す実施の形態において、HDD10dに
格納されているOSが起動され、そのOS上で、本発明
に係るコンパイラ、リンカ、および、ライブラリが実行
される際のそれぞれの対応関係を示す図である。この図
に示すように、実行対象となるソースプログラム20
は、コンパイラ21によってコンパイル(翻訳)され、
リンカ22によって基本的なプログラムであるライブラ
リ23に格納された必要なプログラムが付加され、実行
形式プログラム24が生成される。なお、本発明は、ラ
イブラリ23の詳細に係るものであり、以下に示す新た
な制御方法を用いることにより、並列処理の高速化を図
ることが可能となる。
の一例を示す図である。このソースプログラム20で
は、行番号「1」において、要素数が1000,200
0,3000である整数型の配列m,n,pが宣言され
ている。行番号「3」においては並列処理を行うことが
宣言されており、これは行番号「19」に示す「EN
D」と対を構成している。行番号「4」から「8」まで
はループ処理を形成しており、変数iの値を配列mの各
要素として格納する処理が実行される。また、行番号
「9」から「13」までは他のループ処理を形成してお
り、変数iを2倍した値を配列nの各要素として格納す
る処理が実行される。更に、行番号「14」から「1
8」までは他のループ処理を形成しており、変数iを3
倍した値を配列pの各要素として格納する処理が実行さ
れる。
第1のループ処理、行番号「9」から「13」までを第
2のループ処理、行番号「14」から「18」までを第
3のループ処理と呼ぶことにする。行番号「8」,「1
3」,「18」に示す「NOWAIT」は、ウエイト処
理を実行しないことを示しており、この一行を付加する
ことにより、バリア機能が停止されることになる。
用のプログラムによって指定することができる。また、
プログラム中においても、所定のコマンドを配置するこ
とにより、並列数を任意に指定することができる。
ンパイラ21によって翻訳され、リンカ22によってラ
イブラリ23に含まれる必要なプログラムが付加され、
実行形式プログラム24に変換される。なお、コンパイ
ルの際には、並列処理の単位である並列処理ブロックに
分割され、それぞれの並列処理ブロックにはユニークな
番号である並列処理ブロック番号が付与される。図4に
示すソースプログラムの例では、第1〜第3のループ処
理のそれぞれが並列処理ブロックであるので、例えば、
1〜3の並列ブロック番号がそれぞれの並列処理ブロッ
クに付与される。
れた際の動作を説明するための図である。この図におい
て、実行形式プログラム24は、図4に示すソースプロ
グラム20が機械語に翻訳されたものであり、前述した
第1〜第3のループ処理を有している。スレッド制御部
60および第1〜第5のスレッド61〜65は、リンカ
22によって付加された並列処理用のプログラムであ
り、実行形式プログラム24から呼び出されて実行され
るサブルーチン形式のプログラムである。
ブロックである第1〜第3のループ処理から呼び出され
た場合には、第1〜第5のスレッド61〜65を起動
し、処理を実行させるとともに、これらのスレッドの実
行状態の管理を行う。第1〜第5のスレッドは、PU1
0a−1〜10a−5によって実行される処理の基本単
位である。
よび第1〜第5のスレッド61〜65が機能する際にR
AM10cに確保する記憶領域を示す図である。この図
において、スレッド情報域71〜75は第1〜第5のス
レッド61〜65のそれぞれが確保している領域であ
り、各情報域にはそのスレッドが現在実行している並列
処理ブロックの番号を示す並列処理ブロック番号71a
〜75aが格納されている。並列処理制御情報域76
は、スレッド制御部60が確保している領域であり、全
てのスレッドのうち最先のスレッドが実行している並列
処理ブロック番号76aが格納されている。
は、現在実行中の並列処理ブロックに対応して生成され
る情報域であり、当該並列処理ブロックの処理を終了し
たスレッドの個数である実行終了スレッド数77a,7
8aが格納されている。この例では、2つの並列処理ブ
ロック制御情報域77,78が生成されており、2つの
並列処理ブロックが実行中の状態に対応している。な
お、この例では、第1のスレッド61〜第4のスレッド
64は、並列処理ブロック制御情報域77に対応する並
列処理ブロックを実行中であり、第5のスレッド65
は、並列処理ブロック制御情報域78に対応する並列処
理ブロックを実行中である。
である場合にはその数に対応した並列処理ブロック制御
情報域が生成され、また、1つの並列ブロックが実行中
である場合には1つの並列処理ブロック制御情報域が生
成される。
プログラム20から生成された実行形式プログラム24
が実行される際の、図5および図6に示すブロック図の
動作について説明する。
並列処理ブロック番号が「1」である第1のループ処理
が実行の対象となる。第1のループ処理は、スレッド制
御部60をサブルーチンコールし、引数等を引き渡すと
ともに、処理の開始を依頼する。すると、スレッド制御
部60は、並列処理制御情報域76の並列処理ブロック
番号を「1」に設定するとともに、並列処理ブロック制
御情報域77を生成し、実行終了スレッド数77aを
「0」に初期設定する。続いて、スレッド制御部60
は、第1〜第5のスレッドを生成して、処理の実行を開
始する。第1〜第5のスレッド61〜65は、それぞ
れ、スレッド情報域71〜75を確保するとともに、現
在実行中である第1のループ処理に対応する並列処理ブ
ロック番号「1」を並列処理ブロック番号71a〜75
aとして格納する。
列処理制御情報域76に格納されているデータを示す図
であり、左端の第1列目から第5列目までがスレッド情
報域71〜75にそれぞれ対応し、右端の列が並列処理
制御情報域76に対応している。この図の第1行目は、
処理が開始された当初の状態を示しており、開始当初は
第1のスレッド61のみが並列処理ブロック番号「1」
を格納しておりその他はまだ未格納の状態である。第2
行目では、5列目以外は全て「1」の状態となってお
り、第5のスレッド65以外は全て第1のループ処理を
実行中の状態であることが示されている。
62が第1のループ処理の実行を終了すると、スレッド
制御部60にその旨が通知される。すると、スレッド制
御部60は、第1の処理ループの末尾に「NOWAI
T」が挿入されていることを検出し、バリア機能を実行
せずに次の処理に移行することを認識し、先ず、実行終
了スレッド数77aを「0」から「1」に更新する。次
に、スレッド制御部60は、並列処理制御情報域76の
並列処理ブロック番号76aを「1」から「2」に更新
し、続いて、第2のループ処理に対応した並列処理ブロ
ック制御情報域78を生成して実行終了スレッド数78
aを「0」に初期設定する。
レッドが第1のループ処理を終了した場合には、実行終
了スレッド数77aが「5」になるので、その場合に
は、並列処理ブロック制御情報域77がRAM10c上
から削除されることになる。
理を終了した場合には、図7の最後の行に示すように、
並列処理ブロック番号71a〜75aが全て「3」の状
態になり、プログラムの実行が完了することになる。
示す従来例とは異なり、図8に示すようにバリア機能が
実行されることなく、各スレッドが他のスレッドの実行
状態に拘わりなく、次の並列処理ブロックを実行するこ
とになる。従って、図10に示す従来例では、トータル
の実行時間は各並列処理ブロックで最も遅いスレッドの
実行時間の合計になるが、本実施の形態ではそれ以下の
時間で実行することが可能となる。
10a−1〜10a−5により、5つのスレッドで処理
する場合を例に挙げて説明したが、本発明はこのような
場合に限定されるものではなく、これ以外の組み合わせ
でも本発明を適用可能であることはいうまでもない。
管理をライブラリ23によって行うようにしたが、コン
パイラ21によって同様のプログラムを実行形式プログ
ラム24に付加するようにしても同様の効果を得ること
ができる。なお、付加の方法としては、例えば、インラ
イン展開やマクロ等を用いることができる。
処理ブロックの最後に「NOWAIT」を挿入したの
で、各スレッドは、他のスレッドとは無関係に最後の並
列処理ブロックまで処理を継続することになるが、この
「NOWAIT」を除外することにより、そこで、スレ
ッドの足並みを一旦揃えることも可能である。このよう
に「NOWAIT」を適宜挿入することにより、バリア
機能を有効または無効にすることが可能となる。
0において実行されるフローチャートについて説明す
る。このフローチャートは、第1〜第5のスレッド61
〜65において処理が終了した場合に呼び出されて実行
される。このフローチャートが開始されると、以下のス
テップが実行される。
の並列処理ブロック番号を1だけインクリメントする。
報域の並列処理ブロック番号を代入する。 ステップS12:変数kに該当するスレッド情報域の並
列処理ブロック番号を代入する。
以上であるか否か、即ち、当該スレッドが新たな並列処
理ブロックを実行するか否かを判定し、新たな並列処理
ブロックを実行する場合にはステップS14に進み、そ
れ以外の場合にはステップS17に進む。
の並列処理ブロック番号76aを1だけインクリメント
する。
に対応する並列処理ブロック制御情報域を生成するとと
もに、実行終了スレッド数を「0」に初期設定する。
理を開始する。 ステップS17:スレッド情報域の並列処理ブロック番
号を参照し、実行対象となる並列処理ブロックを特定す
る。
た並列処理ブロックを実行する。 ステップS19:該当する並列処理ブロック制御情報域
の実行終了スレッド数をインクリメントする。
インクリメントの結果、実行終了スレッド数がスレッド
数(図6の例では「5」)と等しくなった場合には、ス
テップS21に進み、それ以外の場合には処理を終了す
る。
ブロック制御情報域を削除する。以上の処理によれば、
前述した機能を実現することが可能となる。
によって実現することができる。その場合、情報処理装
置が有すべき機能の処理内容は、コンピュータで読み取
り可能な記録媒体に記録されたプログラムに記述されて
おり、このプログラムをコンピュータで実行することに
より、上記処理がコンピュータで実現される。コンピュ
ータで読み取り可能な記録媒体としては、磁気記録装置
や半導体メモリ等がある。市場へ流通させる場合には、
CD−ROM(Compact Disk Read Only Memory)やフロ
ッピー(登録商標)ディスク等の可搬型記録媒体にプロ
グラムを格納して流通させたり、ネットワークを介して
接続されたコンピュータの記憶装置に格納しておき、ネ
ットワークを通じて他のコンピュータに転送することも
できる。コンピュータで実行する際には、コンピュータ
内のハードディスク装置等にプログラムを格納してお
き、メインメモリにロードして実行する。
算装置に対して、所定の情報処理を実行させる情報処理
方法において、実行対象となるプログラムを複数の並列
処理ブロックに分割する並列処理ブロック分割ステップ
と、前記並列処理ブロック分割ステップによって分割さ
れた並列処理ブロックを、前記複数のプロセッサのそれ
ぞれに分担して処理させるための基本処理単位であるス
レッドに分割するスレッド分割ステップと、所定のプロ
セッサにおいて、前記スレッドの実行が終了した場合に
は、次の並列処理ブロックの実行を指示する指示ステッ
プと、を有することを特徴とする情報処理方法。
行対象となるプログラムに所定の指示がなされている場
合には、全てのスレッドの処理が終了するまで、次の並
列処理ブロックの実行を指示しないことを特徴とする付
記1記載の情報処理方法。
算装置に対して、所定の情報処理を実行させるプログラ
ムを記録したコンピュータ読み取り可能な記録媒体にお
いて、コンピュータを、実行対象となるプログラムを複
数の並列処理ブロックに分割する並列処理ブロック分割
手段、前記並列処理ブロック分割手段によって分割され
た並列処理ブロックを、前記複数のプロセッサのそれぞ
れに分担して処理させるための基本処理単位であるスレ
ッドに分割するスレッド分割手段、所定のプロセッサに
おいて、前記スレッドの実行が終了した場合には、次の
並列処理ブロックの実行を指示する指示手段、として機
能させるプログラムを記録したコンピュータ読み取り可
能な記録媒体。
定の情報処理を実行する情報処理装置において、実行対
象となるプログラムを複数の並列処理ブロックに分割す
る並列処理ブロック分割手段と、前記並列処理ブロック
分割手段によって分割された並列処理ブロックを、前記
複数のプロセッサのそれぞれに分担して処理させるため
の基本処理単位であるスレッドに分割するスレッド分割
手段と、所定のプロセッサにおいて、前記スレッドの実
行が終了した場合には、次の並列処理ブロックの実行を
指示する指示手段と、を有することを特徴とする情報処
理装置。
算装置に対して、所定の情報処理を実行させるプログラ
ムを記録したコンピュータ読み取り可能な記録媒体にお
いて、コンピュータを、複数の並列処理ブロックに分割
された実行対象のプログラムの所定の並列処理ブロック
から実行要求がなされた場合には、複数のスレッドを生
成し、各プロセッサに処理を分担させる処理分担手段、
何れかのスレッドの処理が終了した場合には、次の並列
処理ブロックに係るスレッドの実行を指示する実行指示
手段、として機能させるプログラムを記録したコンピュ
ータ読み取り可能な記録媒体。
行対象となるプログラムに所定の指示がなされている場
合には、全てのスレッドの処理が終了するまで、次の並
列処理ブロックの実行を指示しないことを特徴とする付
記5記載の記録媒体。
プロセッサを有する計算装置に対して、所定の情報処理
を実行させる情報処理方法において、実行対象となるプ
ログラムを複数の並列処理ブロックに分割する並列処理
ブロック分割ステップと、並列処理ブロック分割ステッ
プによって分割された並列処理ブロックを、複数のプロ
セッサのそれぞれに分担して処理させるための基本処理
単位であるスレッドに分割するスレッド分割ステップ
と、所定のプロセッサにおいて、スレッドの実行が終了
した場合には、次の並列処理ブロックの実行を指示する
指示ステップと、を設けるようにしたので、並列処理ブ
ロックが連続して処理される場合には、従来のようなバ
リアによる遅延を排除することにより、処理速度を向上
させることが可能となる。
である。
されているOSが起動され、そのOS上で、本発明に係
るコンパイラ、リンカ、および、ライブラリが実行され
る際のそれぞれの対応関係を示す図である。
ある。
明するための図である。
スレッドが機能する際にRAMに確保している記憶領域
を示す図である。
行形式プログラムが実行される際の、図5および図6に
示すブロック図の動作について説明する図である。
明するための図である。
処理の一例を説明するフローチャートである。
るための図である。
Claims (5)
- 【請求項1】 複数のプロセッサを有する計算装置に対
して、所定の情報処理を実行させる情報処理方法におい
て、 実行対象となるプログラムを複数の並列処理ブロックに
分割する並列処理ブロック分割ステップと、 前記並列処理ブロック分割ステップによって分割された
並列処理ブロックを、前記複数のプロセッサのそれぞれ
に分担して処理させるための基本処理単位であるスレッ
ドに分割するスレッド分割ステップと、 所定のプロセッサにおいて、前記スレッドの実行が終了
した場合には、次の並列処理ブロックの実行を指示する
指示ステップと、 を有することを特徴とする情報処理方法。 - 【請求項2】 前記指示ステップは、前記実行対象とな
るプログラムに所定の指示がなされている場合には、全
てのスレッドの処理が終了するまで、次の並列処理ブロ
ックの実行を指示しないことを特徴とする請求項1記載
の情報処理方法。 - 【請求項3】 複数のプロセッサを有する計算装置に対
して、所定の情報処理を実行させるプログラムを記録し
たコンピュータ読み取り可能な記録媒体において、 コンピュータを、 実行対象となるプログラムを複数の並列処理ブロックに
分割する並列処理ブロック分割手段、 前記並列処理ブロック分割手段によって分割された並列
処理ブロックを、前記複数のプロセッサのそれぞれに分
担して処理させるための基本処理単位であるスレッドに
分割するスレッド分割手段、 所定のプロセッサにおいて、前記スレッドの実行が終了
した場合には、次の並列処理ブロックの実行を指示する
指示手段、 として機能させるプログラムを記録したコンピュータ読
み取り可能な記録媒体。 - 【請求項4】 複数のプロセッサを有する計算装置に対
して、所定の情報処理を実行させるプログラムを記録し
たコンピュータ読み取り可能な記録媒体において、 コンピュータを、 複数の並列処理ブロックに分割された実行対象のプログ
ラムの所定の並列処理ブロックから実行要求がなされた
場合には、複数のスレッドを生成し、各プロセッサに処
理を分担させる処理分担手段、 何れかのスレッドの処理が終了した場合には、次の並列
処理ブロックに係るスレッドの実行を指示する実行指示
手段、 として機能させるプログラムを記録したコンピュータ読
み取り可能な記録媒体。 - 【請求項5】 前記実行指示手段は、前記実行対象とな
るプログラムに所定の指示がなされている場合には、全
てのスレッドの処理が終了するまで、次の並列処理ブロ
ックの実行を指示しないことを特徴とする請求項4記載
の記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000360397A JP3810631B2 (ja) | 2000-11-28 | 2000-11-28 | 情報処理プログラムを記録した記録媒体 |
US09/838,166 US7058945B2 (en) | 2000-11-28 | 2001-04-20 | Information processing method and recording medium therefor capable of enhancing the executing speed of a parallel processing computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000360397A JP3810631B2 (ja) | 2000-11-28 | 2000-11-28 | 情報処理プログラムを記録した記録媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002163238A true JP2002163238A (ja) | 2002-06-07 |
JP2002163238A5 JP2002163238A5 (ja) | 2004-12-09 |
JP3810631B2 JP3810631B2 (ja) | 2006-08-16 |
Family
ID=18832012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000360397A Expired - Fee Related JP3810631B2 (ja) | 2000-11-28 | 2000-11-28 | 情報処理プログラムを記録した記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7058945B2 (ja) |
JP (1) | JP3810631B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009131167A1 (ja) * | 2008-04-23 | 2009-10-29 | 日本電気株式会社 | マルチプロセッサ制御装置、その方法及びそのプログラム |
JP2021015088A (ja) * | 2019-07-16 | 2021-02-12 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207223A (ja) * | 1999-01-12 | 2000-07-28 | Matsushita Electric Ind Co Ltd | 並列処理向けのプログラム処理方法および装置、並びに並列処理向けのプログラム処理を実行するプログラムを記録した記録媒体および並列処理向けの命令列を記録した記録媒体 |
US7496654B2 (en) * | 2001-06-29 | 2009-02-24 | Microsoft Corporation | Multi-threaded system for activating a process using a script engine and publishing data descriptive of the status of the process |
US7069556B2 (en) * | 2001-09-27 | 2006-06-27 | Intel Corporation | Method and apparatus for implementing a parallel construct comprised of a single task |
US20040083475A1 (en) * | 2002-10-25 | 2004-04-29 | Mentor Graphics Corp. | Distribution of operations to remote computers |
CA2442803A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Structure and method for managing workshares in a parallel region |
JP2006178554A (ja) * | 2004-12-21 | 2006-07-06 | Hitachi Ltd | 分散ポリシー連携方法 |
US7770170B2 (en) * | 2005-07-12 | 2010-08-03 | Microsoft Corporation | Blocking local sense synchronization barrier |
GB0524720D0 (en) * | 2005-12-05 | 2006-01-11 | Imec Inter Uni Micro Electr | Ultra low power ASIP architecture II |
US8284206B2 (en) | 2006-03-14 | 2012-10-09 | Transgaming, Inc. | General purpose software parallel task engine |
US8380880B2 (en) | 2007-02-02 | 2013-02-19 | The Mathworks, Inc. | Scalable architecture |
US20080189718A1 (en) * | 2007-02-02 | 2008-08-07 | The Mathworks, Inc. | Scalable architecture |
US8255890B2 (en) * | 2007-02-14 | 2012-08-28 | The Mathworks, Inc. | Media for performing parallel processing of distributed arrays |
US8239844B2 (en) * | 2007-02-14 | 2012-08-07 | The Mathworks, Inc. | Method of using parallel processing constructs and dynamically allocating program portions |
US8010954B2 (en) | 2007-02-14 | 2011-08-30 | The Mathworks, Inc. | Parallel programming interface to dynamically allocate program portions |
US8250550B2 (en) * | 2007-02-14 | 2012-08-21 | The Mathworks, Inc. | Parallel processing of distributed arrays and optimum data distribution |
US8239845B2 (en) * | 2007-02-14 | 2012-08-07 | The Mathworks, Inc. | Media for using parallel processing constructs |
US8255889B2 (en) * | 2007-02-14 | 2012-08-28 | The Mathworks, Inc. | Method of using parallel processing constructs and dynamically allocating program portions |
US8239846B2 (en) * | 2007-02-14 | 2012-08-07 | The Mathworks, Inc. | Device for performing parallel processing of distributed arrays |
KR101458028B1 (ko) * | 2007-05-30 | 2014-11-04 | 삼성전자 주식회사 | 병렬 처리 장치 및 방법 |
US9678775B1 (en) * | 2008-04-09 | 2017-06-13 | Nvidia Corporation | Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment |
US8776030B2 (en) * | 2008-04-09 | 2014-07-08 | Nvidia Corporation | Partitioning CUDA code for execution by a general purpose processor |
JP4381459B1 (ja) * | 2008-06-27 | 2009-12-09 | 株式会社東芝 | 情報処理装置、粒度調整方法およびプログラム |
JP5132459B2 (ja) * | 2008-07-18 | 2013-01-30 | キヤノン株式会社 | データ処理装置、データ処理装置の制御方法、記憶媒体及びプログラム |
US8924984B2 (en) | 2009-06-26 | 2014-12-30 | Microsoft Corporation | Lock-free barrier with dynamic updating of participant count |
GB2486485B (en) | 2010-12-16 | 2012-12-19 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a microprocessor using multiple phases of execution |
US8607247B2 (en) * | 2011-11-03 | 2013-12-10 | Advanced Micro Devices, Inc. | Method and system for workitem synchronization |
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4951193A (en) * | 1986-09-05 | 1990-08-21 | Hitachi, Ltd. | Parallel computer with distributed shared memories and distributed task activating circuits |
JPH01108638A (ja) * | 1987-10-21 | 1989-04-25 | Hitachi Ltd | 並列化コンパイル方式 |
US4965718A (en) * | 1988-09-29 | 1990-10-23 | International Business Machines Corporation | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
JP3039953B2 (ja) * | 1989-04-28 | 2000-05-08 | 株式会社日立製作所 | 並列化装置 |
IL93239A (en) * | 1990-02-01 | 1993-03-15 | Technion Res & Dev Foundation | High flow-rate synchronizer/schedular apparatus for multiprocessors |
DE69130630T2 (de) * | 1990-09-14 | 1999-09-09 | Hitachi Ltd | Synchrones Verfahren und Gerät für Prozessoren |
US5367678A (en) * | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
US5630128A (en) * | 1991-08-09 | 1997-05-13 | International Business Machines Corporation | Controlled scheduling of program threads in a multitasking operating system |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
JPH05265975A (ja) * | 1992-03-16 | 1993-10-15 | Hitachi Ltd | 並列計算処理装置 |
US6256704B1 (en) * | 1993-09-16 | 2001-07-03 | International Business Machines Corporation | Task management for data accesses to multiple logical partitions on physical disk drives in computer systems |
JP3231571B2 (ja) * | 1994-12-20 | 2001-11-26 | 日本電気株式会社 | 順序付きマルチスレッド実行方法とその実行装置 |
US6078945A (en) * | 1995-06-21 | 2000-06-20 | Tao Group Limited | Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques |
US5812844A (en) * | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
US6418460B1 (en) * | 1997-02-18 | 2002-07-09 | Silicon Graphics, Inc. | System and method for finding preempted threads in a multi-threaded application |
US5956802A (en) * | 1997-04-11 | 1999-09-28 | Wagner Spray Tech Corporation | Painting apparatus and assembly |
JP3209205B2 (ja) * | 1998-04-28 | 2001-09-17 | 日本電気株式会社 | プロセッサにおけるレジスタ内容の継承装置 |
US6954922B2 (en) * | 1998-04-29 | 2005-10-11 | Sun Microsystems, Inc. | Method apparatus and article of manufacture for time profiling multi-threaded programs |
US6418458B1 (en) * | 1998-10-02 | 2002-07-09 | Ncr Corporation | Object-oriented prioritized work thread pool |
US6286027B1 (en) * | 1998-11-30 | 2001-09-04 | Lucent Technologies Inc. | Two step thread creation with register renaming |
US6378066B1 (en) * | 1999-02-04 | 2002-04-23 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications |
JP3571976B2 (ja) * | 1999-11-08 | 2004-09-29 | 富士通株式会社 | デバッグ装置及び方法並びにプログラム記録媒体 |
JP2001147819A (ja) * | 1999-11-19 | 2001-05-29 | Fujitsu Ltd | 最適化装置および記録媒体 |
JP2001167060A (ja) * | 1999-12-07 | 2001-06-22 | Hitachi Ltd | タスク並列化方法 |
US6651163B1 (en) * | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
-
2000
- 2000-11-28 JP JP2000360397A patent/JP3810631B2/ja not_active Expired - Fee Related
-
2001
- 2001-04-20 US US09/838,166 patent/US7058945B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009131167A1 (ja) * | 2008-04-23 | 2009-10-29 | 日本電気株式会社 | マルチプロセッサ制御装置、その方法及びそのプログラム |
JP5382624B2 (ja) * | 2008-04-23 | 2014-01-08 | 日本電気株式会社 | マルチプロセッサ制御装置、その方法及びそのプログラム |
JP2021015088A (ja) * | 2019-07-16 | 2021-02-12 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
JP7293929B2 (ja) | 2019-07-16 | 2023-06-20 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
Also Published As
Publication number | Publication date |
---|---|
US20020078125A1 (en) | 2002-06-20 |
JP3810631B2 (ja) | 2006-08-16 |
US7058945B2 (en) | 2006-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002163238A (ja) | 情報処理方法および記録媒体 | |
JP3587259B2 (ja) | 命令処理制御システム | |
US8171491B2 (en) | Object synchronization in shared object space | |
JPS58151655A (ja) | 情報処理装置 | |
JP2001249812A (ja) | オペレーティング・システムのブート方法、実行方法、そのシステム及びそのプログラム製品 | |
JPS62262142A (ja) | 複数実行ユニツト・ユニプロセツサ・システム | |
JPH04268927A (ja) | メモリ管理方法 | |
JP2826028B2 (ja) | 分散メモリ型プロセッサシステム | |
JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
JP2884831B2 (ja) | 処理装置 | |
JPH0760388B2 (ja) | パイプライン制御回路 | |
JPH07311740A (ja) | コンピュータ | |
JP5187944B2 (ja) | コンピュータ使用可能コードを実行する装置及び方法 | |
JP2975253B2 (ja) | 多重化ボリューム装置 | |
JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
JPH03204731A (ja) | 仮想計算機システムのエミュレーション実行装置及び方法 | |
JP3137094B2 (ja) | シミュレーション方法、シミュレーション装置及びその記録媒体 | |
TW202217559A (zh) | 設置於圖形處理器中的二次卸載裝置和方法 | |
JPS62236063A (ja) | マルチタスキング方式 | |
JPH0346033A (ja) | ジヨブ間データ転送制御方法 | |
JPH0247726A (ja) | 情報処理装置 | |
JPH027129A (ja) | 演算処理装置 | |
JPH01255037A (ja) | 電子計算機 | |
JPH04347756A (ja) | チャネル状態読み出し方式 | |
JPH07244564A (ja) | ディスクアレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060426 |
|
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: 20060523 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060524 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100602 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110602 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120602 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120602 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130602 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140602 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |