JP5458030B2 - 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム - Google Patents
並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム Download PDFInfo
- Publication number
- JP5458030B2 JP5458030B2 JP2011009341A JP2011009341A JP5458030B2 JP 5458030 B2 JP5458030 B2 JP 5458030B2 JP 2011009341 A JP2011009341 A JP 2011009341A JP 2011009341 A JP2011009341 A JP 2011009341A JP 5458030 B2 JP5458030 B2 JP 5458030B2
- Authority
- JP
- Japan
- Prior art keywords
- limit value
- storage unit
- range
- count
- count processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
しかしながら、MESIプロトコルは、マルチコアプロセッサのコア数(並列に処理するスレッドの数)の増加に伴って、キャッシュコヒーレンスの回数が増加するため、そのキャッシュコヒーレンスの処理に費やされる時間が増加し、マルチコアプロセッサのスループットの低下をまねく虞がある。
前記虞と同様に、サーバ群においても、サーバ数の増加に伴って、共通にアクセスされる合計数の一貫性を保つ処理(キャッシュコヒーレンス処理に相当)の回数が増加するため、その処理に費やされる時間が増加し、サーバ群全体のスループットの低下をまねく虞もある。
はじめに、数をカウントするカウント処理について説明する。本発明のカウント処理では、インクリメント処理またはデクリメント処理が定義でき、更に、交換法則および結合法則が成り立つものとする。
まず、インクリメント処理とは、これ以上砕くことのできない最小の演算処理を指すものとする。具体的には、ある空間において、原子的な値(シンボル)oが定義でき、その空間を満たす値が、すべて下記式の関数sのように表現できる場合をインクリメント処理と呼ぶことにする。ただし、下記式に示した関数sは、+1のインクリメントの場合を示している。なお、関数sは、例えば、3の倍数しか出現しない空間であれば+3のインクリメントを表すものであっても良い。
s(o)≡1
s(s(o))=s2(o)≡2
・・・
s(s(・・s(o)・・))=sN(o)≡N
また、マグニチュードのような対数空間ではs(x)=Axと表しても良い。
s(s(・・s(o)・・))=sN(o)≡N
s−1(N)=s−1(sN(o))=sN−1(o)≡N−1
f(f(x,y),z)=f(x,f(y,z))
f(x,y)=f(y,x)
ここで、比較例の並列カウント処理装置(マルチコアプロセッサ)の機能例について、図1を用いて説明する。次に、比較例の並列カウント処理装置において、図2(a)では処理シーケンス例について説明し、図2(b)では処理フロー例について説明する。
以降、同様にして、各スレッドがカウントアップしていく。なお、共有カウント記憶部への書き込み更新は、atomicな処理(変更中の状態があたかも存在しないように見せる処理)であり、キャッシュラインに早く書き込んだもの以外は、MESIプロコトル等によって破棄される。
そこで、第1実施形態では、カウント処理の並列処理数の増加に応じて、スループットのスケーラビリティを確保可能な並列カウント処理装置(マルチコアプロセッサ)の構成例について、図3を用いて説明する。
並列カウント処理装置300は、マルチコアプロセッサであり、複数のスレッド[0]〜[M−1]を並列に実行する。便宜的に、数をカウントするスレッドを実行しているコアをカウント処理部311と称する。また、共有カウント記憶部320は、L2キャッシュのメモリ上の所定のアドレスで指定されたキャッシュラインを表している。
具体的には、カウント処理部311ごとのカウント数の限界値の範囲の上限値(以降、単に、上限値と称すこともある。)をtiで表すと、コア数がN個の場合、上限値はt0,・・、tN−1となる。なお、上限値tiの合計値は、初期値として、T以下となるように設定される。例えば、任意のiに対して、ti=T/(2N)のように、上限値tiの合計値の初期値は、T未満であっても構わない。
r=T−Σti (ただし、0≦i≦N−1) ・・式(1)
つまり、図3に示す並列カウント処理装置300の構成は、カウントした数がローカルカウント記憶部312に記憶している限界値の範囲の上限値ti未満の場合には、カウント処理の並列処理数の増加に応じて、スループットのスケーラビリティを確保することが可能である。
また、図5で用いられる変数のうち、vi、v’i、およびtiは、カウント処理部iにおいて用いられる変数であり、viはカウント済みの数値、v’iは仮のカウント数を表し、tiはカウント処理部iに設定されるカウント数の限界値の範囲(請求項に記載の第1の限界値の範囲)の上限値を表す。ただし、図5では、v’i≧0である。rは共有カウント記憶部320に記憶されている残数(前記式(1)参照)を表し、Tは並列カウント処理装置300の累積カウント数の限定値の範囲(請求項に記載の第2の限界値の範囲)の上限値を表す。また、変数xは単位時間当たりのカウント数の変化分を表しており、正の場合は増加数を表し、負の場合は減少数を表すものとする。
ステップS504およびステップS505では、(ti−v’i)/2を用いているが、これに限られず、(ti−v’i)に対する所定の割合の値を用いることとしても良い。
また、ステップS507の処理およびステップS512の処理は、カウント処理部311が行うものとして説明したが、並列スレッド処理部310または並列カウント処理装置300が実行しても構わない。具体的には、ステップS507では、カウント処理部311がステップS506の処理終了の情報を並列スレッド処理部310または並列カウント処理装置300に送信して、並列スレッド処理部310または並列カウント処理装置300がステップS507の処理を実行する。また、ステップS512では、カウント処理部311がステップS510の処理終了の情報を並列スレッド処理部310または並列カウント処理装置300に送信して、並列スレッド処理部310または並列カウント処理装置300がステップS512の処理を実行する。
次に、第2実施形態では、第1実施形態の並列カウント処理装置(マルチコアプロセッサ)を通信装置に適用したケースについて、図6を用いて説明する。
なお、図6では、通信装置600は、1台しか記載していないが、2台以上であっても構わない。また、端末650は、2台しか記載していないが、3台以上であっても構わない。
端末650は、例えば、PC(Personal Computer)であり、通信装置600にネットワーク640を介してアクセスする機能を備える。
振分処理部620は、受信した情報の処理を担当するカウント処理部311を決定し、当該カウント処理部311に、受信した情報を受け渡す。担当するカウント処理部311の決定は、例えば、受信した情報の一部をハッシュ関数等に適用する処理に基づいて行われる。
並列カウント処理装置300は、図3に示した構成と同様であるので、その詳細を省略する。
情報送信部630は、情報受信部610が受信した情報に対応する応答情報を端末650に送信する。
図7において、並列スレッド処理部310は、マルチスレッドプログラムの実行を開始する。その際、M本のスレッドを立ち上げるコアの個数Nが確定される。
そして、ステップS701では、並列スレッド処理部310は、共有カウント記憶部320とローカルカウント記憶部312との整合性をとるための初期設定を実行する。
ステップS704では、情報受信部610は、情報qを振分処理部620に受け渡す。
ステップS705では、振分処理部620は、情報qの所定の箇所のデータに基づいて、担当するスレッドを決定する。具体的には、振分処理部620は、情報qの所定の箇所のデータをハッシュ関数等に適用して、担当するスレッドを決定する。
または、ステップS707のように、カウント処理部311は、カウント数が限界値の範囲外となる場合には、共有カウント記憶部320に記憶されている残数rの更新処理を実行し、キャッシュコヒーレンスの必要な処理を行う。
また、ステップS708において、カウント処理部311は、残数rが通信装置600の累積カウント数の限界値の範囲(0以上T未満)内に入らないと判定した場合、受信した情報qを受け付けられない旨の応答データを生成し、情報送信部630に受け渡す。
そして、各カウント処理部311は、ローカルカウント記憶部312に記憶しているカウント数の限界値の範囲内であれば、共有カウント記憶部320の残数rを更新する必要がなく、キャッシュコヒーレンスのための処理を不要とする。そのため、通信装置600の並列カウント処理装置300は、並列に処理するスレッドの数を増加させても、スループットのスケーラビリティを確保することが可能となる。
次に、第3実施形態では、複数のサーバによって構成されるクラスタ構成のサーバ群における並列カウント処理について、図8を用いて説明する。
また、サーバ810aが備えるサーバ共有カウント記憶部320b(320)は、サーバ群800全体に割り当てられた累積カウント数の残数r2を記憶しており、複数のサーバ810からコヒーレンスを必要とする残数r2の書き換え更新の対象となる。
311 カウント処理部
312 ローカルカウント記憶部(第1および第3実施形態における第1の記憶部)
320 共有カウント記憶部(第1実施形態における第2の記憶部)
600 通信装置
800 サーバ群
810,810a サーバ
320a サーバカウント記憶部
320b サーバ共有カウント記憶部(第3実施形態における第2の記憶部)
r 残数
ti 第1の限界値の範囲の上限値
T 第2の限界値の範囲の上限値
Claims (6)
- 数をカウントするカウント処理部を複数備える並列カウント処理装置であって、
前記カウント処理部がカウントする数の第1の限界値の範囲と、前記並列カウント処理装置のカウントする数の第2の限界値の範囲と、当該カウント処理部がカウントした数値とを記憶している第1の記憶部と、
各前記カウント処理部に設定された前記第1の限界値の範囲の上限値の合計を、前記第2の限界値の範囲の上限値から減算した数値を残数として記憶している第2の記憶部と、
前記カウントした数値と前記第1の限界値の範囲とを比較し、当該カウントした数値が前記第1の限界値の範囲に入ると判定した場合、当該カウントした数値を前記第1の記憶部に記憶し、当該カウントした数値が前記第1の限界値の範囲に入らないと判定した場合、前記第1の限界値の範囲から外れた分の差分値を前記第2の記憶部の前記残数から減算した数値を新たな前記第2の記憶部の前記残数として記憶し、前記新たな前記第2の記憶部の前記残数と前記第2の限界値の範囲とを比較し、当該新たな前記第2の記憶部の前記残数が前記第2の限界値の範囲に入ると判定した場合、前記差分値を前記第1の限界値の範囲の上限値に加算して前記第1の記憶部の前記第1の限界値の範囲を更新し、当該新たな前記第2の記憶部の前記残数が前記第2の限界値の範囲に入らないと判定した場合、当該新たな前記第2の記憶部の前記残数に前記差分値を加算して前記第2の記憶部の前記残数を書き換えて更新する前記カウント処理部と
を備えることを特徴とする並列カウント処理装置。 - 前記カウント処理部は、
前記第1の限界値の範囲の上限値から前記カウントした数値を減算した減算値と前記残数とを比較し、前記減算値が前記残数より大きいと判定した場合、前記第1の限界値の範囲の上限値から前記減算値に対する所定の割合の値を減算して前記第1の限界値の範囲を更新し、前記第2の記憶部の前記残数に前記減算値に対する所定の割合の値を加算して前記第2の記憶部の前記残数を更新する
ことを特徴とする請求項1に記載の並列カウント処理装置。 - ユーザの使用する装置とネットワークを介して通信可能に接続され、前記装置間の通信接続を制御する通信装置であって、
前記カウント処理部によってカウントされる前記数として、通信に用いるセッション数をカウントする請求項1または請求項2に記載の前記並列カウント処理装置を備えることを特徴とする通信装置。 - ユーザの使用する端末とネットワークを介して通信可能に接続され、サービス提供用の情報を蓄積している通信装置であって、
前記カウント処理部によってカウントされる前記数として、前記端末から前記サービス提供用の情報をダウンロードした回数をカウントする請求項1または請求項2に記載の前記並列カウント処理装置を備えることを特徴とする通信装置。 - 数をカウントするカウント処理部を複数備える並列カウント処理装置において用いられる並列カウント処理方法であって、
前記並列カウント処理装置は、
前記カウント処理部がカウントする数の第1の限界値の範囲と、前記並列カウント処理装置のカウントする数の第2の限界値の範囲と、当該カウント処理部がカウントした数値とを記憶している第1の記憶部と、
各前記カウント処理部に設定された前記第1の限界値の範囲の上限値の合計を、前記第2の限界値の範囲の上限値から減算した数値を残数として記憶している第2の記憶部と、
複数の前記カウント処理部と、を備え、
前記カウント処理部は、
前記カウントした数値と前記第1の限界値の範囲とを比較し、当該カウントした数値が前記第1の限界値の範囲に入ると判定した場合、当該カウントした数値を前記第1の記憶部に記憶し、当該カウントした数値が前記第1の限界値の範囲に入らないと判定した場合、前記第1の限界値の範囲から外れた分の差分値を前記第2の記憶部の前記残数から減算した数値を新たな前記第2の記憶部の前記残数として記憶し、前記新たな前記第2の記憶部の前記残数と前記第2の限界値の範囲とを比較し、当該新たな前記第2の記憶部の前記残数が前記第2の限界値の範囲に入ると判定した場合、前記差分値を前記第1の限界値の範囲の上限値に加算して前記第1の記憶部の前記第1の限界値の範囲を更新し、当該新たな前記第2の記憶部の前記残数が前記第2の限界値の範囲に入らないと判定した場合、当該新たな前記第2の記憶部の前記残数に前記差分値を加算して前記第2の記憶部の前記残数を書き換えて更新する
ことを特徴とする並列カウント処理方法。 - 請求項5に記載の並列カウント処理方法を、コンピュータである前記並列カウント処理装置に実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011009341A JP5458030B2 (ja) | 2011-01-20 | 2011-01-20 | 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011009341A JP5458030B2 (ja) | 2011-01-20 | 2011-01-20 | 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012150679A JP2012150679A (ja) | 2012-08-09 |
JP5458030B2 true JP5458030B2 (ja) | 2014-04-02 |
Family
ID=46792863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011009341A Expired - Fee Related JP5458030B2 (ja) | 2011-01-20 | 2011-01-20 | 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5458030B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918596B2 (en) * | 2012-12-20 | 2014-12-23 | Oracle International Corporation | System and method for implementing NUMA-aware statistics counters |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0214354A (ja) * | 1988-07-01 | 1990-01-18 | Fujitsu Ltd | 共通データの管理処理方式 |
JP2002200359A (ja) * | 2000-12-27 | 2002-07-16 | Pioneer Electronic Corp | ネットワークゲームシステム及びネットワークゲームの提供方法 |
JP4044855B2 (ja) * | 2003-02-17 | 2008-02-06 | 日本電信電話株式会社 | セッションフィルタリング方法および負荷分散装置 |
-
2011
- 2011-01-20 JP JP2011009341A patent/JP5458030B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012150679A (ja) | 2012-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729106B (zh) | 处理计算任务的方法、系统和计算机程序产品 | |
CN108920703B (zh) | 一种http缓存优化方法与装置 | |
US20130073601A1 (en) | Remote process execution management | |
TW200901039A (en) | Resource manager and method | |
KR20140004799A (ko) | 피어 투 피어 데이터 마이그레이션 | |
CN114327399B (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
JPWO2018131556A1 (ja) | リソース設定制御装置、リソース設定制御システム、リソース設定制御方法、および、リソース設定制御プログラム | |
CN111124644B (zh) | 任务调度资源的确定方法、装置及系统 | |
EP4060496A2 (en) | Method, apparatus, device and storage medium for running inference service platform | |
CN106385377A (zh) | 一种信息处理方法和系统 | |
CN107608788B (zh) | 一种控制方法、装置及设备 | |
WO2018235739A1 (ja) | 情報処理システムおよびリソース割り当て方法 | |
US9921971B2 (en) | Context based cache eviction | |
CN111831503B (zh) | 一种基于监控代理的监控方法和监控代理装置 | |
CN106843769B (zh) | 一种接口数据缓存方法、装置和计算设备 | |
JP5458030B2 (ja) | 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム | |
JP6957194B2 (ja) | サービスシステム、その制御方法、およびそのプログラム | |
JP2009157437A (ja) | 分散記憶システム | |
CN108446182A (zh) | 一种基于共享内存的跨进程通信方法及装置 | |
JP2011095869A (ja) | リクエスト情報処理方法および計算機システム | |
JP6815975B2 (ja) | Api管理システムおよびapi管理方法 | |
CN110377645A (zh) | 涉及区块链的点赞数据共享方法及其系统 | |
US11886916B2 (en) | System for adaptive multithreaded recalculation operations | |
CN112866355B (zh) | 用于服务器故障转移和负荷平衡的系统和方法 | |
JP6627475B2 (ja) | 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130204 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131225 |
|
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: 20140107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5458030 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |