図面 (/)

技術 演算装置、プログラム、情報処理方法

出願人 富士通株式会社
発明者 正木玲司橋本剛
出願日 2015年11月27日 (5年6ヶ月経過) 出願番号 2015-232282
公開日 2017年6月1日 (4年0ヶ月経過) 公開番号 2017-097795
状態 特許登録済
技術分野 デバッグ/監視 複合演算
主要キーワード リダクション演算 基本性質 CPU時間 並列演算装置 集約ノード 情報集約 IO処理 システム規模
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年6月1日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (8)

課題

分散システムにおける情報集約通信において、通信データ量を低減する。

解決手段

演算装置は、演算部と送信部を備える。演算部は、複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算する。送信部は、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信する。

概要

背景

分散システムでは、複数の送信ノードと、複数の送信ノードを管理するための受信ノードを備える。情報集約通信を実現する受信ノードは、複数の送信ノードの状態を管理するため、定期的に複数の送信ノードの状態情報収集する。受信ノードは、複数の送信ノードから定期的に状態情報を受信することで、異常が発生した送信ノードを検知することができる。

データの転送処理高速化する技術が知られている。並列計算機を構成する各ノードは、まずn分割したデータを他のノードに転送し、各ノードは、1/nずつのデータを集約して、演算し、次に、複数のノードが、それぞれの演算結果を、集約ノードに転送する。全ノードが、それぞれ分割されたデータの演算を実行するため、高速に転送処理を実現できる(例えば、特許文献1を参照)。

概要

分散システムにおける情報集約型通信において、通信データ量を低減する。演算装置は、演算部と送信部を備える。演算部は、複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算する。送信部は、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信する。

目的

本発明は1つの側面において、分散システムにおける情報集約型通信において、通信データ量を低減することを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算する演算部と、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信する送信部と、を備えることを特徴とする演算装置

請求項2

前記異常のある送信ノードの個数が1つである場合、前記送信部は、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値を、前記係数として前記受信ノードに送信することを特徴とする請求項1に記載の演算装置。

請求項3

前記異常のある送信ノードの個数が2つである場合、前記演算部は、前記異常のある送信ノードの状態情報と識別情報とを含む2つの数値から、2次方程式の係数を演算することを特徴とする請求項1に記載の演算装置。

請求項4

前記異常のある送信ノードの個数が3以上である場合、前記演算部は、前記異常のある送信ノードの状態情報と識別情報とを含む数値に、異常のある送信ノードの個数に応じた数の異なる定数加算した値から、方程式の係数を演算することを特徴とする請求項1に記載の演算装置。

請求項5

複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式の係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算し、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信する処理を、演算装置に実行させることを特徴とするプログラム

請求項6

前記異常のある送信ノードの個数が1つである場合、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値を、前記係数として前記受信ノードに送信する処理を前記演算装置に実行させることを特徴とする請求項5に記載のプログラム。

請求項7

前記異常のある送信ノードの個数が2つである場合、前記異常のある送信ノードの状態情報と識別情報とを含む2つの数値から、2次方程式の係数を演算する処理を前記演算装置に実行させることを特徴とする請求項5に記載のプログラム。

請求項8

前記異常のある送信ノードの個数が3以上である場合、前記異常のある送信ノードの状態情報と識別情報とを含む数値に、異常のある送信ノードの個数に応じた数の異なる定数を加算した値から、方程式の係数を演算する処理を前記演算装置に実行させることを特徴とする請求項5に記載のプログラム。

請求項9

複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式の係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算し、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信することを特徴とする情報処理方法

請求項10

前記異常のある送信ノードの個数が1つである場合、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値を、前記係数として前記受信ノードに送信することを特徴とする請求項9に記載の情報処理方法。

請求項11

前記異常のある送信ノードの個数が2つである場合、前記異常のある送信ノードの状態情報と識別情報とを含む2つの数値から、2次方程式の係数を演算することを特徴とする請求項9に記載の情報処理方法。

請求項12

前記異常のある送信ノードの個数が3以上である場合、前記異常のある送信ノードの状態情報と識別情報とを含む数値に、異常のある送信ノードの個数に応じた数の異なる定数を加算した値から、方程式の係数を演算することを特徴とする請求項9に記載の情報処理方法。

技術分野

0001

本発明は、複数のノードから情報を収集する情報収集システムに関する。

背景技術

0002

分散システムでは、複数の送信ノードと、複数の送信ノードを管理するための受信ノードを備える。情報集約通信を実現する受信ノードは、複数の送信ノードの状態を管理するため、定期的に複数の送信ノードの状態情報を収集する。受信ノードは、複数の送信ノードから定期的に状態情報を受信することで、異常が発生した送信ノードを検知することができる。

0003

データの転送処理高速化する技術が知られている。並列計算機を構成する各ノードは、まずn分割したデータを他のノードに転送し、各ノードは、1/nずつのデータを集約して、演算し、次に、複数のノードが、それぞれの演算結果を、集約ノードに転送する。全ノードが、それぞれ分割されたデータの演算を実行するため、高速に転送処理を実現できる(例えば、特許文献1を参照)。

先行技術

0004

特開2007−249810号公報

発明が解決しようとする課題

0005

分散システムにおける受信ノードは、複数の送信ノードの状態を管理するため、定期的に複数の送信ノードの状態情報を収集する。これらの状態情報を一斉に受信する場合、複数の送信ノードの数に応じて、通信データ量が大きくなり、通信時間がかかる。

0006

本発明は1つの側面において、分散システムにおける情報集約型通信において、通信データ量を低減することを目的とする。

課題を解決するための手段

0007

演算装置は、演算部と送信部を備える。演算部は、複数の送信ノードのうち異常のある送信ノードの個数に対応する方程式係数を、前記異常のある送信ノードの状態情報と前記異常のある送信ノードを識別する識別情報とを含む数値から演算する。送信部は、前記係数を用いる前記方程式の解から前記数値を抽出する受信ノードに、前記係数を送信する。

発明の効果

0008

本発明によれば、分散システムにおける情報集約型通信において、通信データ量を低減することができる。

図面の簡単な説明

0009

本実施形態に係る分散システムの例を説明する図である。
異常のある送信ノードが2以下の場合の分散システムの処理の例を説明する図である。
異常のある送信ノードが3以上の場合の分散システムの処理の例を説明する図である。
分散システムの構成の例を説明する図である。
分散システムに設置される各種装置のハードウェア構成の例を説明する図である。
受信ノードの処理の例を説明するフローチャートである。
受信ノードの処理の例を説明するフローチャートである。

実施例

0010

本発明に係る演算装置は、各送信ノードからの状態情報をリダクション演算と、所定の方程式の根の係数の関係を用いて、通信データ量を低減させることができる。

0011

図1は、本実施形態に係る分散システムの例を説明する図である。分散システム100は、複数の送信ノード110a〜110n、演算装置120、受信ノード130を含む。受信ノード130は、複数の送信ノード110a〜110nを管理するため、複数の送信ノード110a〜110nから状態情報を収集する。複数の送信ノード110a〜110nの各々は、処理部111と送受信部112を備える。演算装置120は、受信部121、演算部122、送信部123を備える。受信ノード130は、抽出部131を備える。

0012

処理部111は、まず、自送信ノード110に異常があるか否かを判定する。その後、送受信部112は、送信ノード110a〜110n間で異常があるか否かの情報を共有する。処理部111は、自送信ノード110を識別する識別情報と状態情報の対を変換して整数リダクションに用いられる引数)を生成する。送受信部112は、整数及び整数を用いた演算命令を演算装置120に送信する。

0013

演算装置120の受信部121は、各送信ノード110(110a〜110n)から整数及び演算命令を受信する。演算装置120の演算部122は、受信した整数(引数)を用いて「方程式」の係数を算出する方法を用いたリダクション処理(演算)を実行する。リダクション処理の結果算出される係数は、識別情報と状態情報の対である整数よりも、データ量が少ない。演算装置120の送信部123は、算出した係数を受信ノード130に送信する。

0014

受信ノード130の抽出部131は、受信した係数から「方程式」を解き、識別情報と状態情報の対である整数を抽出する。

0015

すると、演算装置120から受信ノード130に送信される係数は、識別情報と状態情報の対である整数よりもデータ量が少ない。そのため、演算装置120は、受信ノード130に送信する通信データ量を低減させることができる。

0016

<異常のある送信ノードが2以下の場合>
図2は、異常のある送信ノードが2以下の場合の分散システムの処理の例を説明する図である。パラメータ201は、送信ノード110a〜110n間で異常があるか否かの情報を共有するために用いられる。パラメータ201は、受信ノード130にも通知される。複数の送信ノード110a〜110nの各々は、引数202、引数203を演算装置120に送信する。表200は、複数の送信ノード110a〜110nに「異常がある」場合と「異常がない」場合の、パラメータ201、引数202、引数203の例である。

0017

パラメータ201は、送信ノード110が、異常のある送信ノード110(110a〜110nの何れか)の個数をカウントするために用いられる。異常のある送信ノード110(110a〜110nの何れか)の処理部111は、パラメータ201として異常があることを示す「1」を設定する。異常のない送信ノード110a〜110nは、パラメータ201として異常がないことを示す「0」を設定する。

0018

ここで、送信ノード110(110a〜110n)の送受信部112は、ノード間でパラメータ201を共有する。送信ノード110(110a〜110n)の処理部111は、異常のある送信ノード110の数が2個以下である場合、引数202と引数203を生成する。

0019

引数202は、演算装置120の係数(加法)を算出する際に用いられる引数である。異常のない送信ノード110の処理部111は、引数202として異常がないことを示す「0」を設定する。異常のある送信ノード110(110a〜110nの何れか)の処理部111は、エラーコード(状態情報)と異常のある送信ノードを識別する識別情報を対とした情報を引数202に設定する。

0020

引数203は、演算装置120の係数(乗法)を算出する際に用いられる引数である。異常のない送信ノード110の処理部111は、引数203として異常がないことを示す「1」を設定する。異常のある送信ノード110(110a〜110nの何れか)の処理部111は、エラーコード(状態情報)と異常のある送信ノードを識別する識別情報を対とした情報を引数203として設定する。

0021

送信ノード110の送信部112は、異常のある送信ノードの数が2以下であるため、引数202と引数203、及びこれらの引数を用いた演算命令を演算装置120に送信する。

0022

演算装置120は、引数202、引数203を受信すると、「方程式」の係数を算出する方法を用いたリダクション処理を実行する。リダクション処理の例を順に説明する。

0023

送信ノード110(110a〜110n)のうち、送信ノード110XXの1つに異常があるとする。演算装置120の演算部122は、異常のある送信ノード110が1つの場合、演算部122は、異常のある送信ノード110XXのエラーコードと識別情報を表す整数を冗長させた、2つの係数とする。

0024

送信ノード110(110a〜110n)のうち、送信ノード110XXと送信ノード110YYの1つに異常があるとする。演算装置120の演算部122は、異常のある送信ノード110XXのエラーコードと識別情報を表す整数を、「α」に設定する。処理部122は、異常のある送信ノード110YYのエラーコードと識別情報を表す整数を、「β」に設定する。

0025

演算部122は、引数202と引数203に基づいて設定されるαとβから、以下に示す式1、式2を用いて係数V(1)、V(2)を算出する。
V(1)=α+β ・・・式1
V(2)=α×β ・・・式2

0026

演算装置120の送信部123は、係数V(1)、係数(V2)を受信ノード130に送信する。

0027

受信ノード130の抽出部131は、受信した係数V(1)、V(2)に基づいて、x2+V(1)x+V(2)の2次方程式解くことで、α及びβを抽出できる。α及びβは、夫々がエラーコードと送信ノード110の識別情報を含む。そのため、抽出部131がαとβを抽出することで、受信ノード130は、異常のある送信ノード110を特定し、エラーコードを取得できる。

0028

表210は、複数の送信ノード110a〜110nが送信する引数202、引数203の例である。なお、送信ノード110XX、送信ノード110YYの2つは、異常があるノードである。そのため、演算装置120は、送信ノード110XX、送信ノード110YY以外の送信ノードからは、引数202に0、引数203に1が設定された引数を受信する。

0029

表210の例において、演算装置120の受信部121は、異常のある送信ノード110XXから、pが設定された引数202と引数203を受信する。演算装置120の受信部121は、異常のある送信ノード110YYから、qが設定された引数202と引数203を受信する。

0030

演算部122は、引数202と引数203に設定されているpとqから、式1、式2を用いて係数V(1)、V(2)を算出する。演算装置120の送信部123は、係数V(1)、V(2)を受信ノード130に送信する。

0031

受信ノード130の抽出部131は、受信した係数V(1)、V(2)に基づいて、x2+V(1)x+V(2)の2次方程式を解くことで、p及びqを抽出できる。具体的には、式3を算出すればよい。

0032

x2+V(1)x+V(2)=x2+(p+q)x+(p*q)=(X+p)(X+q)・・・式3
この2次方程式の解を求めることで、受信ノード130の抽出部131は、エラーコードと識別情報の対であるp及びqを抽出できる。

0033

演算装置120から受信ノード130に送信される係数は、識別情報と状態情報の対である整数よりもデータ量が少ない。そのため、演算装置120は、受信ノード130に送信する通信データ量を低減させることができる。

0034

<異常のある送信ノードが3以上の場合>
図3は、異常のある送信ノードが3以上の場合の分散システムの処理の例を説明する図である。パラメータ201は、送信ノード110a〜110n間で異常があるか否かの情報を共有するために用いられる。パラメータ201は、受信ノード130にも通知される。異常のある送信ノードが3以上の場合、複数の送信ノード110a〜110nの各々は、引数302に定数加算した送信データ複数個)を演算装置120に送信する。表300は、複数の送信ノード110a〜110nに「異常がある」場合と「異常がない」場合の、パラメータ201、引数302の例である。

0035

パラメータ201は、送信ノード110が、異常のある送信ノード110(110a〜110nの何れか)の個数(異常のあるノード数をk個とする)をカウントするために用いられる。異常のある送信ノード110(110a〜110nの何れか)の処理部111は、パラメータ201として異常があることを示す「1」を設定する。異常のない送信ノード110a〜110nは、パラメータ201として異常がないことを示す「0」を設定する。

0036

ここで、送信ノード110(110a〜110n)の送受信部112は、ノード間でパラメータ201を共有する。送信ノード110(110a〜110n)の処理部111は、異常のある送信ノード110の数が3個以上である場合、引数302に定数を加算した送信データ(複数個)を生成する。

0037

引数302は、演算装置120の係数(乗法)を算出する際に用いられる引数である。異常のない送信ノード110の処理部111は、引数302として異常がないことを示す「1」を設定する。異常のある送信ノード110(110a〜110nの何れか)の処理部111は、エラーコード(状態情報)と異常のある送信ノードを識別する識別情報を対とした情報(整数)に、k個の異なる定数(0〜(k−1))を加算し、k種類の引数302を設定する。

0038

異常のある送信ノード(110a〜110nの何れか)の送受信部112は、k種類の引数302(送信データ)を演算装置120に送信する。さらに、処理部111は、異常のある送信ノードk個から任意のj個を選択する。j個は、k個よりも小さい数である。送受信部112は、演算装置120に、j次方程式に用いられる係数を算出する命令を送信する。

0039

表310は、k及びjを3個とした場合に複数の送信ノード110a〜110nから演算装置120に送信される送信データ(引数302に定数が加算された値)の例である。ここで、送信ノード110XX、送信ノード110YY、送信ノード110ZZの3つ(k個)は、異常があるノードである。そのため、演算装置120は、送信ノード110XX、送信ノード110YY、送信ノードZZ以外の送信ノードから、1が設定された引数302を受信する。

0040

送信ノード110XX、送信ノード110YY、送信ノードZZは、エラーコードと識別情報を対とした情報に異なる定数d、e、fを加算した3種の送信データを演算装置120に送信する。定数の数は、異常のある送信ノードの数に対応する。

0041

具体的に演算装置120は、異常のある送信ノード110XXから、引数302にd、e、fが加算された「p+d」「p+e」「p+f」を受信する。pは、エラーコードと送信ノード110XXの識別情報の対を表す整数である。演算装置120は、異常のある送信ノード110YYから、引数302にd、e、fが加算された「q+d」「q+e」「q+f」を受信する。qは、エラーコードと送信ノード110YYの識別情報の対を表す整数である。演算装置120は、異常のある送信ノード110ZZから、引数302にd、e、fを加算した「r+d」「r+e」「r+f」を受信する。rは、エラーコードと送信ノード110ZZの識別情報の対を表す整数である。

0042

演算装置120の処理部122は、異常のある送信ノードからリダクション処理の引数を受信すると、式4〜式6を用いて係数V(1)、V(2)、V(3)を算出する。この例では、jが3個と選択されているため、処理部122は、係数を3つ算出する。

0043

V(1)=(p+d)*(q+d)*(r+d) ・・・式4
V(2)=(p+e)*(q+e)*(r+e) ・・・式5
V(3)=(p+f)*(q+f)*(r+f) ・・・式6
その後、送信部123は、算出した係数を、受信ノード130に送信する。

0044

受信ノード130の抽出部131は、受信した係数V(1)〜V(3)に基づいて、p、q、rを抽出する。式4〜式6は、例えば、P(d)=V(1)、P(e)=V(2)、P(f)=V(3)と仮定した場合、式7に置き換えることができる。

0045

P(x)=(x+p)*(x+q)*(x+r)
=x3+(p+q+r)x2+(pq+qr+rp)x+p*q*r
=x3+Ax2+Bx+C ・・・式7
ここで、式7では、p+q+rをAとし、pq+qr+rpをBとし、p*q*rをCとしている。ここで、式7のxに、d、e、fを代入すると、式8〜式10となる。

0046

P(d)=d3+Ad2+Bd+C=V(1) ・・・式8
P(e)=e3+Ae2+Be+C=V(2) ・・・式9
P(f)=f3+Af2+Bf+C=V(3) ・・・式10

0047

次に、式8〜10におけるA〜Cを未知数とする3元連立方程式として解く。式8〜10内の定数項右辺に移項した式は、式11〜式13のようになる。

0048

Ad2+Bd+C=V(1)—d3 ・・・式11
Ae2+Be+C=V(2)—e3 ・・・式12
Af2+Bf+C=V(3)—f3 ・・・式13
式11〜式13を行列ベクトルとすると、式14、式15となる。

0049

0050

ここで、d、e、fが全て異なることから、行列式は0とならないことが、行列式の基本性質で知られている。行列の基本性質は、ある列に他の列の定数倍を加えても値が変わらない事、及び、1つの列を定数倍すると値が定数倍されることである。

0051

こうして求められたP(x)を0とすることで、(−p)、(−q)、(−r)が根として求められる。そのため、受信ノード130の抽出部131は、p、q、rを抽出できる。

0052

なお、jが4以下であれば、j次方程式は、根の公式で解くことができる。jが5以上の場合は、数値的に解くことができる。

0053

演算装置120から受信ノード130に送信される係数は、識別情報と状態情報の対である整数よりもデータ量が少ない。そのため、分散システムにおけるは、演算装置120と受信ノード130間の通信データ量を低減させることができる。

0054

図4は、分散システムの構成の例を説明する図である。分散システム100において、送信ノード110a〜110fと受信ノード130が、スイッチまたはルータである中継装置401と通信線402を含むネットワークにより相互接続されている。更に、分散システム100は、リダクション機能を備えた独立筐体型のノード間演算装置403がノード外の中継装置401に接続される。

0055

なお、図4は、分散システム100の例示であり、このシステムに含まれる送信ノード110(110a〜110n)、中継装置401、独立筐体型のノード間演算装置403の数は、任意であってよい。送信ノード110(110a〜110n)は、Central Processing Unit(CPU)110−1、メモリ110−2、およびネットワーク・インターフェースであるNetwork Interface Card(NIC)110−3を備える。メモリ110−2は、各送信ノード110の識別情報及び状態情報が記憶する。また、受信ノード130は、CPU130−1、メモリ130−2、およびNIC130−3を備える。メモリ130−2は、受信したリダクション結果の係数及び、該係数から抽出された状態情報及び識別情報を記憶する。

0056

本実施形態では、リダクション処理を、送信ノード110のCPU110−1や受信ノード130のCPU130−1ではなく、Atomic Operationやネットワークのリダクション機能等のノード間演算装置403を用いて実現する。

0057

ノード間演算装置403が実現するリダクションの機能は、例えば、MessagePassing Interface(MPI)規格でMPI Reduceという名のAPIで定義される処理を指し、個別のデータを指定した2項演算の反復により演算前と同じ型の1つのデータに縮約することを指す。例えば、指定する2項演算が加法であれば、対応するリダクションの結果は、全ノードのデータの総和となる。MPI規格では、MPI Reduceによるリダクションで指定可能な演算として、加法以外にも乗法、bitwise or、「最大値と場所の対」等を指定するマクロが定義されている。

0058

分散システム100の環境における上記のリダクションの性能は、ノード間の通信時間によって決まり、演算の所要時間は、無視できる割合になる。しかしながら、システム規模の増大に伴って、リダクションは、入力情報を持つ全ノード間での、複数段階中継動作を伴う処理になり得る。

0059

ノード間の通信時間の相当部分は、ネットワーク装置主記憶装置へのアクセスオーバヘッド、すなわち、IO(Input Output)バスをデータが通過する時間と、IO処理を制御し演算を行うためのCPU時間である。CPU上で演算を行うためには、まずメモリに格納された演算対象のデータをCPUに取り込む必要があり、演算結果をメモリに再び格納する必要がある。さらに、ネットワーク上で複数段中継処理をしながらリダクションの演算をCPU上で行う場合には、IOバスメモリバスをデータが各段の中継について2回通過することになる。これに対し、ノード間演算機能を有するネットワーク装置の内部で演算が行われれば、IOバスとメモリバスをデータが通過することによるオーバヘッドは削減され、リダクション性能は、大幅に向上する。

0060

図5は、分散システムに設置される各種装置のハードウェア構成の例を説明する図である。送信ノード110と受信ノード130は、プロセッサ11、メモリ12、バス15、外部記憶装置16、ネットワーク接続装置19を備える。さらにオプションとして、送信ノード110と受信ノード130は、入力装置13、出力装置14、媒体駆動装置17を備えても良い。送信ノード110と受信ノード130は、例えば、コンピュータなどで実現されることがある。

0061

プロセッサ11は、CPUを含む任意の処理回路とすることができる。送信ノード110におけるプロセッサ11は、図4のCPU110−1であり、図1の処理部111として動作する。受信ノード130におけるプロセッサ11は、図4のCPU130−1であり、図1の抽出部131として動作する。なお、プロセッサ11は、例えば、外部記憶装置16に記憶されたプログラムを実行することができる。

0062

送信ノード110におけるメモリ12は、メモリ110−2である。受信ノード130におけるメモリ12は、メモリ130−2である。さらに、メモリ12は、プロセッサ11の動作により得られたデータや、プロセッサ11の処理に用いられるデータも、適宜、記憶する。

0063

送信ノード110におけるネットワーク接続装置19は、図4のNIC110−3であり、図1の送受信部112として動作する。受信ノード130におけるネットワーク接続装置19は、図4のNIC130−3である。ネットワーク接続装置19は、他の装置との通信に使用され動作する。入力装置13は、例えば、ボタンキーボードマウス等として実現され、出力装置14は、ディスプレイなどとして実現される。バス15は、プロセッサ11、メモリ12、入力装置13、出力装置14、外部記憶装置16、媒体駆動装置17、ネットワーク接続装置19の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置16は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ11などに提供する。媒体駆動装置17は、メモリ12や外部記憶装置16のデータを可搬記憶媒体18に出力することができ、また、可搬記憶媒体18からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体18は、フロッピイディスク、Magnet-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disc Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。

0064

ここで、ノード間演算装置403のハードウェア構成の例についても説明する。ノード間演算装置403は、プロセッサ11、メモリ12及びネットワーク接続装置19を備える。プロセッサ11は、演算部122として動作する。メモリ12は、プロセッサ11の動作により得られたデータや、プロセッサ11の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置19は、受信部121、送信部122として動作し、他の装置との通信に使用され動作する。

0065

図6は、送信ノードの処理の例を説明するフローチャートである。送信ノード110の処理部111は、自送信ノード110で異常があるか否かを判定する(ステップS101)。送信ノード110に異常がある場合(ステップS101でYES)、処理部111は、パラメータ201に0を設定する(ステップS102)。処理部111は、引数202にエラーコードと自送信ノード110の識別情報を対応づけた整数を設定する(ステップS103)。処理部111は、引数203と引数302にエラーコードと自送信ノード110の識別情報を対応づけた整数を設定する(ステップS104)。

0066

一方、送信ノード110に異常がない場合(ステップS101でNO)、処理部111は、パラメータ201に1を設定する(ステップS105)。処理部111は、引数202に0を設定する(ステップS106)。処理部111は、引数203と引数302に0を設定する(ステップS107)。

0067

送受信部112は、パラメータ201をAPIコマンドであるMPI_Allrecudeで全送信ノードに送信し、併せて他の送信ノード110のパラメータ201を受信する(ステップS108)。処理部111は、パラメータ201に基づいて、異常のある送信ノード110の個数が2個以下であるか否かを判定する(ステップS109)。

0068

異常のある送信ノード110が2個以下である場合(ステップS109でYES)、処理部111は、引数202を用いたMPI_Reduceを実行する(ステップS110)。ステップS110の処理で引数202が演算装置120に送信され、演算装置120は、加法(式1)によるリダクション処理を実行し、演算結果の係数を受信ノード130に送信する。続いて、処理部111は、引数203を用いたMPI_Reduceを実行する(ステップS111)。ステップS111の処理で引数203が演算装置120に送信され、演算装置120は、乗法(式2)によるリダクション処理を実行し、演算結果の係数を受信ノード130に送信する。ステップS111が終了すると、処理部111は、異常を通知する処理を終了する。

0069

異常のある送信ノード110が3個以上である場合(ステップS109でNO)、処理部111は、引数302に定数を加算する(ステップS112)。処理部111は、引数302に定数を加算した値を用いたMPI_Reduceを実行する(ステップS113)。ステップS113の処理で引数302に定数を加算した値が演算装置120に送信され、演算装置120は、乗法(式4〜6など)によるリダクション処理を実行し、演算結果の係数を受信ノード130に送信する。処理部111は、異常のある送信ノードの数だけ、ステップS112とステップS113の処理を実行したか否かを判定する(ステップS114)。異常のある送信ノードの数だけ処理が完了していない場合(ステップS114でNO)、処理部111は、ステップS112から処理を繰り返す。異常のある送信ノードの数分のステップS112とS113の処理を実行している場合(ステップS114でYES)、処理部111は、異常を通知する処理を終了する。

0070

図7は、受信ノードの処理の例を説明するフローチャートである。抽出部131は、パラメータ201をAPIコマンドであるMPI_Allrecudeで全送信ノードに送信し、併せて他の送信ノード110のパラメータ201を受信する(ステップS201)。抽出部131は、MPI_Reduceを実行し、乗法によるリダクションの結果を整数で取得する(ステップS202)。抽出部131は、異常のある送信ノード110の数分の整数(係数)を取得したか否かを判定する(ステップS203)。異常のある送信ノード110の数分の整数(係数)を取得していない場合(ステップS203でNO)、抽出部131は、処理をステップS202から繰り返す。

0071

異常のある送信ノード110の数分の整数(係数)を取得済みの場合(ステップS203でYES)、抽出部131は、異常のある送信ノードの数が2以下か否かを判定する(ステップS204)。異常のある送信ノードの数が2以下でない場合(ステップS204でNO)、抽出部131は、係数の値(N個)を用いた方程式の解からエラーコードと識別情報の対を表す整数を抽出する(ステップS205)。

0072

異常のある送信ノードの数が2以下である場合(ステップS204でYES)、抽出部131は、係数の値1と係数の値2が同じ値であるか否かを判定する(ステップS206)。係数の値1と値2が同じ値でない場合(ステップS206でNO)、抽出部131は、異常のある送信ノードが2つあると判定し、係数の値1と値2を用いた2次方程式の解からエラーコードと識別情報の対を表す整数を抽出する(ステップS207)。係数の値1と値2が同じ値である場合(ステップステップS206でYES)、ステップS205、ステップ207が終了すると、抽出部131は、整数からエラーコードと識別情報を抽出する(ステップS208)。

0073

なお、値1と値2が同じ値である場合(ステップS206でYES)は、異常のある送信ノードが1つの場合であるため、係数の値1及び値2のそれ自体が、エラーコード及び識別情報である。

0074

演算装置120から受信ノード130に送信される係数は、識別情報と状態情報の対である整数よりもデータ量が少ない。そのため、分散システムにおけるは、演算装置120と受信ノード130間の通信データ量を低減させることができる。

0075

110a〜110n送信ノード
120並列演算装置
121 受信部
122 処理部
123 送信部
130受信ノード
131 抽出部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ