JP2015069576A - 情報処理装置および情報処理装置の制御方法 - Google Patents

情報処理装置および情報処理装置の制御方法 Download PDF

Info

Publication number
JP2015069576A
JP2015069576A JP2013205534A JP2013205534A JP2015069576A JP 2015069576 A JP2015069576 A JP 2015069576A JP 2013205534 A JP2013205534 A JP 2013205534A JP 2013205534 A JP2013205534 A JP 2013205534A JP 2015069576 A JP2015069576 A JP 2015069576A
Authority
JP
Japan
Prior art keywords
progress
information processing
processor
access request
processing apparatus
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
JP2013205534A
Other languages
English (en)
Other versions
JP6201591B2 (ja
Inventor
吉田 祐樹
Yuki Yoshida
祐樹 吉田
将 加瀬
Masaru Kase
将 加瀬
俊幸 清水
Toshiyuki Shimizu
俊幸 清水
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013205534A priority Critical patent/JP6201591B2/ja
Priority to US14/475,961 priority patent/US9830195B2/en
Publication of JP2015069576A publication Critical patent/JP2015069576A/ja
Application granted granted Critical
Publication of JP6201591B2 publication Critical patent/JP6201591B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

【課題】並列計算機システムの処理性能を向上させることを目的とする。【解決手段】情報処理装置10は、複数のプロセッサ11〜13を有する。ここで、情報処理装置10は、各プロセッサ11〜13が実行する処理の進捗を示す進捗度を、プロセッサ11〜13ごとに計測する計測回路11a〜13aを有する。そして、情報処理装置10は、外部装置に対するアクセス要求を複数のプロセッサから受信した場合は、アクセス要求の送信元となるプロセッサから計測された進捗度に基づいて、アクセス要求を調停する。【選択図】図1

Description

本発明は、情報処理装置および情報処理装置の制御方法に関する。
従来、複数のプロセッサを有し、各プロセッサが処理を並列に実行する並列計算機システムの技術が知られている。例えば、複数のコンピュータをネットワーク接続した並列コンピューティングシステム、複数のプロセッサをバスレベルで接続したマルチプロセッサシステム、同一チップ上に複数のプロセッサを集積したCMP(Chip Multi Processor)等の技術が知られている。
このような並列計算機システムは、1つのタスクを複数のプロセスやスレッド等の処理に分割し、分割されたプロセスやスレッドを各プロセッサに割当てる。かかる場合、各プロセッサは、メモリ、ネットワーク、ストレージ等への外部アクセスや、他のプロセッサとの通信を実行し、割当てられた処理を実行するためのデータを取得する。そして、各プロセッサは、取得したデータを用いて処理を実行し、外部アクセスを実行して、処理の実行結果を出力する。
また、並列計算機システムは、全てのプロセッサが処理を完了するまで待機する。そして、並列計算機システムは、全てのプロセッサが処理を完了した場合には、新たなタスクを分割し、分割された処理を各プロセッサに割当てる。
特開2000−253060号公報
しかしながら、上述した並列計算機システムの技術では、他のプロセッサよりも早く処理を完了したしたプロセッサが、他のプロセッサが処理を完了するまで無駄な待機を行うので、全体の処理性能が低下してしまうという課題がある。
例えば、並列計算機システムは、各プロセッサの処理時間が同じになるように、1つのジョブを複数の処理に分割した際に、最も効率良く処理を実行する。しかしながら、外部アクセスやプロセッサ間の通信等を実行する場合は、通信先装置の状況により遅延や競合が生じるので、外部アクセスやプロセッサ間の通信を行うために要する時間がプロセッサごとに変化する。このため、各プロセッサの処理時間が同じになるようにジョブを分割するのが困難となる結果、各プロセッサは、処理を同時に終了することができない。
1つの側面では、本発明は、並列計算機システムの処理性能を向上させる情報処理装置および情報処理装置の制御方法を提供することを目的とする。
一態様の情報処理装置は、複数の演算処理装置を有する。ここで、情報処理装置は、各演算処理装置が実行する処理の進捗を示す進捗度を、演算処理装置ごとに計測する。そして、情報処理装置は、外部装置に対するアクセス要求を複数の演算処理装置から受信した場合は、アクセス要求の送信元となる演算処理装置から計測した進捗度に基づいて、アクセス要求を調停する。
一実施形態によれば、並列計算機システムの処理性能を向上させることができる。
図1は、実施例1に係る情報処理装置のハードウェア構成を説明する図である。 図2は、実施例1に係るプロセッサのハードウェア構成を説明する図である。 図3は、実施例1に係るアービタのハードウェア構成を説明する図である。 図4は、従来の並列計算機システムが実行する処理の流れを説明する図である。 図5は、実施例1に係る情報処理装置が実行する処理の流れを説明する図である。 図6は、実施例1に係るアービタが実行する処理の流れを説明するフローチャートである。 図7は、実施例2に係る情報処理装置が有するハードウェア構成を説明する図である。 図8は、実施例2に係る情報処理装置が出力するパケットのフォーマットを説明する図である。 図9は、情報処理装置のハードウェア構成のバリエーションを説明する図である。
以下に添付図面を参照して本願に係る情報処理装置および情報処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
以下の実施例1では、図1を用いて、複数のプロセッサを有する情報処理装置が複数設置された並列計算機システム1の一例について説明する。図1は、実施例1に係る情報処理装置のハードウェア構成を説明する図である。図1に示すように、並列計算機システム1は、外部装置として、メモリ2、I/O(Input/Output)装置3、管理装置4、情報処理装置10、10aを有する。
なお、図1では記載を省略したが、並列計算機システム1は、情報処理装置10と同様の機能を発揮する情報処理装置を他にも有するものとする。また、情報処理装置10aには、メモリ2、I/O装置3と同様の装置が接続され、情報処理装置10と同様の機能を発揮するものとして、以下の説明を省略する。
情報処理装置10は、複数のプロセッサ11〜13、アービタ14、メモリアクセスコントローラ15、外部バスコントローラ16、インターコネクトコントローラ17を有する。また、プロセッサ11は、計測回路11aと演算回路11bとを有する。また、プロセッサ12は、計測回路12aと演算回路12bとを有する。また、プロセッサ13は、計測回路13aと演算回路13bとを有する。
すなわち、プロセッサ11〜13は、同様のハードウェア構成を有する演算処理装置である。なお、プロセッサ12、13は、プロセッサ11と同様の機能を発揮するものとして、以下の説明を省略する。情報処理装置10は、図1に図示したプロセッサ11〜13以外にも、プロセッサ11と同様の機能を発揮するプロセッサを有するものとする。
なお、図1には、情報処理装置10のハードウェア構成のうち、各プロセッサ11〜13から各外部装置に信号を送信するための出力系の回路構成についてのみ記載した。しかしながら、情報処理装置10は、図1に示すハードウェア構成以外にも、各外部装置から各プロセッサ11〜13へ信号を送信するための受信系の回路構成も有する。
続いて、各ハードウェアが発揮する機能について説明する。メモリ2は、情報処理装置10とメモリバスで接続された記憶装置であり、情報処理装置10が制御や管理を行う記憶装置である。例えば、メモリ2には、情報処理装置10や情報処理装置10aが演算処理を実行するための各種データが格納されている。
I/O装置3は、情報処理装置10と各種バスで接続された外部装置であり、情報処理装置10が制御や管理を行う外部装置である。例えば、I/O装置3は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、FD(Flexible Disk)等の記憶装置、各種入力装置等の装置である。
管理装置4は、並列計算機システム1が有する各情報処理装置10、10aの管理を行う情報処理装置である。具体的には、管理装置4は、並列計算機システム1が有する各プロセッサ11〜13にタスクを並列実行させる場合は、タスクを複数のプロセスやスレッドに分割する。そして、管理装置4は、インターコネクトを介して、分割されたプロセスやスレッドを各プロセッサ11〜13に送信し、各プロセッサ11〜13にプロセスやスレッドを実行させる。なお、以下の説明では、管理装置4が各プロセッサ11〜13に実行させるプロセスやスレッドを分割処理と記載する。
情報処理装置10は、プロセッサ11〜13を用いて分割処理を実行する情報処理装置である。プロセッサ11は、各種演算処理を実行する演算処理装置であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application specific integrated circuit)等の演算処理装置である。また、プロセッサ11は、管理装置4から分割処理を受信した場合は、受信した分割処理を複数の単位処理へとさらに分割する。ここで、単位処理とは、プロセッサ11が単位時間当たりに実行する処理であり、例えば、プロセッサ11が独自に計測するローカルタイムが進む度にプロセッサ11が実行する処理である。そして、プロセッサ11は、分割後の単位処理を実行する。
また、プロセッサ11は、プロセッサ11が実行する分割処理の進捗を示す進捗度を計測する。例えば、プロセッサ11は、進捗度を計測するカウンタを有し、単位処理を実行する度にカウンタの値を1つインクリメントする。そして、プロセッサ11は、メモリ2に対するメモリアクセスを実行する場合や、I/O装置3に対するアクセスを実行する場合には、アクセス要求を生成し、生成したアクセス要求と、計測した進捗度とをアービタ14に出力する。そして、プロセッサ11は、アービタ14から応答として、メモリ2から読み出されたデータやI/O装置3から取得されたデータを受信すると、受信したデータを用いて、分割処理の実行を継続する。
計測回路11aは、プロセッサ11が実行する分割処理の進捗を示す進捗度を計測する計測回路である。例えば、計測回路11aは、演算回路11bが単位処理を実行する度に値を1つインクリメントするカウンタである。具体的には、計測回路11aは、演算回路11bから単位処理の実行が完了した旨の信号を受信すると、進捗度の値を1つインクリメントする。そして、計測回路11aは、計測した進捗度の値をアービタ14に出力する。
演算回路11bは、各種演算処理を実行する回路であり、例えば、プロセッサ11のコアである。また、演算回路11bは、プロセッサ11に割当てられた分割処理を受信すると、受信した分割処理を複数の単位処理に分割し、分割した単位処理を実行する。また、演算回路11bは、単位処理の実行が完了した場合は、計測回路11aに対し、単位処理の実行が完了した旨の信号を出力するとともに、次の単位処理を実行する。
ここで、演算回路11bが実行する単位処理は、メモリ2に対するメモリアクセス、I/O装置3に対するアクセス、情報処理装置10aが有する他のプロセッサとの通信等、外部アクセスの実行を含む場合がある。例えば、演算回路11bは、メモリ2からデータの読み出しを実行する処理を含む単位処理を実行する場合は、メモリ2に対するアクセス要求をアービタ14に出力する。
そして、演算回路11bは、アービタ14から、アクセス権の取得通知を受信すると、メモリ2に対する読出し処理の実行を要求する読出し要求を生成し、アービタ14を介して、生成した読出し要求をメモリアクセスコントローラ15に出力する。その後、演算回路11bは、読出し要求に対する応答を受信すると、受信した応答に含まれるデータ、すなわち、メモリ2から読み出されたデータを取得し、取得したデータを用いて単位処理に含まれる演算処理の実行を進める。
そして、演算回路11bは、単位処理が完了すると、単位処理の実行が完了した旨の信号を計測回路11aに出力する。このため、計測回路11aは、演算回路11bが各種演算処理を実行している間は、進捗度の値を進め、少なくとも、演算回路11bが外部アクセスを開始してから完了しているまでの間は、進捗度の値を進めずに待機する。
なお、演算回路11bは、メモリ2に対し、読出し要求以外にも、データの書込み処理の実行を要求する書込み要求を発行する場合がある。また、演算回路11bは、I/O装置3に対する読出し要求、書込み要求、各種処理の実行の要求等を発行する場合がある。また、演算回路11bは、情報処理装置10aが管理する各種外部装置に対する要求等を発行する場合がある。以下の説明では、演算回路11bが発行する各種要求を処理要求と記載する。
以下、図2を用いて、上述した機能を発揮するためにプロセッサ11が有するハードウェア構成の一例について説明する。図2は、実施例1に係るプロセッサのハードウェア構成を説明する図である。図2に示すように、プロセッサ11は、アービタ14と接続された計測回路11aと演算回路11bを有する。また、計測回路11aは、カウンタ18、インクリメンタ19、マルチプレクサ20を有する。
カウンタ18は、進捗度を示す値を計数し、計数した値をアービタ14に出力する。例えば、カウンタ18は、マルチプレクサ20が出力する信号が示す値を保持するフリップフロップ等の保持回路である。また、カウンタ18は、保持した値を示す信号を、アービタ14、インクリメンタ19、マルチプレクサ20に出力する。
インクリメンタ19は、カウンタ18が保持する値に1を加算した値をマルチプレクサ20に出力する。例えば、インクリメンタ19は、カウンタ18が保持する値を示す信号を受信すると、受信した信号が示す値に1を加算した値を示す信号を生成し、生成した信号をマルチプレクサ20に出力する。
マルチプレクサ20は、演算回路11bが単位処理の実行を完了する度に、カウンタ18が保持する進捗度を示す値を1つインクリメントする。詳細には、マルチプレクサ20は、入力信号として、カウンタ18が出力する信号と、インクリメンタ19が出力する信号を受信する。また、マルチプレクサ20は、演算回路11bから、単位処理が終了した旨を示す信号を選択信号として受信する。
そして、マルチプレクサ20は、演算回路11bから、単位処理が完了した旨の信号を受信した場合は、インクリメンタ19から受信した信号を出力する。例えば、演算回路11bは、単位処理が完了した場合は、電位が「High」となるパルス信号をマルチプレクサ20に出力する。一方、マルチプレクサ20は、演算回路11bから受信する信号の電位が「High」となった場合は、インクリメンタ19が出力する信号をカウンタ18に出力する。一方、マルチプレクサ20は、演算回路11bから受信する信号の電位が「Low」となる場合は、カウンタ18が出力する信号を再度カウンタ18へ入力する。この結果、マルチプレクサ20は、演算回路11bが単位処理の実行を完了した際に、カウンタ18が保持する進捗度を示す値を1つインクリメントできる。
なお、上述した例では、計測回路11aは、演算回路11bが単位処理を完了する度に進捗度の値を進めたが、実施例は、これに限定されるものではない。例えば、計測回路11aは、演算回路11bが分割処理を開始した時点から、プロセッサ11が動作するクロックに基づいて、ローカルタイムのカウントを実行する。
ここで、演算回路11bは、メモリ2、I/O装置3、情報処理装置10aが管理するメモリやI/O等の外部装置に対するアクセス要求を発行する場合は、計測回路11aに、進捗度の出力を要求する。かかる場合、計測回路10aは、ローカルタイムの値を進捗度として出力するとともに、ローカルタイムのカウントを停止する。
また、演算回路11bは、各種外部装置に対する処理要求を発行する場合は、アービタ14に対してアクセス要求を発行する。例えば、演算回路11bは、アービタ14に対して出力する信号の電位を「High」にする。そして、演算回路11bは、アービタ14から、アクセス権の取得通知を受信すると、各種外部装置に対する処理要求をアービタ14に対して送信する。
また、演算回路11bは、図示を省略した受信系の回路を介して、処理要求に対する応答を受信した場合は、計測回路10aに対し、ローカルタイムのカウント再開を示す信号を出力する。かかる場合、演算回路10aは、プロセッサ11が動作するクロックに基づいて、ローカルタイムのカウントを開始する。かかる処理を実行することで、計測回路11aは、プロセッサ11が実行する分割処理の進捗度を計測することができる。なお、かかる処理を実行する場合、計測回路11aは、演算回路11bが新たな分割処理を開始する際に、カウントした値をリセットしてから、プロセッサ11が動作するクロックに基づいて、ローカルタイムのカウントを開始する。
図1に戻って説明を続ける。アービタ14は、メモリ2、I/O装置3、情報処理装置10a等の外部装置に対するアクセス要求の調停を行う調停回路である。具体的には、アービタ14は、外部装置に対するアクセス要求を複数のプロセッサから受信した場合は、各アクセス要求の送信元となるプロセッサが有する計測回路により計測された進捗度の比較結果に基づいて、アクセス要求を調停する調停処理を実行する。
例えば、アービタ14は、プロセッサ11の演算回路11bからメモリ2に対するアクセス要求と、プロセッサ12の演算回路12bからメモリ2に対するアクセス要求とを受信する。かかる場合、アービタ14は、プロセッサ11の計測回路11aが計測するプロセッサ11の分割処理の進捗度と、プロセッサ12の計測回路12aが計測するプロセッサ12の分割処理の進捗度とを受信する。そして、アービタ14は、受信した進捗度のうち、最も値が少ない進捗度を特定する。その後、アービタ14は、特定した進捗度の送信元となるプロセッサの処理要求を、メモリアクセスコントローラ15に出力する。
このように、アービタ14は、アクセス要求の競合が発生した場合は、アクセス要求の送信元となるプロセッサのうち、進捗度の値が最も少ないプロセッサの処理要求を出力する。この結果、アービタ14は、進捗度が最も低いプロセッサの外部アクセスを優先して実行させるので、各プロセッサが実行する分割処理の進捗のバランスをとることができる。
なお、アービタ14は、アクセス要求の発行先となる外部装置が複数存在する場合は、上述した調停処理を、アクセス要求の送信先となる外部装置ごとに実行する。例えば、アービタ14は、調停処理を実行する調停回路を外部装置ごとに有し、各調停回路が、アクセス要求の送信元となるプロセッサのうち、進捗度が最も少ないプロセッサのアクセス要求を優先して出力する。
以下、図3を用いて、上述した機能を発揮するためにアービタ14が有するハードウェア構成の一例について説明する。図3は、実施例1に係るアービタのハードウェア構成を説明する図である。例えば、図3に示す例では、アービタ14は、複数の調停回路30、30a、30bを有する。
ここで、調停回路30は、メモリ2に対するアクセス要求の調停を行う回路であり、調停回路30aは、I/O装置3に対するアクセス要求の調停を行う回路である。また、調停回路30bは、情報処理装置10aが管理する外部装置に対するアクセス要求の調停を行う回路である。ここで、調停回路30a、調停回路30bは、調停回路30と同様のハードウェア構成を有するものとして、以下の説明を省略する。
調停回路30は、複数のマルチプレクサ31〜33、複数の定数保持回路34〜36、進捗度比較回路37、マルチプレクサ38を有する。なお、定数保持回路34〜36は、16進数の定数を示す信号を常時出力する回路であり、図3に示す例では「0xFFFF」、すなわち「0」を示す信号を出力する回路である。かかる場合、定数保持回路34〜36は、アース等で代替されてもよい。
マルチプレクサ31は、プロセッサ11の演算回路11bが出力する信号を制御信号とし、プロセッサ11の計測回路11aが出力する進捗度を示す信号、または、定数保持回路34の出力のいずれかを進捗度比較回路37に出力するマルチプレクサである。また、マルチプレクサ32は、プロセッサ12の演算回路12bが出力する信号を制御信号とし、プロセッサ12の計測回路12aが出力する進捗度を示す信号、または、定数保持回路35の出力のいずれかを進捗度比較回路37に出力するマルチプレクサである。また、マルチプレクサ33は、プロセッサ13の演算回路13bが出力する信号を制御信号とし、プロセッサ13の計測回路13aが出力する進捗度を示す信号、または、定数保持回路36の出力のいずれかを進捗度比較回路37に出力するマルチプレクサである。
例えば、マルチプレクサ31は、演算回路11bがマルチプレクサ38に入力する信号の電位を「Low」にしている間は、定数保持回路34が出力する信号を進捗度比較回路37に出力する。そして、マルチプレクサ31は、演算回路11bがメモリ2に対するアクセス要求として、マルチプレクサ38に入力する信号の電位を「High」にした場合は、計測回路11aが出力する進捗度を示す信号を進捗度比較回路37に出力する。なお、マルチプレクサ32、33は、マルチプレクサ31と同様の動作をするものして、説明を省略する。
進捗度比較回路37は、メモリ2に対するアクセス要求の送信元となるプロセッサにより測定された進捗度を比較する。そして、進捗度比較回路37は、比較した進捗度のうち、値が最も少ない進捗度を測定したプロセッサのアクセス要求をメモリアクセスコントローラ15に出力するよう指示する制御信号を、マルチプレクサ38に対して出力する。
以下、進捗度比較回路37が実行する処理の一例について説明する。なお、以下の説明では、プロセッサ11〜13が同時にメモリ2に対するアクセス要求を発行した際に進捗度比較回路37が実行する処理について説明する。例えば、進捗度比較回路37は、プロセッサ11の計測回路11aが測定した進捗度「3」を示す信号、プロセッサ12の計測回路12aが測定した進捗度「8」を示す信号、プロセッサ13の計測回路13aが測定した進捗度「6」を示す信号を受信する。かかる場合、進捗度比較回路37は、受信した各信号が示す進捗度同士を比較し、値が最も少ない進捗度「3」を特定する。
そして、進捗度比較回路37は、特定した進捗度を示す信号の送信元となるプロセッサ11を特定し、特定したプロセッサ11に対してアクセス権を取得した旨の通知をプロセッサ11に出力する。また、進捗度比較回路37は、プロセッサ11を示す信号をマルチプレクサ38に出力する。この結果、プロセッサ11は、マルチプレクサ38を介して、メモリ2に対する処理要求をメモリアクセスコントローラ15に送信し、メモリ2に対するメモリアクセスを実行する。
また、進捗度比較回路37は、プロセッサ11のメモリアクセスが完了すると、プロセッサ12の計測回路12aが測定した進捗度「8」と、プロセッサ13の計測回路13aが測定した進捗度「6」とを比較する。この結果、進捗度比較回路37は、値が最も少ない進捗度「6」を特定し、特定した進捗度を示す信号の送信元となるプロセッサ13を特定しする。そして、進捗度比較回路37は、特定したプロセッサ13にアクセス権を取得した旨の通知を出力し、プロセッサ13を示す信号をマルチプレクサ38に出力する。この結果、プロセッサ13は、マルチプレクサ38を介して、メモリ2に対する処理要求をメモリアクセスコントローラ15に送信し、メモリ2に対するメモリアクセスを実行する。
また、プロセッサ13が要求したメモリアクセスが完了すると、進捗度比較回路37は、プロセッサ12の計測回路12aが測定した進捗度「8」を示す信号のみを受信する。かかる場合は、進捗度比較回路37は、プロセッサ12を示す信号をマルチプレクサ38に出力する。この結果、プロセッサ12は、マルチプレクサ38を介して、メモリ2に対する処理要求をメモリアクセスコントローラ15に送信し、メモリ2に対するメモリアクセスを実行する。
なお、進捗度比較回路37は、複数の進捗度を比較した結果、値が最も少ない進捗度が複数存在する場合は、ラウンドロビンやLRU(Least Recently Used)の技術を用いて、調停を行ってもよい。例えば、進捗度比較回路37は、プロセッサ11の計測回路11aが測定した進捗度「3」を示す信号とプロセッサ12の計測回路12aが測定した進捗度「3」を示す信号を受信する。かかる場合、進捗度比較回路37は、ラウンドロビンやLRUの技術を用いて、プロセッサ11、12のいずれかを選択し、選択したプロセッサを示す信号をマルチプレクサ38に出力してもよい。
マルチプレクサ38は、進捗度比較回路37が出力する信号を制御信号とし、各プロセッサ11〜13が有する各演算回路11b〜13bが出力する処理要求のいずれかをメモリアクセスコントローラ15に出力するマルチプレクサである。例えば、マルチプレクサ38は、進捗度比較回路37から、プロセッサ11を示す信号を受信した場合は、プロセッサ11が有する演算回路11bが出力する処理要求をメモリアクセスコントローラ15に出力する。
上述したように、調停回路30は、複数のプロセッサからメモリ2に対するアクセス要求を受信した場合は、アクセス要求の送信元となるプロセッサにおける分割処理の進捗度を比較し、値が最も小さい進捗度を特定する。そして、調停回路30は、特定した進捗度を測定したプロセッサから受信する処理要求を、メモリアクセスコントローラ15に出力する。この結果、調停回路30は、各プロセッサにおける分割処理の進捗度を揃える結果、情報処理装置10の処理性能を向上させることができる。
なお、調停回路30aは、各プロセッサ11〜13から、I/O装置3に対するアクセス要求を受信し、調停回路30と同様に動作することで、I/O装置3に対するアクセス要求の調停を行うものとする。また、調停回路30bは、各プロセッサ11〜13から、情報処理装置10aに対するアクセス要求を受信し、調停回路30と同様に動作することで、情報処理装置10aに対するアクセス要求の調停を行うものとする。
図1に戻って、説明を続ける。メモリアクセスコントローラ15は、メモリ2に対するメモリアクセスを制御するメモリアクセスコントローラである。例えば、メモリアクセスコントローラ15は、アービタ14から、メモリ2に対する処理要求を受信すると、受信した処理要求が示す読出し処理や書込み処理を実行する。そして、メモリアクセスコントローラ15は、読み出したデータやデータの書込み結果を示す情報が含まれる応答を生成し、図示を省略した受信系の回路を介して、生成した応答を処理要求の送信元へ送信する。
外部バスコントローラ16は、I/O装置3と情報処理装置10とを接続する外部バスの制御を行う制御装置である。例えば、外部バスコントローラ16は、アービタ14からI/O装置3に対する処理要求を受信すると、受信した処理要求が示す各種処理を実行する。そして、外部バスコントローラ16は、受信した処理要求に対応する応答を生成し、生成した応答を処理要求の送信元へ送信する。
インターコネクトコントローラ17は、情報処理装置10と管理装置4および情報処理装置10aとを接続するインターコネクトを制御する制御装置である。例えば、インターコネクトコントローラ17は、アービタ14から情報処理装置10aに対する処理要求を受信した場合は、インターコネクトを介して、処理要求を情報処理装置10aに送信する。また、インターコネクトコントローラ17は、情報処理装置10aから、送信した処理要求に対する応答を受信すると、図示を省略した受信系の回路を介して、受信した応答をアクセス要求の送信元へ送信する。
このように、情報処理装置10は、各プロセッサ11〜13が実行する分割処理の進捗度を計測する。そして、情報処理装置10は、複数のプロセッサから同一の外部装置に対するアクセス要求を受信した場合は、アクセス要求の送信元となるプロセッサが実行する分割処理の進捗度に基づいて、アクセス要求の調停を実行する。このため、情報処理装置10は、各プロセッサ11〜13が実行する分割処理の進捗を揃えるので、各プロセッサ11〜13が分割処理を開始してから完了するまでの時間差を減少させることができる。このため、情報処理装置10は、並列処理の処理性能を向上させることができる。
以下、図4、図5を用いて、情報処理装置10の効果の一例について説明する。まず、図4を用いて、従来の並列計算機システムが実行する処理の一例について説明する。図4は、従来の並列計算機システムが実行する処理の流れを説明する図である。なお、図4には、従来の並列計算機システムが有するプロセッサ#1〜#3が計算処理を実行する度にカウントされるローカルタイムの値と、各プロセッサの状況によらず一律にカウントされるグローバルタイムとを記載した。
また、図4には、各プロセッサ#1〜#3が外部装置に対するアクセスを行っている期間を濃いハッチングで示し、外部装置に対するアクセス要求を送信してから実際にアクセスを実行するまでの待機時間を薄いハッチングで示した。また、図4に示す例では、各プロセッサ#1〜#3のアクセス要求を調停するアービタは、ラウンドロビン方式で、アクセス要求の調停を行うものとする。
また、図4に示す例では、プロセッサ#1は、ローカルタイムが「3」、「8」のタイミングでアクセス要求を発行し、プロセッサ#2は、ローカルタイムが「6」、「14」のタイミングでアクセス要求を発行するものとする。また、図4に示す例では、プロセッサ#3は、ローカルタイムが「8」、「11」のタイミングでアクセス要求を発行するものとする。また、各プロセッサ#1〜#3は、ローカルタイムが「15」となった時点で、割当てられた分割処理を完了するものとする。
例えば、図4中(A)に示すように、グローバルタイムが「4」のタイミングで、プロセッサ#1がアクセス要求を発行する。かかる場合は、アービタは、プロセッサ#1のアクセス要求を出力するので、優先権をプロセッサ#1からプロセッサ#2に変更する。次に、グローバルタイムが「7」の時点で、プロセッサ#2がアクセス要求を発行し、グローバルタイムが「9」の時点で、プロセッサ#3がアクセス要求を発行する。
ここで、図4中(B)に示すように、グローバルタイムが「9」の時点でプロセッサ#1のアクセスが終了するが、図4中(C)に示すように、プロセッサ#2とプロセッサ#3とのアクセス要求が存在するので、アービタは、調停処理を実行する。この結果、アービタは、優先権を有するプロセッサ#2からの処理要求を発行し、優先権をプロセッサ#2からプロセッサ#3に変更する。
次に、図4中(D)に示すように、グローバルタイムが「14」の時点で、プロセッサ#2のアクセスが終了するが、プロセッサ#1がアクセス要求を発行するので、図4中(E)に示すように、アービタは、調停処理を実行する。この結果、アービタは、優先権を有するプロセッサ#3からの処理要求を発行し、優先権をプロセッサ#3からプロセッサ#1に変更する。
続いて、図4中(F)に示すように、グローバルタイムが「19」の時点で、プロセッサ#3によるアクセスが終了する。このため、アービタは、図4中(G)に示すように、プロセッサ#1からのアクセス要求を発行し、優先権をプロセッサ#1からプロセッサ#2に変更する。
ここで、グローバルタイムが「22」の際に、プロセッサ#2とプロセッサ#3とが同時にアクセス要求を発行したものとする。すると、図4中(H)に示すように、グローバルタイムが「24」の際に、プロセッサ#1のアクセスが終了するので、アービタは、調停処理を実行する。この結果、アービタは、図4中(I)に示すように、優先権を有するプロセッサ#2からの処理要求を発行する。
また、図4中(J)に示すように、グローバルタイムが「29」のときに、プロセッサ#2のアクセスが終了するので、アービタは、プロセッサ#3からの処理要求を発行する。この結果、グローバルタイムが「34」の際に、プロセッサ#3のアクセス処理が終了し、図4中(K)に示すように、グローバルタイムが「37」の際に、全てのプロセッサ#1〜#3が、分割処理を完了する。
次に、図5を用いて、実施例1に係る情報処理装置10が実行する処理について説明する。図5は、実施例1に係る情報処理装置が実行する処理の流れを説明する図である。なお、図5に示す例では、アービタ14は、各プロセッサ11〜13におけるローカルタイムを進捗度として使用するものとする。また、各プロセッサ11〜13は、図4に示す各プロセッサ#1〜#3と同じ分割処理が割当てられたものとする。
例えば、アービタ14は、図5中(L)に示すように、グローバルタイムが「4」となる際に、プロセッサ11の処理要求を発行する。また、図5中(M)に示すように、グローバルタイムが「9」の時点でプロセッサ11のアクセスが終了するが、図5中(N)および(O)に示すように、プロセッサ12とプロセッサ13とのアクセス要求が存在する。このため、アービタ14は、プロセッサ12のローカルタイム「6」とプロセッサ13のローカルタイム「8」とを比較し、プロセッサ12のローカルタイムの方が値が少ない、すなわち、プロセッサ12の処理が遅れていると判定する。この結果、アービタ14は、図5中(P)に示すように、プロセッサ12の処理要求を発行する。
次に、図5中(Q)に示すように、グローバルタイムが「14」の際、プロセッサ12のアクセスが終了するが、図5中(R)および(S)に示すように、プロセッサ11とプロセッサ13とのアクセス要求が存在する。このため、アービタ14は、プロセッサ11のローカルタイム「8」とプロセッサ13のローカルタイム「8」とを比較する。ここで、アービタ14は、各プロセッサのローカルタイムが同一の値であるため、どちらのアクセス要求を選択してもよいが、図5に示す例では、ランドロビンによりプロセッサ13の処理要求を発行したものとする。また、図5中(T)に示すように、グローバルタイムが「19」の際、プロセッサ13のアクセスが終了するので、アービタ14は、プロセッサ11の処理要求を発行する。
ここで、図5中(U)に示すように、グローバルタイムが「22」の際に、プロセッサ12とプロセッサ13とは、同時にアクセス要求を発行する。そして、アービタ14は、図5中(V)に示すように、グローバルタイムが「24」の時点で、プロセッサ11のアクセスが終了するので、プロセッサ12とプロセッサ13とが発行したアクセス要求を調停する。詳細には、アービタ14は、プロセッサ12のローカルタイム「14」と、プロセッサ13のローカルタイム「11」とを比較する。
この結果、アービタ14は、プロセッサ13の処理が遅れているので、図5中(W)に示すように、プロセッサ13の処理要求を発行する。また、図5中(X)に示すように、グローバルタイムが「29」の際に、プロセッサ12のアクセスが終了するので、アービタ14は、プロセッサ12の処理要求を発行する。この結果、図5中(Y)に示すように、情報処理装置10は、グローバルタイムが「34」の際に処理を終了する。
このように、情報処理装置10は、アクセス要求の調停を行う際、分割処理の進捗度が最も低いプロセッサからのアクセス要求を優先して発行する。このため、情報処理装置10は、タスクの実行にかかる時間を短縮できる。
また、図4に示す例では、最も早く分割処理を完了したプロセッサ#2の待機時間は、プロセッサ#3が分割処理を終了するまでのグローバルタイムで「8」つ分となる。しかしながら、図5に示す例では、最も早く分割処理を完了したプロセッサ11の待機時間はは、プロセッサ12が分割処理を終了するまでのグローバルタイムで「4」つ分となる。このため、情報処理装置10は、各プロセッサ11〜13が分割処理を実行する時間を揃える結果、分割処理の実効性能を向上させることができる。
次に、図6を用いて、アービタ14が実行する処理の流れについて説明する。図6は、実施例1に係るアービタが実行する処理の流れを説明するフローチャートである。なお、アービタ14は、外部装置ごとに、図6に示す処理を並行して実行する。
例えば、アービタ14は、アクセス要求が存在するか否かを判定する(ステップS101)。そして、アービタ14は、アクセス要求が存在すると判定した場合は(ステップS101:Yes)、競合が発生しているか否かを判定する(ステップS102)。そして、アービタ14は、例えば、同一の外部装置に対するアクセス要求が存在する場合には、競合が発生していると判定し(ステップS102:Yes)、最小進捗度判定を実行する(ステップS103)。つまり、アービタ14は、競合しているアクセス要求の送信元となる各プロセッサから進捗度を受信し、受信した進捗度のうち値が最も小さい進捗度を判定する。
次に、アービタ14は、値が最も小さい進捗度を測定したプロセッサを選択し(ステップS104)、選択したプロセッサから処理要求を受理し(ステップS105)、受理した処理要求を出力する(ステップS106)。また、アービタ14は、処理要求に対する応答が有るか否かを判定し(ステップS107)、応答が有ると判定した場合は(ステップS107:Yes)、ステップS101を実行する。
一方、アービタ14は、応答が無かったと判定した場合は(ステップS107:No)、応答が受信されるまでステップS107を実行する。また、アービタ14は、競合がないと判定した場合は(ステップS102:No)、ステップS103、ステップS104の実行をスキップし、ステップS105を実行する。また、アービタ14は、アクセス要求がない場合には(ステップS101:No)、再度、ステップS101から処理を実行する。
[情報処理装置10の効果]
上述したように、情報処理装置10は、演算処理を実行する演算回路11bと、演算回路11bが実行する演算処理の進捗を示す進捗度を計測する計測回路11aとを有するプロセッサ11を有する。また、情報処理装置10は、プロセッサ11と同様のプロセッサであるプロセッサ12、13を有する。そして、情報処理装置10は、外部装置に対するアクセス要求を複数のプロセッサ11〜13から受信した場合は、アクセス要求の送信元となるプロセッサが有する計測回路により計測された進捗度の比較結果に基づいて、アクセス要求の調停を行う。この結果、情報処理装置10は、各プロセッサ11〜13が実行する分割処理の進捗度を揃えるので、早期に処理が完了したプロセッサが無駄な待機を行う時間を短縮する結果、タスクを並行処理する際の処理性能を向上させることができる。
また、演算回路11bは、分割処理を複数の単位処理に分けて実行する。そして、計測回路11aは、演算回路11bが単位処理を実行する度に、計測する進捗度の値に1を加算する。このため、情報処理装置10は、各プロセッサ11〜13が実行する分割処理の進捗度合いに応じて、アクセス要求の調停を実行することができる。
また、情報処理装置10は、アクセス要求の発行対象となる外部装置が複数存在する場合は、外部装置ごとに、アクセス要求の送信元となるプロセッサが有する計測回路により計測された進捗度の比較結果に基づいて、アクセス要求の調停を実行する。このため、情報処理装置10は、各プロセッサ11〜13が複数の外部装置に対してアクセス要求を発行する際に、外部装置ごとに進捗度に応じたアクセス要求を実行できる。この結果、情報処理装置10は、複数の外部装置が存在する際に、競合が発生していない外部装置に対するアクセス要求を即座に発行することができるので、タスクを分割処理する際の処理性能を向上させることができる。
上述した情報処理装置10は、情報処理装置10が有するプロセッサ11〜13が発行したアクセス要求の調停を行った。しかしながら、実施例は、これに限定されるものではない。例えば、情報処理装置10は、情報処理装置10aが管理する各種外部装置に対してアクセス可能なNUMA(Non-Uniform Memory Access)型のメモリ共有システム、MPP(Massively Multi-Processor)型やPCクラスタ型のメモリ分散システムといったアーキテクチャを有する場合、情報処理装置10aに送信する処理要求に進捗度を付与して送信してもよい。すなわち、情報処理装置10が、メモリ共有システムのうちのSMP(Symmetric Multiprocessing)や、UMA型等、情報処理装置内でメモリアクセスが完結するような情報処理装置ではない場合は、情報処理装置10a等他の情報処理装置に各種処理の要求を送信する際に進捗度を付与して送信してもよい。
以下、実施例2として、他の情報処理装置へアクセス要求を送信する際、アクセス要求の送信元となるプロセッサの進捗度をアクセス要求に付与して送信する情報処理装置10bについて説明する。
図7は、実施例2に係る情報処理装置が有するハードウェア構成を説明する図である。なお、以下の説明では、図1に示すハードウェア構成と同様の機能を発揮するハードウェア構成については、同一の符号を付し、以下の説明を省略する。例えば、並列計算機システム1aは、複数の情報処理装置10b〜10dを有する。
また、情報処理装置10bは、アービタ14a、インターコネクトコントローラ17aを有する。また、情報処理装置10dは、複数のプロセッサ11c〜13c、アービタ14b、メモリアクセスコントローラ15a、外部バスコントローラ16a、インターコネクトコントローラ17bを有する。また、情報処理装置10dには、メモリ2aとI/O装置3aとが接続されてている。なお、情報処理装置10dが有する各ハードウェア構成11c〜13c、14b、15a、16a、17bは、情報処理装置10bが有するハードウェア構成11〜13、14a、15、16、17aと同様の機能を発揮するものとして、説明を省略する。また、情報処理装置10cは、情報処理装置10bと同様の機能を発揮するものとして、説明を省略する。
アービタ14aは、アービタ14と同様の調停処理を実行する。具体的には、アービタ14aは、プロセッサ11〜13から、アクセス要求と進捗度とを受信する。また、アービタ14aは、インターコネクトコントローラ17aから、アクセス要求と、他の情報処理装置10b、10cが有するプロセッサが計測した進捗度とを受信する。そして、アービタ14aは、同一の外部装置に対して複数のアクセス要求を受信した場合は、アクセス要求の送信元となるプロセッサまたはインターコネクトコントローラ17aから受信した進捗度に基づいて、アクセス要求の調停を行う。
例えば、アービタ14aは、プロセッサ11からメモリ2に対するアクセス要求と、プロセッサ11が計測した進捗度とを受信する。また、アービタ14aは、インターコネクトコントローラ17aから、アクセス要求と、プロセッサ11cが計測した進捗度とを受信する。かかる場合、アービタ14aは、プロセッサ11の進捗度とプロセッサ11cの進捗度とを比較する。
そして、アービタ14aは、比較の結果、プロセッサ11cの進捗度の方が、プロセッサ11の進捗度よりも値が小さい場合は、インターコネクトコントローラ17aに対して、アクセス権を取得した旨の通知を出力する。かかる場合、インターコネクトコントローラ17aは、プロセッサ11cが発行した処理要求を、アービタ14aを介してメモリアクセスコントローラ15に出力する。
かかる場合、メモリアクセスコントローラ15は、メモリアクセスの結果を含む応答を生成し、生成した応答のあて先をプロセッサ11cとして、インターコネクトコントローラ17aに出力する。その後、インターコネクトコントローラ17aは、受信した応答を情報処理装置10dのインターコネクトコントローラ17bに送信し、応答をプロセッサ11cに送信させる。
また、アービタ14aは、各プロセッサ11〜13から情報処理装置10dが管理する外部装置、例えば、メモリ2aやI/O装置3aに対する処理要求をインターコネクトコントローラ17aに出力する場合は、以下の処理を実行する。すなわち、アービタ14aは、処理要求をインターコネクトコントローラ17aに出力するとともに、処理要求の送信元となるプロセッサが計測した進捗度をインターコネクトコントローラ17aに出力する。
インターコネクトコントローラ17aは、アービタ14aから処理要求と、進捗度とを受信した場合は、受信した処理要求に進捗度を付加したパケットを生成し、生成したパケットを情報処理装置10cまたは情報処理装置10dに送信する。例えば、図8は、実施例2に係る情報処理装置が出力するパケットのフォーマットを説明する図である。
例えば、インターコネクトコントローラ17aは、図8に示すように、先頭から、パケットを識別するID(Identifier)、パケット種別、処理要求の送信先を示す宛先アドレスが格納されたパケットを生成する。また、インターコネクトコントローラ17aは、処理要求の送信元となるプロセッサを示す要求元アドレス、処理要求の送信元となるプロセッサが計測した進捗度、処理要求のデータが格納されたパケットを生成する。そして、インターコネクトコントローラ17aは、パケットに格納された宛先アドレスに応じて、生成したパケットを情報処理装置10c、10dに送信する。
また、インターコネクトコントローラ17aは、他の情報処理装置10c、10dからパケットを受信した場合は、パケットに格納された各種データから処理要求を生成するとともに、パケットに格納された進捗度を抽出する。また、インターコネクトコントローラ17aは、アービタ14aに対し、アクセス要求と抽出した進捗度とを出力する。そして、インターコネクトコントローラ17aは、アクセス権を取得した旨の通知をアービタ14aから受信した場合は、生成した処理要求をアービタ14aに出力する。
上述したように、情報処理装置10bは、他の情報処理装置10c、10dが有するプロセッサからのアクセス要求を調停する場合にも、アクセス要求の送信元となるプロセッサの処理進捗度に応じて、アクセス要求の調停を行うことができる。このため、並列計算機システム1aは、1つのジョブを分割した分割処理をプロセッサ11〜13、11c〜13cに実行させる場合にも、各プロセッサ11〜13、11c〜13cが分割処理を完了する時間を揃えることができる。この結果、並列計算機システム1aは、並列処理の処理性能をさらに向上させることができる。
なお、上述した例では、処理要求と進捗度とが格納されたパケットを受信したインターコネクトコントローラ17aが、パケットに格納された進捗度とアクセス要求とをアービタ14aに出力した。しかしながら、実施例は、これに限定されるものではない。例えば、各プロセッサ11〜13、11c〜13c、インターコネクトコントローラ17a、17bは、図8に示すパケット形式の処理要求をアービタ14a、14bに出力する。かかる場合、アービタ14a、14bは、受信したパケットのうち、格納された進捗度の値が小さいパケットから出力することで、処理要求を直接調停してもよい。
[情報処理装置10bの効果]
上述したように、情報処理装置10bは、他の情報処理装置10c、10dが管理する外部装置に対するアクセス要求の調停を行う。そして、情報処理装置10bは、他の情報処理装置10c、10dへアクセス要求を送信する場合は、アクセス要求の送信元となるプロセッサが計測した進捗度を、処理要求とともに送信する。このため、情報処理装置10bは、他の情報処理装置10c、10dに、情報処理装置10bが有するプロセッサ11〜13の進捗度に応じた調停を実行させることができる。このため、並列計算機システム1aは、1つのジョブを分割して情報処理装置10b〜10dに実行させる場合にも、各プロセッサ11〜13、11c〜13cが分割処理を完了する時間を揃えるので、並列処理の処理性能をさらに向上させることができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例3として本発明に含まれる他の実施例を説明する。
(1)進捗度の測定について
上述した情報処理装置10は、各プロセッサ11〜13が、進捗度を測定する計測回路11a〜13aを有していた。しかしながら、実施例はこれに限定されるものではない。例えば、情報処理装置10は、各プロセッサ11〜13が実行する処理の進捗度を測定する計測回路を、各プロセッサ11〜13の外部に配置してもよい。
例えば、図9は、情報処理装置のハードウェア構成のバリエーションを説明する図である。なお、図9に示すハードウェア構成のうち、図1に示すハードウェア構成と同様の機能を発揮するハードウェア構成については、同一の符号を付し、説明を省略する。例えば、並列計算機システム1bは、情報処理装置10に代えて、情報処理装置10eを有する。また、情報処理装置10eは、プロセッサ11〜13に代えて、プロセッサ11d〜13dを有し、さらに、各プロセッサ11d〜13dとアービタ14とに接続された計測回路21を有する。
ここで、各プロセッサ11d〜13dは、演算回路11b〜13bのみを有するプロセッサである。また、計測回路21は、計測回路11a〜13aと同様に、各プロセッサ11d〜13dが有する演算回路11b〜13bが実行する分割処理の進捗度を測定する。例えば、計測回路21は、進捗度として、各演算回路11b〜13bのローカルタイムを測定する。そして、計測回路21は、計測した各進捗度をアービタ14に出力する。
なお、計測回路21は、各演算回路11b〜13bのローカルタイムと情報処理装置10eのクロック信号に基づくグローバルタイムとの差分を各プロセッサ11d〜13dの進捗度として算出してもよい。また、計測回路21は、各演算回路11b〜13bのローカルタイムの平均値と、各演算回路11b〜13bのローカルタイムとの差分を各プロセッサ11d〜13dの進捗度として算出してもよい。
また、計測回路21は、アービタ14が内蔵しても良い。すなわち、各プロセッサ11d〜13dが実行する分割処理の進捗を計測することができるのであれば、各計測回路11a〜13a、21は、任意の位置に配置することができる。
このように、情報処理装置10eは、複数のプロセッサ11d〜13dと、各プロセッサ11d〜13dが実行する処理の進捗を示す進捗度をそれぞれ計測する計測回路21とを有する。そして、情報処理装置10eは、計測回路21が計測した進捗度に基づいて、各プロセッサ11d〜13dのアクセス要求の調停を行う。このため、情報処理装置10eは、各プロセッサ11d〜13dが実行する分割処理の進捗を揃える結果、並列計算処理の性能を向上させることができる。
また、情報処理装置10eは、各プロセッサ11d〜13dから独立した計測回路21を有する。このため、情報処理装置10eは、情報処理装置10eの動作クロックで各プロセッサ11d〜13dが実行する分割処理の進捗度を測定できる。この結果、情報処理装置10eは、各プロセッサ11d〜13dの動作クロックの周波数がそれぞれ異なる場合にも、各プロセッサ11d〜13dが実行する分割処理の進捗度を、適切に測定することができる。
(2)進捗度について
上述した計測回路11aは、演算回路11bが単位処理を完了する度にインクリメントされる値を進捗度として計測した。しかしながら、実施例は、これに限定されるものではない。すなわち、計測回路11aは、各プロセッサ11〜13が処理すべき計算処理量のうち、既に処理が終了している割合を各プロセッサ11〜13間で相対的に比較できるのであれば、任意の値を進捗度とすることができる。
例えば、計測回路11aは、演算回路11bが実行する分割処理を完了するために実行される全計算回数のうち、実際に演算回路11bが実行した計算回数の割合を進捗度として測定してもよい。例えば、あるタスクを複数のプロセッサに並列実行させる場合は、コンパイラ等のソフトウェアがタスクの分割を実行する。かかる場合、分割された各スレッドやプロセス等、各プロセッサに割当てられる分割処理を完了させるための全計算回数を、ソフトウェアが計測回路11aに通知する。そして、計測回路11aは、通知された全計算回数のうち、実際に演算回路11bが実行した計算回数の割合を進捗度として測定してもよい。
また、計測回路11aは、演算回路11bが計算処理を実行するクロックサイクルでは、進捗度のカウントを停止し、演算回路11bが外部アクセスを行う場合等、計算処理を実行しないクロックサイクルでは、進捗度のカウントを実行してもよい。また、計測回路11aは、アービタ14へのアクセス要求発行時に進捗度のカウントを開始し、アービタ14がアクセス要求を受理した際、外部装置への処理が開始された際、若しくは応答を受信するまでの間、進捗度のカウントを行っても良い。
かかる処理を実行した場合、計測回路11aは、計算量よりも外部アクセス量が少ない分割処理を演算回路11bが実行する際は、進捗度の桁数が少なくなるので、計測回路11aは、回路規模を減少させることができる。なお、かかる処理を実行した場合は、処理が遅れているプロセッサほど進捗度の値が大きくなるので、アービタ14は、アクセス要求の送信元となるプロセッサのうち、進捗度の値が最も大きいプロセッサからの処理要求を発行する。
(3)アービタについて
上述したアービタ14は、アクセス要求の送信元となる複数のプロセッサの進捗度が同一となる場合は、ラウンドロビンやLRUの調停を行った。しかしながら、実施例は、これに限定されるものではない。例えば、アービタ14は、通信時の遅延を考慮し、他の情報処理装置10aに対するアクセス要求を優先してもよい。また、アービタ14は、インターコネクトコントローラ17が通信網上に輻輳などの理由で長時間滞留していたパケットを受信した場合は、インターコネクトコントローラ17からのアクセス要求を優先してもよい。
(4)インターコネクトコントローラについて
上述したインターコネクトコントローラ17aは、処理要求の送信元となるプロセッサの進捗度をパケットに格納した。しかしながら、実施例はこれに限定されるものではない。例えば、インターコネクトコントローラ17aは、通信網上に輻輳などの理由でパケットを一定時間キャッシュした場合は、キャッシュしたパケットに格納された進捗度から所定の値を減算することで、優先的に処理が実行されるようにしてもよい。すなわち、インターコネクトコントローラ17aは、パケットが送信されなかった時間に応じて、パケットに格納された処理要求の優先度を向上させてもよい。
(5)その他
なお、並列計算機システム1は、上述した情報処理装置10、10a〜10eを任意の組合わせて有しても良い。また、並列計算機システム1は、情報処理装置10、10a〜10eが有する機能を矛盾しない範囲で組合わせて発揮できるようにしてもよい。
1、1a、1b 並列計算機システム
2、2a メモリ
3、3a I/O装置
4 管理装置
10、10a〜10e 情報処理装置
11〜13、11c〜13c プロセッサ
11a〜13a 計測回路
11b〜13b 演算回路
14、14a、14b アービタ
15、15a メモリアクセスコントローラ
16、16a 外部バスコントローラ
17、17a、17b インターコネクトコントローラ
18 カウンタ
19 インクリメンタ
20 マルチプレクサ
30、30a、30b 調停回路
37 進捗度比較回路

Claims (6)

  1. 複数の演算処理装置を有する情報処理装置において、
    各演算処理装置は、
    演算処理を実行する演算部と、
    前記演算部が実行する演算処理の進捗を示す進捗度を計測する計測部と
    を有し、
    前記情報処理装置は、
    外部装置に対するアクセス要求を複数の演算処理装置から受信した場合は、各アクセス要求の送信元となる演算処理装置が有する計測部により計測された進捗度の比較結果に基づいて、アクセス要求の調停を行う調停部
    を有することを特徴とする情報処理装置。
  2. 前記演算部は、前記演算処理を複数の単位処理に分けて実行し、
    前記計測部は、前記演算部が前記単位処理を実行するたびに、前記進捗度の値に1を加算することを特徴とする請求項1に記載の情報処理装置。
  3. 前記調停部は、前記アクセス要求の発行対象となる外部装置が複数存在する場合は、前記外部装置ごとに、当該外部装置に対するアクセス要求の送信元となる演算処理装置が有する計測部により計測された進捗度に基づいて、アクセス要求の調停を行うことを特徴とする請求項1または2に記載の情報処理装置。
  4. 他の情報処理装置が管理する外部装置に対するアクセス要求を、前記他の情報処理装置へ送信する場合は、該アクセス要求の送信元となる演算処理装置が有する計測部により計測された進捗度と、前記他の情報処理措置が管理する外部装置に対する処理の実行要求とを送信する送信部を有することを特徴とする請求項1〜3のいずれか1つに記載の情報処理装置。
  5. 複数の演算処理装置と、
    前記演算処理装置が実行する処理の進捗を示す進捗度を、前記演算処理装置ごとに計測する計測部と、
    外部装置に対するアクセス要求を複数の演算処理装置から受信した場合は、該アクセス要求の送信元となる演算処理装置について前記計測部が計測した進捗度に基づいて、該アクセス要求の調停を行う調停部と
    を有することを特徴とする情報処理装置。
  6. 複数の演算処理装置を有する情報処理装置の制御方法において、
    各演算処理装置が実行する処理の進捗を示す進捗度を、前記演算処理装置ごとに計測し、
    外部装置に対するアクセス要求を複数の演算処理装置から受信した場合は、該アクセス要求の送信元となる演算処理装置について計測された進捗度に基づいて、該アクセス要求を調停する
    ように前記情報処理装置を制御することを特徴とする情報処理装置の制御方法。
JP2013205534A 2013-09-30 2013-09-30 情報処理装置および情報処理装置の制御方法 Active JP6201591B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013205534A JP6201591B2 (ja) 2013-09-30 2013-09-30 情報処理装置および情報処理装置の制御方法
US14/475,961 US9830195B2 (en) 2013-09-30 2014-09-03 Apparatus and method for controlling execution of processes in a parallel computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013205534A JP6201591B2 (ja) 2013-09-30 2013-09-30 情報処理装置および情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2015069576A true JP2015069576A (ja) 2015-04-13
JP6201591B2 JP6201591B2 (ja) 2017-09-27

Family

ID=52741339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013205534A Active JP6201591B2 (ja) 2013-09-30 2013-09-30 情報処理装置および情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US9830195B2 (ja)
JP (1) JP6201591B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6090492B1 (ja) * 2016-03-18 2017-03-08 日本電気株式会社 メモリアクセス制御装置、情報処理システム、メモリアクセス制御方法、及び、プログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146434B1 (en) * 2015-05-15 2018-12-04 Marvell Israel (M.I.S.L) Ltd FIFO systems and methods for providing access to a memory shared by multiple devices
US11108698B2 (en) * 2017-02-03 2021-08-31 Microsoft Technology Licensing, Llc Systems and methods for client-side throttling after server handling in a trusted client component
JP2022532230A (ja) * 2019-05-14 2022-07-13 エクセジー インコーポレイテッド 金融市場データからの取引シグナルを低遅延で生成しかつ配信するための方法およびシステム
US11176069B2 (en) * 2020-01-03 2021-11-16 Apple Inc. System for link management between multiple communication chips
US20220261901A1 (en) * 2021-02-16 2022-08-18 Exegy Incorporated Methods and Systems for Bettering Market Making at Low Latency

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337713A (ja) * 2002-05-21 2003-11-28 Hitachi Ltd プロセッサの制御方法
US8065459B2 (en) * 2006-05-17 2011-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks
JP2013135387A (ja) * 2011-12-27 2013-07-08 Fujitsu Ltd 通信制御装置、並列計算機システム及び通信制御方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0476175A1 (de) 1990-09-20 1992-03-25 Siemens Aktiengesellschaft Einrichtung zum Betrieb eines Mehrprozessorsystems, insbesondere einer numerischen Steuerung
JPH0594409A (ja) * 1991-10-02 1993-04-16 Nec Eng Ltd バス調停システム
US5506968A (en) * 1992-12-28 1996-04-09 At&T Global Information Solutions Company Terminating access of an agent to a shared resource when a timer, started after a low latency agent requests access, reaches a predetermined value
JPH0816530A (ja) * 1994-07-04 1996-01-19 Kurieiteibu Design:Kk コプロセサシステムおよび補助演算機能付外部メモリ装置
US6178475B1 (en) * 1994-12-19 2001-01-23 Advanced Micro Devices Inc. Multimedia system employing timers to properly allocate bus access
US5778200A (en) * 1995-11-21 1998-07-07 Advanced Micro Devices, Inc. Bus arbiter including aging factor counters to dynamically vary arbitration priority
JPH11250005A (ja) * 1998-03-05 1999-09-17 Nec Corp バス制御方法、バス制御装置及びバス制御プログラムを記憶した記憶媒体
JP3386111B2 (ja) 1999-03-01 2003-03-17 日本電気株式会社 ファブリックおよびファブリック相互接続システム
US6629177B1 (en) * 1999-12-27 2003-09-30 Intel Corporation Arbitrating requests on computer buses
TWI258081B (en) * 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
AU2003248865A1 (en) * 2002-07-08 2004-01-23 Globespanvirata Incorporated Method and system for allocating bandwidth
JP4182246B2 (ja) * 2002-11-27 2008-11-19 富士通マイクロエレクトロニクス株式会社 バス共有システム及びバス共有方法
US7748001B2 (en) * 2004-09-23 2010-06-29 Intel Corporation Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time
US7543173B2 (en) * 2005-08-02 2009-06-02 Hewlett-Packard Development Company, L.P. Timestamp generator
US20070234014A1 (en) * 2006-03-28 2007-10-04 Ryotaro Kobayashi Processor apparatus for executing instructions with local slack prediction of instructions and processing method therefor
JP4455540B2 (ja) * 2006-06-15 2010-04-21 キヤノン株式会社 バスシステム及び調停方法
GB2447688B (en) * 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
US8117618B2 (en) * 2007-10-12 2012-02-14 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
JP2010113414A (ja) 2008-11-04 2010-05-20 Ricoh Co Ltd マルチコアシステム、スレッドスケジューリング方法、プログラム、記憶媒体
US8667197B2 (en) * 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
WO2013038589A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 資源要求調停装置、資源要求調停システム、資源要求調停方法、集積回路およびプログラム
US9405711B2 (en) * 2013-01-09 2016-08-02 International Business Machines Corporation On-chip traffic prioritization in memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337713A (ja) * 2002-05-21 2003-11-28 Hitachi Ltd プロセッサの制御方法
US8065459B2 (en) * 2006-05-17 2011-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks
JP2013135387A (ja) * 2011-12-27 2013-07-08 Fujitsu Ltd 通信制御装置、並列計算機システム及び通信制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6090492B1 (ja) * 2016-03-18 2017-03-08 日本電気株式会社 メモリアクセス制御装置、情報処理システム、メモリアクセス制御方法、及び、プログラム
US10346207B2 (en) 2016-03-18 2019-07-09 Nec Corporation Memory access controller, memory access control method, and recording medium stored with program

Also Published As

Publication number Publication date
US20150095622A1 (en) 2015-04-02
JP6201591B2 (ja) 2017-09-27
US9830195B2 (en) 2017-11-28

Similar Documents

Publication Publication Date Title
JP7384534B2 (ja) 並列処理装置、コンピュータ可読記憶装置および方法
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
JP4702127B2 (ja) 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
TWI496005B (zh) 共享資源的仲裁方法及裝置
US20160191420A1 (en) Mitigating traffic steering inefficiencies in distributed uncore fabric
JP5895840B2 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
US9742869B2 (en) Approach to adaptive allocation of shared resources in computer systems
JP6984022B2 (ja) マルチノードシステムの低電力管理
JP5498505B2 (ja) データバースト間の競合の解決
US10503546B2 (en) GPU resource priorities based on hardware utilization
US10908955B2 (en) Systems and methods for variable rate limiting of shared resource access
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
US10331581B2 (en) Virtual channel and resource assignment
JP2020500379A (ja) デュアルモードローカルデータストア
CN108701062B (zh) 通过分层性能平衡来减轻负载不平衡
WO2013148439A1 (en) Hardware managed allocation and deallocation evaluation circuit
JP2011059915A (ja) 半導体装置
US11914536B2 (en) Device and method for sharing resource via bus
JP3124544B2 (ja) バス制御装置
JP2010170473A (ja) バス調停装置
Yoon Tunable WCET for hard real-time multicore system
JP2019012459A (ja) 情報処理装置及び情報処理装置の制御方法
JP2009134635A (ja) マルチプロセッサシステム
JP2011022814A (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170724

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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170814

R150 Certificate of patent or registration of utility model

Ref document number: 6201591

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150