JP6683726B2 - ビッグデータアプリケーションのためのマルチ・マルチ次元コンピュータアーキテクチャ - Google Patents

ビッグデータアプリケーションのためのマルチ・マルチ次元コンピュータアーキテクチャ Download PDF

Info

Publication number
JP6683726B2
JP6683726B2 JP2017548910A JP2017548910A JP6683726B2 JP 6683726 B2 JP6683726 B2 JP 6683726B2 JP 2017548910 A JP2017548910 A JP 2017548910A JP 2017548910 A JP2017548910 A JP 2017548910A JP 6683726 B2 JP6683726 B2 JP 6683726B2
Authority
JP
Japan
Prior art keywords
data
end interface
access
main processor
preprocessing
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.)
Active
Application number
JP2017548910A
Other languages
English (en)
Other versions
JP2018509716A (ja
Inventor
ヴァイザー,ウーリ
ホロヴィッツ,タル
ワン,ジンタン
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018509716A publication Critical patent/JP2018509716A/ja
Application granted granted Critical
Publication of JP6683726B2 publication Critical patent/JP6683726B2/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)

Description

本発明は、そのいくつかの実施例において、コンピュータ化装置に関し、排他的ではなく、より具体的には、データ処理アプリケーションを実行するためのコンピュータ化装置に関する。
現代のコンピュータシステムでは、データ処理アプリケーションは、標準的なコンピュータアーキテクチャを含むコンピュータシステム上で実行される。データ処理アプリケーションは、ビッグデータアプリケーションのように、より大きく且つ大きいデータセットを絶えず分析しているため、コンピュータシステムは、アプリケーション及び大きいデータセットのニーズを満たすために改善されている。ここで使用されるビッグデータという用語は、従来のデータ処理方法及びコンピュータを使用して処理するのに大きすぎるデータのいずれかの集合を意味する。例えば、テラバイトより大きいデータは、市場動向を決定するためにデータ処理アプリケーションにより分析される。ビッグデータアプリケーションを実行する典型的なコンピュータシステムは、64ギガバイトのランダムアクセスメモリを組み込んでもよい。
以下は、ビッグデータアプリケーションにおける従来のコンピュータ及びデータフローの説明である。現在のコンピュータコンポーネント及び相互接続の概略図である図1Aをここで参照する。メイン中央プロセッサ及び/又は処理ユニット111(CPU)は、ダイレクトメモリアクセス(DMA)インタフェース、フロントサイドバス等を使用して、コンピュータメモリ112を使用してデータ処理アプリケーションを実行する。ここで使用される処理ユニット及び/又はプロセッサという用語は、コンピュータ、コンピュータ化デバイス、コンピュータ化装置等のプロセッサを意味する。ここで使用される中央プロセッサという用語は、メインプロセッサ、中央処理装置、マルチコア中央プロセッサ等のように、コンピュータプログラムの命令を実行するメイン電子集積回路を意味する。CPU111は、ダイレクトメディアインタフェースを使用すること等によって、プラットフォーム入力及び/又は出力(IO)コントローラハブ113に接続される。例えば、CPUは、Intel(登録商標) Itanium(登録商標)プロセッサ、Intel(登録商標) Xeon(登録商標)プロセッサ、Advanced Micro Devices Opteron(登録商標)プロセッサ、IBM(登録商標) zEC12プロセッサ等である。プラットフォームIOコントローラハブ113は、ハードディスク、ネットワークインタフェース、キーボード、マウス等のようなコンピュータ周辺機器に接続される。
ビッグデータアプリケーションは、大量のデータをコンピュータメインメモリに記憶されるためにハードディスク及び/又はネットワークから転送し、前処理及び分析のためにメインメモリからCPUに転送する。
それぞれデータ整理ステップを示すデータ処理アプリケーションにおける標準的なデータフロー段階及び標準的な処理グラフの概略図である図1B及び図1Cをここで参照する。データフローアーキテクチャは、3つの段階、すなわち、数テラバイトのデータのようなビッグデータ406がリポジトリから受信されるIO段階403と、ビッグデータ406がメインメモリに記憶されるメモリ段階402と、前処理及び分析のためのCPU段階401とを含む。CPU段階401は、サイズで数メガバイトのデータセットのような、より小さいデータセット407を抽出するために、ビッグデータ406にフィルタ及び集約処理404を適用する。より小さいデータセット407は、メモリ段階402中にメモリに記憶される構造化されたデータセット及び/又は結果408を生成するために分析される405。構造化されたデータセット及び結果408は、更なる処理のためにIO段階中にユーザ及び/又はコンピュータデバイスに送信されてもよい。結果408は、再び前処理404A及び分析405Aされてもよく、数キロバイトのデータに低減されたデータセットサイズのような、より小さいデータセット408Aという結果になる。標準的なコンピュータアーキテクチャのCPUは、コンピュータメインメモリを使用して前処理及び処理の双方を実行する。
本発明の実施例の目的は、ビッグデータ処理アプリケーションを効率的に実行することである。この目的は、この出願の独立請求項により解決され、従属請求項は、更なる改善形式を保護する。
本発明のいくつかの実施例によれば、メインプロセッサに電子的に結合されたフロントエンドインタフェースを含むデータ処理装置が提供される。フロントエンドインタフェースは、リポジトリ、特に、外部ストレージ及び/又はネットワークに記憶されたデータを受信するように適合される。フロントエンドインタフェースは、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定するように適合される。フロントエンドインタフェースは、メインプロセッサによる処理のために複数アクセスデータをルーティングするように適合される。フロントエンドインタフェースは、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングするように適合される。
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの2つの受信の間の受信時間と、メインプロセッサによる同じデータの2つの要求の間の要求時間とのグループからのいずれかに基づく。
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの2つの受信及び/又は2つの要求の間の相対時間として測定される。
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの第2のアクセスの絶対時間として測定される。
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの2つのアクセスの間の異なるデータの数をカウントすることにより測定される。
任意選択で、単一アクセスデータは、アクセスパラメータを閾値と比較することにより決定される。
任意選択で、フロントエンドインタフェースは、ローカルメモリユニットにアクセスし、単一アクセスデータを前処理し及び/又は単一アクセスデータをローカルメモリユニットに記憶し、更なる処理のために前処理の結果をメインプロセッサにルーティングするように適合された1つ以上のローカルプロセッサを含む。
任意選択で、前処理は、単一アクセスデータの2つ以上のデータエレメントをフィルタリング及び集約するためのアプリケーション特有命令のグループを含む。
任意選択で、フロントエンドインタフェースの1つ以上のローカルプロセッサは、前処理命令転送モジュールを組み込み、前処理命令転送モジュールは、メインプロセッサからアプリケーション特有命令のグループを受信し、アプリケーション特有命令のグループを1つ以上のプロセッサの機械言語に変換し、前処理を実行するために1つ以上のプロセッサ上で機械言語を実行するように構成される。
任意選択で、フロントエンドインタフェースは、メインプロセッサにルーティングされる前に結果の少なくともいくつかの要素を記憶するための一時メモリユニットを含む。
任意選択で、一時メモリユニット内でアドレス指定されるメモリ記憶は、メインプロセッサのメインメモリの記憶アドレスにマッピングされる。
任意選択で、フロントエンドインタフェースは、メインプロセッサからのメインプロセッサ出力を受信し、単一アクセスデータを前処理するためにメインプロセッサ出力を使用するように適合される。
任意選択で、ローカルプロセッサ命令は、前処理を実行するためにメインプロセッサを動作するように構成されたオペレーティングシステムに組み込まれたデバイスドライバにより生成される。
本発明のいくつかの実施例によれば、リポジトリ、特に、外部ストレージ及び/又はネットワークに記憶されたデータを受信する動作を含む方法が提供される。この方法は、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定する動作を含む。この方法は、メインプロセッサによる処理のために複数アクセスデータをルーティングする動作を含む。この方法は、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングする動作を含む。
本発明のいくつかの実施例によれば、コンピュータ読み取り可能記憶媒体を含むコンピュータプログラムプロダクトが提供される。コンピュータ読み取り可能記憶媒体は、リポジトリ、特に、外部ストレージ及び/又はネットワークに記憶されたデータを受信するようにプロセッサにより実行可能な第1のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定するようにプロセッサにより実行可能な第2のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、メインプロセッサによる処理のために複数アクセスデータをルーティングするようにプロセッサにより実行可能な第3のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングするようにプロセッサにより実行可能な第4のプログラム命令をその上に符号化している。
別に定義されていない限り、ここで使用される全ての技術的及び/又は科学的用語は、本発明が関係する当業者により一般的に理解されるものと同じ意味を有する。ここに記載のものと同様又は等価な方法及び材料が本発明の実施例の実施又はテストにおいて使用されることができるが、例示的な方法及び/又は材料が以下に記載される。矛盾の場合には、定義を含み、特許明細書が支配する。さらに、材料、方法及び例は例示のみであり、必ずしも限定的であることを意図するものではない。
本発明の実施例の方法及び/システムの実現は、選択されたタスクを手動、自動又はこれらの組み合わせで実行又は完了することを伴ってもよい。さらに、本発明の方法及び/又はシステムの実施例の実際の器具及び機器に従って、複数の選択されたタスクは、ハードウェアにより、ソフトウェアにより、或いはファームウェアにより、或いはオペレーティングシステムを使用してこれらの組み合わせにより実現され得る。
例えば、本発明の実施例に従って選択されたタスクを実行するためのハードウェアは、チップ又は回路として実現され得る。ソフトウェアとして、本発明の実施例による選択されたタスクは、いずれか適切なオペレーティングシステムを使用してコンピュータにより実行される複数のソフトウェア命令として実現されてもよい。本発明の例示的な実施例では、ここに記載の方法及び/又はシステムの例示的な実施例による1つ以上のタスクは、複数の命令を実行するためのコンピューティングプラットフォームのようなデータプロセッサにより実行される。任意選択で、データプロセッサは、命令及び/又はデータを記憶するための揮発性メモリ、及び/又は命令及び/データを記憶するための不揮発性メモリ、例えば、磁気ハードディスク及び/又は取り外し可能媒体を含む。任意選択で、ネットワーク接続も同様に提供される。ディスプレイ及び/又はキーボード若しくはマウスのようなユーザ入力デバイスも同様に任意選択で提供される。
本発明のいくつかの実施例が、添付図面を参照して、例のみとしてここに記載される。ここで特に図面を詳細に参照すると、図示する特定のものは、例としてのものであり、本発明の例示的な説明の目的のためのものである。これに関して、図面と共に挙げられる説明は、本発明の実施例がどのように実施され得るかを当業者に明らかにする。
標準的なコンピュータコンポーネント及び相互接続の概略図である。 データ整理ステップを示すデータ処理アプリケーションにおける標準的なデータフロー段階の概略図である。 データ整理ステップを示すデータ処理アプリケーションにおける標準的な処理グラフの概略図である。 本発明のいくつかの実施例による、データ前処理を実行するためのフロントエンドインタフェースを示すデータ処理装置の概略図である。 本発明のいくつかの実施例による、データ前処理を実行するための単一のメモリコントローラを備えたフロントエンドインタフェースを示すデータ処理装置の概略図である。 本発明のいくつかの実施例による、データ前処理を実行するための2つのメモリコントローラを備えたフロントエンドインタフェースを示すデータ処理装置の概略図である。 本発明のいくつかの実施例による、フロントエンドインタフェース上でデータ前処理を実行するための方法のフローチャートである。 本発明のいくつかの実施例による、フロントエンドインタフェースを組み込んだデータ処理アプリケーションにおけるデータフロー段階の概略図である。
本発明は、そのいくつかの実施例において、コンピュータ化装置に関し、排他的ではなく、より具体的には、データ処理アプリケーションを実行するためのコンピュータ化装置に関する。
サーバ及びワークステーションのような標準的なコンピュータは、数テラバイトの入力データを用いてデータ処理アプリケーションを実行するために使用され、典型的には数10ギガバイトのメモリのみを有する。コンピュータは、仮想メモリ、メモリページスワッピング等を使用すること等によって、バッチで入力データをコンピュータメモリに移動させることにより、数テラバイトの入力データを前処理するようにデータ処理アプリケーションを実行する。プロセッサは、データ処理アプリケーション命令に従って、メモリから入力データバッチを取得し、フィルタリング及び集約のような前処理を実行する。全ての入力データが前処理された場合、プロセッサは分析を実行する。メインプロセッサは、高電力プロセッサでもよく、単一アクセスデータのように、データのいくつかは、まれに或いは1回のみ使用されるため、前処理のために大量のデータをメインプロセッサに転送することによって、かなりの電力消費オーバーヘッドが存在する。したがって、現在のコンピュータにおけるデータ処理アプリケーションの性能は、処理速度と、メモリへのデータ転送レート及びメモリからのデータ転送レートとの双方により制限される。速度及び転送レートは、データ処理アプリケーションを実行するコンピューティングデバイスのエネルギー消費を引き起こす。メイン中央プロセッサ及び/又は処理ユニット(CPU)アーキテクチャとシリコン技術とにおける進歩によって、前処理及び分析のためのCPUへのデータ移動は、ビッグデータアプリケーションのエネルギー消費及び性能に影響を与える主要な要因になっている。ここで使用されるビッグデータアプリケーションという用語は、数百ギガバイトより大きいデータを入力として使用するデータ処理アプリケーションを意味してもよい。
現在の解決策は、コンピュータコンポーネントの間のデータフローアーキテクチャを変更することなく、命令当たりのCPUエネルギー消費を最小化することに着目している。例えば、ダブルデータレート第4世代シンクロナス・ダイナミック・ランダムアクセスメモリ(DDR4)のような新たなメモリインタフェースの設計は、データ移動当たりのエネルギー消費を低減するが、CPUに転送されるますますより大量のデータは、ますますより高いエネルギー消費レートという結果になる。
メモリ及びCPUチップのような集積回路の間でデータを移動させるエネルギー消費は、計算タスクに必要なエネルギーと同じレートで増加しない。増え続ける入力データサイズを有するデータ処理アプリケーションは、現在の解決策では、ビッグデータアプリケーションにより要求される入力データのサイズに対して増加することができないという結果になる。数テラバイトを数ギガバイトに低減するための入力データの初期の前処理のためにデータをCPUに転送する電力消費オーバーヘッドは、データ処理アプリケーションの性能における制限要因になっている。例えば、これは、ビッグデータアプリケーションの処理速度の制限要因としてのコンピューティングデバイス及び/又はCPUの熱設計電力のように、処理中のボトルネックという結果になる。エネルギー消費も、データ処理アプリケーションのコンピューティング装置の動作におけるかなりの犠牲である。
本発明のいくつかの実施例によれば、1つ以上のローカルプロセッサを含むフロントエンドインタフェースは、データ処理アプリケーションへの入力として使用されるデータエレメント毎に、入力データのアクセス順序に従ってデータエレメントが単一アクセスデータエレメントであるか複数アクセスデータエレメントであるかを決定する。単一アクセスデータより頻繁にアクセスされ得る複数アクセスデータは、メインコンピュータメモリ内への記憶のために、フロントエンドインタフェースによりCPUにルーティングされ、単一アクセスデータは、1つ以上のローカルプロセッサによる前処理のために、フロントエンドインタフェースにルーティングされる。フロントエンドインタフェースにおける入力データの前処理部は、単一アクセスデータをCPUに転送する電力消費オーバーヘッドを回避し、ビッグデータアプリケーションの処理ボトルネックを克服し、ビッグデータアプリケーションを実行するコンピュータのエネルギー消費を低減する。
フロントエンドインタフェースは、その同じデータエレメントへの繰り返しアクセスを見つけ、2つの繰り返しの間の他のデータエレメントのアクセスに基づく値を計算することにより、入力データのデータエレメント毎のアクセスパラメータ値を計算する。アクセスパラメータは、同じデータエレメントへの繰り返しのアクセスの間のアクセスの総数をカウントすること、同じデータエレメントへの異なるアクセスの総数、同じデータエレメントへのアクセスの間の時間等をカウントすることにより計算されてもよい。データアクセスは、データエレメントの要求のシーケンス、前処理のために受信したデータエレメントのシーケンス、データアクセス要求のストリーム、データのストリーム等でもよい。1つ以上のローカルプロセッサは、一回のみ使用される単一アクセスデータ及び/又はまれに必要な単一アクセスデータを前処理し、したがって、単一アクセスデータをCPU及びメインメモリに送信することに比べてエネルギー消費オーバーヘッドを節約する。
例えば、100メガバイトのメモリを備えたコンピュータは、テラバイトの入力データを用いてデータ処理アプリケーションを実行している。この例では、フロントエンドインタフェースは、アプリケーションの入力データアクセスから、第1のデータエレメントがアクセスシーケンスにおいて200メガバイトのダウンストリームに2回アクセスされたと決定する。第1のデータエレメントがフロントエンドインタフェースなしにコンピュータにより前処理される場合、第1のデータエレメントは、最初のアクセスのためにメモリに記憶され、仮想メモリ技術を使用すること等によって、100メガバイトのメインメモリが一杯になった後にページングファイルにスワッピングされ、2回目のアクセスのためにメインメモリにスワッピングで戻される。第1のデータエレメントが単一アクセスエレメントであると決定し、前処理のために第1のデータエレメントをフロントエンドインタフェースにルーティングすることにより、電力消費が低減されることができる。例えば、データエレメントの各転送は、メインコンピュータメモリについての1ピコジュールのエネルギーと、フロントエンドインタフェースについての半ピコジュールとを必要とする。CPUによる第1のデータエレメントの前処理は、3つの転送について3ピコジュールのエネルギーを消費し、フロントエンドインタフェースにより2つの転送について1ピコジュールのエネルギーを消費する。この例では、同じデータエレメントへの2つのアクセスの間の入力データの量としてアクセスパラメータ値を計算し、各エレメントのパラメータ値を利用可能なコンピュータメインメモリに基づく値と比較することにより、電力消費が低減される。
本発明のいくつかの実施例によれば、データ処理装置によるデータ処理アプリケーションの実行中の電力消費を低減するために、1つ以上のローカルプロセッサを含むフロントエンドインタフェースを組み込むための方法及び装置が提供される。ここで使用されるフロントエンドインタフェースという用語は、スモールプロセッサコアとメモリと1つ以上の入力/出力インタフェースとを含んでもよいデータ処理装置に組み込まれた入力及び/又は出力段階のデータ前処理デバイスを意味する。フロントエンドインタフェースは、アクセスされるデータエレメント毎に、データエレメントがアクセスシーケンスから計算されたパラメータ値に従って単一アクセスデータエレメントであるか複数アクセスデータエレメントであるかを決定する。フロントエンドインタフェースは、CPUによる分析の前に、数テラバイトのデータのような大量の単一アクセスデータを前処理し、したがって、CPUに転送されるデータの量と、CPU及び/又はコンピュータのエネルギー消費とを低減する。
単一アクセスデータは、フロントエンドインタフェースの1つ以上のローカルプロセッサにルーティングされ、1つ以上のローカルプロセッサにより前処理される。結果は、メモリキャッシュのようなローカルメモリユニットに記憶されてもよい。フロントエンドインタフェースは、メインメモリ内への記憶のために前処理結果をCPUにルーティングし、データ分析は、メインCPUにより続けられる。フロントエンドインタフェースによる更なる前処理のために入力データ及び/又は分析結果が必要である場合、これらは、フロントエンドインタフェースに取り付けられてCPUによりアクセス可能なメモリユニットに記憶されてもよい。
単一アクセスデータは、いずれかの種類のアプリケーションに存在してもよい。例えば、ビッグデータアプリケーションでは、大きい割合の入力データは、単一アクセスデータである。
フロントエンドインタフェースは、大量のデータをCPU及び/又はメインメモリに転送することなく、入力データのフィルタリング及び集約のようなビッグデータアプリケーションの前処理段階を実行する。フロントエンドインタフェースにより実行された前処理の結果は、入力データよりかなり小さく、CPUによる分析のためにメインメモリに転送される。
任意選択で、フロントエンドインタフェースは、CPUから入力データの要求を受信する1つ以上のメモリコントローラを含んでもよく、及び/又はハードディスク若しくはネットワークインタフェースから対応する入力データを受信する。メモリコントローラは、要求されたシーケンス及び/又は受信したシーケンスに基づいて各入力データエレメントのアクセスパラメータ値を計算してもよく、単一アクセスデータ及び複数アクセスデータのようなアクセスタイプに従ってデータをルーティングしてもよい。メモリコントローラは、CPUメインメモリとのメモリアドレスのマッピングを調整してもよい。
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の絶対時間である。例えば、データエレメントが5秒に1回のみアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の相対時間である。例えば、相対時間は、時系列のような発生順にイベントを配置し、時系列におけるイベントの発生をカウントすることにより決定される。例えば、データエレメントが1000万個のデータエレメント内で1回のみアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の異なるデータエレメントの個数である。例えば、同じデータエレメントの2つのアクセスの間に再利用距離のような300万個のデータエレメントがある場合、データエレメントは、単一アクセスデータエレメントであると決定される。
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の異なるデータエレメントの合計サイズの尺度である。例えば、同じデータエレメントの2つのアクセスの間に10ギガバイトの異なるデータエレメントがアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
任意選択で、アクセスパラメータ値は、データエレメントが単一アクセスデータエレメントであると決定するために、固定の閾値と比較される。
任意選択で、アクセスパラメータ値は、動的な閾値と比較され、動的な閾値は、データ処理装置のリソース可用性に基づいて計算される。例えば、動的な閾値は、熱設計電力をデータ処理装置の瞬時電力消費と比較することに基づいて計算される。例えば、動的な閾値は、データ処理装置の瞬時の利用可能なメモリに基づいて計算される。
任意選択で、アクセスパラメータ値と比較するルーティング閾値は、データ処理装置の電力消費を最小化するために動的に調整される。例えば、瞬時電力消費値は、コンピュータの電源から受信され、ルーティング閾値は、瞬時電力消費値を下げるように動的に調整される。
任意選択で、入力データは、入力データを処理するために必要なエネルギー消費のコスト関数を最適化することに基づいて、フロントエンドインタフェースにおける前処理のために選択される。例えば、コスト関数は、23.7億個のデータエレメントの再利用距離がフロントエンドインタフェースを使用して入力データを処理するためにデータを選択する際に使用する最適な再利用距離であると決定する。この例では、23.7億の閾値より大きい再利用距離を有するデータエレメントは、単一アクセスデータエレメントであると考えられ、フロントエンドインタフェースにより前処理される。
前処理のためにフロントエンドインタフェースを使用する利点は、コンピューティングデバイス及び/又はCPUのエネルギー消費におけるかなりの低減を含む。例えば、フロントエンドインタフェースは、単一アクセスデータを前処理し、CPUによりこのデータの全ての前処理を実行することに比べて50%より大きいエネルギー消費を低減する。
本発明の少なくとも1つの実施例を詳細に説明する前に、本発明は、以下の説明において述べ、及び/又は図面及び/又は例に示すコンポーネント及び方法の構成及び配置の詳細へのその適用に必ずしも限定されないことが理解されるべきである。本発明は、他の実施例も可能であり、或いは様々な方法で実施又は実行されることが可能である。
本発明は、システム、装置、デバイス、処理及び/又は方法でもよい。
本発明の態様は、本発明の実施例による方法、装置及びシステムのフローチャート図及び/又はブロック図を参照してここに記載される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ読み取り可能プログラム命令により実現されることができることが理解される。
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びデバイスの可能な実現のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定の論理機能を実現するための1つ以上のアクションを含む命令のモジュール、セグメント又は部分を表してもよい。いくつかの別の実現では、ブロックに示す機能は、図面に示す順序通りでなく生じてもよい。例えば、関与する機能に応じて、連続して示す2つのブロックは、実際には実質的に同時に実行されてもよく、或いはこれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定の機能又は動作を実行するか、或いは特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェアに基づくシステムにより実現されることができる点にも留意すべきである。
本発明のいくつかの実施例による、データ前処理を実行するためのフロントエンドインタフェースを示すデータ処理装置の概略図である図2A、図2B及び図2Cをここで参照する。データ処理装置100は、データエレメントを分析するためのメイン中央プロセッサ及び/又は処理ユニット(CPU)111と、リポジトリからデータエレメントの入来シーケンス及び/又はストリームを受信するためのコントローラハブ113とを含む。データエレメントは、内蔵及び/又は外部ハードディスクのような、ネットワークリポジトリインタフェース121を通じてアクセスされる遠隔リポジトリのローカルリポジトリ122から送信される。本発明のいくつかの実施例によれば、データ処理装置100は、CPU111からのデータエレメント要求のシーケンス及び/又はデータストリーム、及び/又はコントローラハブ113を介して1つ以上のリポジトリからの対応するデータエレメントを受信するように適合されたフロントエンドインタフェース101を含む。フロントエンドインタフェース101は、受信したデータエレメント及び/又は要求されたデータエレメントのようなデータアクセスに基づいて、各データエレメントが複数アクセスデータに属するか、単一アクセスデータに属するかを決定する。複数アクセスデータエレメントは、メインメモリ112内への記憶のためにCPU111にルーティングされ、単一アクセスデータエレメントは、1つ以上のローカルプロセッサ106による前処理のためにフロントエンドインタフェースによりルーティングされる。単一アクセスデータエレメントは、前処理の前及び/又は後に、ローカルメモリユニット104及び/又はフロントエンド一時メモリ114に記憶されてもよい。例えば、フロントエンドインタフェース101は、前処理結果が分析のためにCPU111に送信されるか、及び/又はフロントエンドインタフェース101による将来の使用のためにフロントエンド一時メモリ114に記憶されるかを決定する。CPU111が分析のために必要な全てのデータエレメントをメインメモリ112に受信した場合、CPU111は、分析を実行し、分析結果をメインコンピュータメモリ112に記憶する。フロントエンドインタフェース101は、入来データエレメントの更なる前処理のためにCPU段階から来るデータ分析結果を受信してもよい。例えば、機械学習アプリケーションは、新たな入来データエレメントの前処理中に、フロントエンド一時メモリ114に記憶された以前に分析された結果を使用する。
任意選択で、フロントエンドインタフェースは、データエレメントをルーティングし、キャッシュメモリのようなローカルメモリユニット104にアクセスし、フロントエンド一時メモリ114にアクセスするために、メモリコントローラ108を使用する。
任意選択で、データエレメントをルーティングし、キャッシュメモリのようなローカルメモリユニット104にアクセスし、フロントエンド一時メモリ114にアクセスするために、フロントエンドインタフェースは、IOメモリコントローラ105及びCPUメモリコントローラ103のような2つ以上のメモリコントローラを使用する。例えば、IOメモリコントローラ105は、コントローラハブ113から受信したデータエレメントをルーティングするように適合され、CPUメモリコントローラ103は、CPUへ及び/又はCPUからのデータエレメントをルーティングするように適合される。
IOメモリコントローラ105、CPUメモリコントローラ103及び単一のメモリコントローラ108は、フロントエンドインタフェース101の入力/出力インタフェース107を介してデータエレメント及び/又はデータエレメントの要求を転送する。例えば、入力/出力インタフェース107は、ダイレクトメモリアクセスインタフェース、ダイレクトメディアインタフェース、システムバスインタフェース等である。例えば、IOメモリコントローラ105、CPUメモリコントローラ103又は単一のメモリコントローラ108は、単一アクセスデータエレメント又は複数アクセスデータエレメントであるデータエレメントを決定する。
単一アクセスデータエレメントのフロントエンドインタフェース101による前処理は、メインCPUメモリ112へのデータエレメント転送の数を低減し、したがって、データ処理装置100のエネルギー消費を低減する。例えば、ローカルメモリユニット104及び/又はフロントエンド一時メモリ114に送信されるデータエレメントは、CPU111及び/又はメインメモリコントローラを通過せず、装置100の全体電力消費を低減する。
フロントエンドインタフェース101に接続されたフロントエンド一時メモリ114は、メインCPUメモリ112と異なるが、メインメモリ112と同じメモリアドレス空間にマッピングされてもよい。フロントエンド一時メモリ114の記憶アドレスをCPUメインメモリ112のアドレス空間にマッピングすることにより、分析結果データセットは、CPU111及び/又はフロントエンドインタフェース101による更なる処理のために使用されてもよい。
本発明のいくつかの実施例による、フロントエンドインタフェース上でデータ前処理を実行するための方法のフローチャートである図3をここで参照する。CPU111は、データ処理アプリケーションを実行し201、データエレメントのアクセス要求のシーケンスのような分析に必要なデータを要求する202。CPU111は、前処理命令をフロントエンドインタフェース101に送信してもよい211。データアクセス要求は、ハードディスク122又はネットワークインタフェース121を使用したネットワークリポジトリのようなリポジトリから要求されたデータを取得203するIOコントローラハブ113により受信される。データアクセス要求は、各データエレメントが単一アクセスデータエレメントであるか、複数アクセスデータエレメントであるかを決定するために、フロントエンドインタフェース101により受信されてもよい221。フロントエンドインタフェース101は、単一アクセスデータエレメント又は複数アクセスデータエレメントのようなデータエレメントのアクセスタイプを決定するために、受信したデータエレメント要求及び/又はデータエレメント毎にアクセスパラメータを計算する222。アクセスパラメータ値をルーティング閾値と比較することにより223、フロントエンドインタフェース101は、要求されたデータエレメントが単一アクセスエレメントであるか、複数アクセスエレメントであるかを決定する。コントローラハブ113は、要求されたデータエレメントを、単一アクセスデータエレメント及び複数アクセスデータエレメントのような決定されたデータアクセスタイプに従ってデータエレメントをルーティングするフロントエンドインタフェース101に送信する。複数アクセスデータエレメントは、メインメモリ112内への記憶のためにCPU111にルーティングされる。単一アクセスデータエレメントは、フロントエンドインタフェース101による前処理のために224、ローカルメモリユニット104及び/又はフロントエンド一時メモリ114にルーティングされる。フロントエンドインタフェース101のローカルプロセッサ106は、前処理結果を生成するために、単一アクセスデータエレメントをフィルタリング及び集約することのように、単一アクセスデータエレメントを前処理する224。前処理結果は、フロントエンドインタフェースによりフロントエンド一時メモリ114、ローカルメモリ104に記憶され、及び/又はメインメモリ112に記憶される204。CPU111は、データを分析し206、ネットワークインタフェース121を使用すること等によってリポジトリに、及び/又はローカルハードディスクに、及び/又は新たなデータエレメントの更なる前処理のためにフロントエンド一時メモリ114に結果を送信する207。
アクセスパラメータ値が同じデータエレメントのアクセスの間の絶対時間である場合、フロントエンドインタフェース101は、データエレメント要求の間の推定時間を計算し、受信したデータエレメントの間の時間を測定すること等を行う。例えば、各データエレメントが初めて前処理のためにフロントエンドインタフェース101により受信された場合、データエレメント毎にタイマが開始される。例えば、データエレメントが5秒後に2回前処理のためにフロントエンドインタフェース101により受信され、複数アクセス閾値が4秒である場合、データエレメントは、単一アクセスデータエレメントであると決定される。この例では、データエレメントが2回受信されると、データエレメントは、前処理及び/又は分析のためにフロントエンドインタフェース101によりCPU111に送信される。例えば、データエレメント要求のシーケンスは、受信されるデータエレメントの受信時間を推定するためにフロントエンドインタフェース101により分析される。この例では、フロントエンドインタフェース101は、データエレメントの2回目のアクセスが2分後であると計算し、複数アクセス閾値が30秒である場合、フロントエンドインタフェース101は、データエレメントが単一アクセスデータエレメントであると決定する。この例では、単一アクセスデータエレメントの双方の受信は、フロントエンドインタフェース101によりルーティングされて前処理される。
アクセスパラメータ値が同じデータエレメントのアクセスの間の相対時間である場合、データエレメント要求及び/又はデータエレメント受信のシーケンスは、同じデータエレメントへのアクセスの間のデータエレメントの総数のカウントに従ってフロントエンドインタフェース101により分析されてもよい。例えば、データエレメントが1000万アクセスにおいて1回のみアクセスされ、単一アクセスのための閾値が500万アクセスである場合、データエレメントは、フロントエンドインタフェース101により単一アクセスデータエレメントであると決定される。この例では、データエレメント毎に、データエレメントの最初のアクセスのときにカウンタが開始され、アクセスされるその後のデータエレメント毎に、カウンタタイプに従ってインクリメント及び/又はデクリメントされる。カウンタが、カウントダウンカウンタについてのゼロのような閾値に到達した場合、データエレメントは、フロントエンドインタフェース101により単一アクセスであると決定される。カウンタが閾値に到達する前に同じデータエレメントが2回アクセスされた場合、データエレメントは、フロントエンドインタフェース101により複数アクセスデータエレメントであると決定され、CPU111にルーティングされる。ここで使用されるアクセスという用語は、データエレメントの要求が要求のシーケンスにあるか、或いはデータエレメントがフロントエンドインタフェース101によるストリーム内のようなシーケンス内で受信されることを意味する。
アクセスパラメータ値が同じデータエレメントのアクセスの間の再利用距離である場合、データエレメント要求及び/又はデータエレメント受信のシーケンスは、同じデータエレメントへのアクセスの間の異なるデータエレメントの総数のカウントに従ってフロントエンドインタフェース101により分析されてもよい。単一アクセスデータエレメントは、CPUメインメモリ及び/又はCPUキャッシュメモリのような物理メモリリソースのサイズより大きい再利用距離を有するデータエレメントでもよく、したがって、メモリページスワップを最小化し、電力消費を低減する。Ding他により技術報告書UR-CS-TR-741に公開された「Reuse Distance Analysis」,Computer Science Department, University of Rochester, Rochester, New York, 2001年2月に記載のように、再利用距離は、同じ入力データエレメントの2つの連続するアクセスの間にアクセスされる固有の入力データエレメントの数として定義される。
例えば、データエレメントが400万の異なるデータエレメントのアクセスにおいて1回のみアクセスされ、単一アクセスのための閾値が固有のデータエレメントへの200万アクセスである場合、データエレメントは、フロントエンドインタフェース101により単一アクセスデータエレメントであると決定される。この例では、データエレメント毎に、データエレメントの最初のアクセスのときにカウンタが開始され、アクセスされるその後の固有のデータエレメント毎に、カウンタタイプに従ってインクリメント及び/又はデクリメントされる。例えば、データエレメントにアクセスする要求のシーケンスは、固有のデータエレメント毎に再利用距離を計算するために分析され、特定のデータエレメントの再利用距離がルーティング閾値より上である場合、データエレメントは、単一アクセスデータエレメントであると決定される。
任意選択で、フロントエンドインタフェース101のローカルメモリユニット104は、読み取り及び/又は書き込みアクセスのためにローカルプロセッサ106によりアクセスされるキャッシュメモリである。例えば、ローカルメモリユニットは、高速スタティック・ランダムアクセスメモリ(SRAM)である。ローカルメモリユニット104は、データをフロントエンド一時メモリ114に記憶するために及び/又はデータをメインCPUメモリ112に転送するために、DMAインタフェースを使用して、CPUメモリコントローラ103、IOメモリコントローラ105及び/又はメモリコントローラ108によりアクセスされてもよい。
フロントエンドインタフェース101のローカルプロセッサ106は、分析のためにCPUに転送する前に、データエレメントのフィルタリング及び集約を実行する1つ以上のアプリケーション特有処理コアである。例えば、ローカルプロセッサ106は、Acorn RISC Machine(ARM)プロセッサのような縮小命令セットコンピューティング(RISC)プロセッサであり、フロントエンドインタフェース101の集積回路に組み込まれる。例えば、ローカルプロセッサは、プリント回路基板に組み込まれた、Intel(登録商標) Atom(登録商標)プロセッサのような複雑命令セットコンピューティング(CISC)プロセッサである。
フロントエンドローカルプロセッサとして本発明の実施例を実現するために選択された処理コアは、任意選択でソフトウェアモジュールを使用して、メインCPU111からフロントエンドインタフェース101のローカルプロセッサ106への前処理命令の変換に影響を与える。任意選択で、処理コアの選択は、処理コアの特定の種類又はブランドに限定されない。同様に、メイン装置100のCPU111の製造及びモデルは、プロセッサの特定の製造及びモデルに限定されない。
任意選択で、本発明のいくつかの実施例では、フロントエンドインタフェース101は、フロントエンドインタフェース101の動作及び/又は前処理を可能にするためのプロセッサ命令を受信するソフトウェアモジュールを更に含む。例えば、コンピュータプログラミング言語コードを含むテキストファイルがコンパイラによりコンパイルされ、コンパイラは、フロントエンドインタフェース101上で実行される前処理を可能にするための機能を含むソフトウェアモジュールライブラリを含む。これらの機能は、前処理プロセッサ命令をメインCPU111の機械言語からローカルプロセッサ106の機械言語に移すための移植機能でもよい。例えば、前処理命令の移植は、CISC命令セットからRISC命令セットに実行されてもよい。例えば、データ処理アプリケーションの生成中に、前処理命令は、ローカルプロセッサ106により使用されるRISCプロセッサ命令セットに、コンパイラにより直接コンパイルされる。任意選択で、コンピュータのオペレーティングシステムにインストールされたデバイスドライバは、前処理命令及びフロントエンドインタフェース101の動作命令を制御する。例えば、アクセスパラメータタイプのような動作命令は、フロントエンドインタフェース101の動作を変更するデバイスドライバを通じて変更される。例えば、デバイスドライバは、瞬時電力消費を下げるための動的なルーティング閾値調整を選択するためのユーザインタフェースを有する。例えば、デバイスドライバは、絶対時間、相対時間、再利用距離、メモリサイズ等のようなアクセスパラメータタイプを選択するためのユーザインタフェースを有する。
データ処理アプリケーションの単一アクセスデータを前処理するためのフロントエンドインタフェース101の実施例は、様々な技術的手段でデータ処理装置100に電子的且つデジタル的に組み込まれてもよい。例えば、フロントエンドインタフェース101は、既存のCPU111及びチップセットに加えてコンピュータマザーボード上に組み込まれる、チップセットのような集積回路のIO段階グループとして具現される。例えば、フロントエンドインタフェース101は、Intel(登録商標)モデルDH82Z97 PCH集積回路に基づくチップセットに組み込まれる。例えば、フロントエンドインタフェースは、既存のコンピュータマザーボードにアドオンカードとして取り付けられるプリント回路基板に組み込まれ、デバイスドライバは、システムバスを使用してデータを転送するために使用される。例えば、フロントエンドインタフェースは、個別のコンポーネント及び特化した集積回路としてマザーボードに組み込まれる。例えば、フロントエンドインタフェースは、コンピュータマザーボードに追加される単一の集積回路に組み込まれる。例えば、フロントエンドインタフェースは、システム・オン・チップ・プロダクトとして実現される。
任意選択で、フロントエンドインタフェース101は、業界標準コンピュータインタフェース及び製造技術を使用して集積回路及び/又はプリント回路基板に電子的且つデジタル的に組み込まれる。例えば、フロントエンドインタフェース101は、16レーンのペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe x16)拡張バスインタフェースを備えたアドオン回路基板である。
IO段階におけるデータの前処理は、データ分析のためのメモリ割り当てリソースを低減してもよく、CPUキャッシュメモリ汚染を低減してもよく、データ処理装置の全体性能を増加させる。さらに、本発明の実施例は、データのサイズと共にうまくスケーリングし、エネルギー節約は、入力データサイズの増加と共に増加する。
以下は、データ処理アプリケーションのデータ整理の利点の例を与える概略説明である。本発明のいくつかの実施例による、フロントエンドインタフェース101を組み込んだデータ処理アプリケーションにおけるデータフロー段階の概略図である図4をここで参照する。データ処理のIO段階403は、データ入力段階403の一部としての前処理404を実行し、大量の入力データ406を、メモリ段階402に転送されるより小さい量の入力データ407に低減する、フロントエンドエンジンのようなフロントエンドインタフェース101を組み込む。したがって、メモリ段階は、大量の入力データを転送及び記憶するために使用されるかなりの量のエネルギーを節約する。CPU段階401もまた、分析405のためにより小さい量の入力データ407をプロセッサに転送する際に、かなりの量のエネルギーを節約する。データ分析結果及び/又は出力順序結果のデータセット408は、メモリ段階402中にメモリに記憶されてもよく、及び/又はIO段階403においてリポジトリ及び/又は第2のコンピュータ化デバイスに送信されてもよい。
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びデバイスの可能な実現のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定の論理機能を実現するための1つ以上の実行可能命令を含むコードのモジュール、セグメント又は部分を表してもよい。いくつかの別の実現では、ブロックに示す機能は、図面に示す順序通りでなく生じてもよい点にも留意すべきである。例えば、関与する機能に応じて、連続して示す2つのブロックは、実際には実質的に同時に実行されてもよく、或いはこれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定の機能若しくは動作、又は特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェアに基づくシステムにより実現されることができる点にも留意すべきである。
本発明の様々な実施例の説明は、例示の目的で提示されており、網羅的であること又は開示される実施例に限定されることを意図するものではない。多くの変更及び変化は、記載の実施例の範囲及び精神から逸脱することなく、当業者に明らかになる。ここで使用される用語は、実施例の原理、実際の用途又は市場にある技術に対する技術的改善を最も良く説明するために、或いは他の当業者がここに開示される実施例を理解することを可能にするために選択されている。
この出願から成熟する特許の存続期間中に、多くの関係する処理コアが開発されることが想定され、ローカル処理という用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
この出願から成熟する特許の存続期間中に、多くの関係する中央プロセッサ及び/又は処理ユニットが開発されることが想定され、中央プロセッサ及び/又は処理ユニットという用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
この出願から成熟する特許の存続期間中に、多くの関係するデータ処理アプリケーションが開発されることが想定され、データ処理アプリケーションという用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
ここで使用される「約」という用語は、±10%を示す。
「含む」、「含んでいる」、「包含する」、「包含している」、「有する」という用語及びこれらの活用形は、「含むが、限定されない」ことを意味する。この用語は、「からなる」及び「から本質的になる」という用語を包含する。
「から本質的になる」という語句は、合成物又は方法が更なる成分及び/又はステップを含んでもよいが、更なる成分及び/又はステップが特許請求の範囲の合成物又は方法の基本的且つ新規な特徴を実質的に変更しない場合に限られることを意味する。
ここで使用される単数形である「1つ」及び「前記」は、文脈が明らかにそうでないと決めない限り、複数への参照を含む。例えば、「合成物」又は「少なくとも1つの合成物」という用語は、複数の合成物の混合を含み、複数の合成物を含んでもよい。
「例示的」という語句は、「例、事例又は例示としての役目をすること」を意味するためにここで使用される。「例示的」として記載したいずれかの実施例は、必ずしも、他の実施例よりも好ましい或いは有利であるとして解釈されるべきでなく、及び/又は他の実施例からの特徴の組み込みを除外するものではない。
「任意選択」という語句は、「いくつかの実施例において提供され、他の実施例において提供されない」ことを意味するためにここで使用される。本発明のいずれか特定の実施例は、特徴が矛盾しない限り、複数の「任意選択」の特徴を含んでもよい。
この出願を通じて、本発明の様々な実施例は、範囲の形式で提示されてもよい。範囲の形式の説明は、単に便宜上且つ簡潔性のためであり、本発明の範囲における柔軟性のない限定として解釈されるべきでないことが理解されるべきである。したがって、範囲の説明は、具体的に開示された全ての可能な部分範囲と、その範囲内の個々の数値とを有すると考えられるべきである。例えば、1から6のような範囲の説明は、1から3、1から4、1から5、2から4、2から6、3から6等のような具体的に開示された部分範囲と、その範囲内の個々の数値、例えば、1、2、3、4、5及び6を有すると考えられるべきである。これは、範囲の広さに拘わらず当てはまる。
数値範囲がここに示される場合には常に、これは、示された範囲内のいずれか記載の数(分数又は整数)を含むことを意味する。第1の指定数と第2の指定数との「間の範囲にあること/範囲」という語句と、第1の指定数「から」第2の指定数「までの範囲にあること/範囲」という語句は、ここでは交換可能に使用され、第1及び第2の指定の数と、これらの間の全ての分数及び整数とを含むことを意味する。
明確性のために別々の実施例に関して記載される本発明の特定の特徴はまた、単一の実施例において組み合わせで提供されてもよいことが認識される。逆に言えば、簡潔性のために単一の実施例に関して記載される本発明の様々な特徴はまた、別々に、或いはいずれか適切なサブコンビネーションで、或いは本発明の他の記載の実施例において適切なように提供されてもよい。様々な実施例に関して記載する特定の特徴は、実施例がこれらのエレメントがなければ動作不能でない限り、これらの実施例の本質的な特徴であると考えられるべきでない。
本発明について、その特定の実施例に関して説明したが、多くの別法、変更及び変化が当業者に明らかになることは明白である。したがって、添付の特許請求の範囲の精神及び広い範囲に入る全てのこのような別法、変更及び変化を包含することを意図する。
この明細書で言及した全ての刊行物、特許及び特許出願は、それぞれ個々の刊行物、特許及び特許出願が参照によりここに援用されるように具体的且つ個別に示されているかのような同一の程度で、その全内容において参照により明細書に援用する。さらに、この出願におけるいずれかの参考文献の引用又は特定は、このような参考文献が本発明への従来技術として利用可能であると認めることとして解釈されるべきではない。セクションの見出しが使用される限り、これらは、必ずしも限定として解釈されるべきではない。

Claims (25)

  1. メインプロセッサに電子的に結合されたフロントエンドインタフェースを含み、
    前記フロントエンドインタフェースは、
    リポジトリに記憶されたデータを受信し、
    前記データが繰り返しアクセスされるか否かを示すアクセスパラメータを分析することにより、前記データが単一アクセスデータであるか複数アクセスデータであるかを決定し、前記単一アクセスデータは所定の期間の間に前記メインプロセッサにより1回アクセスされるデータであり、前記複数アクセスデータは前記所定の期間の間に前記メインプロセッサにより複数回アクセスされるデータであり、
    前記メインプロセッサによる処理のために前記複数アクセスデータをルーティングし、
    前記フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングし、前記前処理の結果を前記メインプロセッサにルーティングするように適合されるデータ処理装置。
  2. 前記アクセスパラメータは、前記フロントエンドインタフェース上での同じデータの2回の受信の受信時間又は前記メインプロセッサによる同じデータの2回の要求の要求時間に基づく、請求項1に記載のデータ処理装置。
  3. 前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間のデータエレメントの数に基づいて測定され、前記2回のアクセスは、前記フロントエンドインタフェースにおける前記同じデータの2回の受信又は前記フロントエンドインタフェースからの前記同じデータの2回の要求のいずれかである、請求項2に記載のデータ処理装置。
  4. 前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間の時間差に基づいて測定される、請求項2に記載のデータ処理装置。
  5. 前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間の異なるデータの数をカウントすることにより測定される、請求項2に記載のデータ処理装置。
  6. 前記単一アクセスデータは、前記アクセスパラメータを閾値と比較することにより決定される、請求項2に記載のデータ処理装置。
  7. 前記フロントエンドインタフェースは、ローカルメモリユニットにアクセスし、前記単一アクセスデータを前処理し、前記単一アクセスデータを前記ローカルメモリユニットに記憶し、更なる処理のために前記前処理の結果を前記メインプロセッサにルーティングするように適合された少なくとも1つのローカルプロセッサを含む、請求項1乃至6のうちいずれか1項に記載のデータ処理装置。
  8. 前記前処理は、前記単一アクセスデータの複数のデータエレメントをフィルタリング及び集約するための一群のアプリケーション特有命令を実行することである、請求項7に記載のデータ処理装置。
  9. 前記フロントエンドインタフェースの前記少なくとも1つのローカルプロセッサは、前処理命令転送モジュールを組み込み、前記前処理命令転送モジュールは、前記メインプロセッサから前記一群のアプリケーション特有命令を受信し、前記一群のアプリケーション特有命令を前記少なくとも1つのローカルプロセッサの機械言語に変換し、前記前処理を実行するために前記少なくとも1つのローカルプロセッサ上で前記機械言語を実行するように構成される、請求項8に記載のデータ処理装置。
  10. 前記フロントエンドインタフェースは、前記メインプロセッサにルーティングされる前に前記結果の少なくともいくつかの要素を記憶するための一時メモリユニットを含む、請求項1乃至9のうちいずれか1項に記載のデータ処理装置。
  11. 前記一時メモリユニット内でアドレス指定されるメモリ記憶は、前記メインプロセッサのメインメモリの記憶アドレスにマッピングされる、請求項10に記載のデータ処理装置。
  12. オペレーティングシステムに組み込まれたデバイスドライバは、前記前処理を実行するために前記メインプロセッサを動作するように構成される、請求項1乃至11のうちいずれか1項に記載のデータ処理装置。
  13. リポジトリに記憶されたデータを受信するステップと、
    前記データが繰り返しアクセスされるか否かを示すアクセスパラメータを分析することにより、前記データが単一アクセスデータであるか複数アクセスデータであるかを決定するステップであり、前記単一アクセスデータは所定の期間の間にメインプロセッサにより1回アクセスされるデータであり、前記複数アクセスデータは前記所定の期間の間に前記メインプロセッサにより複数回アクセスされるデータであるステップと、
    前記メインプロセッサによる処理のために前記複数アクセスデータをルーティングするステップと、
    フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングし、前記前処理の結果を前記メインプロセッサにルーティングするステップと
    を含む方法。
  14. 前記アクセスパラメータは、前記フロントエンドインタフェース上での同じデータの2回の受信の受信時間又は前記メインプロセッサによる同じデータの2回の要求の要求時間に基づく、請求項13に記載の方法。
  15. 前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間のデータエレメントの数に基づいて、前記アクセスパラメータを測定するステップであり、前記2回のアクセスは、前記フロントエンドインタフェースにおける前記同じデータの2回の受信又は前記フロントエンドインタフェースからの前記同じデータの2回の要求のいずれかであるステップを含む、請求項14に記載の方法。
  16. 前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間の時間差に基づいて、前記アクセスパラメータを測定するステップを含む、請求項14に記載の方法。
  17. 前記フロントエンドインタフェース上での前記同じデータの2回のアクセスの間の異なるデータの数をカウントすることにより、前記アクセスパラメータを測定するステップを含む、請求項14に記載の方法。
  18. 前記アクセスパラメータを閾値と比較することにより、前記単一アクセスデータを決定するステップを含む、請求項14に記載の方法。
  19. 少なくとも1つのローカルプロセッサを含む前記フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、
    ローカルメモリユニットにアクセスするステップと、
    前記単一アクセスデータを前処理し、前記単一アクセスデータを前記ローカルメモリユニットに記憶するステップと、
    更なる処理のために前記前処理の結果を前記メインプロセッサにルーティングするステップと
    を含む、請求項13乃至18のうちいずれか1項に記載の方法。
  20. 前記前処理は、前記単一アクセスデータの複数のデータエレメントをフィルタリング及び集約するための一群のアプリケーション特有命令を実行することを含む、請求項19に記載の方法。
  21. 前記フロントエンドインタフェースの前記少なくとも1つのローカルプロセッサによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、前処理命令転送モジュールを組み込むステップであり、前記前処理命令転送モジュールは、前記メインプロセッサから前記一群のアプリケーション特有命令を受信し、前記一群のアプリケーション特有命令を前記少なくとも1つのローカルプロセッサの機械言語に変換し、前記前処理を実行するために前記少なくとも1つのローカルプロセッサ上で前記機械言語を実行するように構成されるステップを含む、請求項20に記載の方法。
  22. フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、一時メモリユニットにより前記メインプロセッサにルーティングされる前に前記結果の少なくともいくつかの要素を記憶するステップを含む、請求項13乃至21のうちいずれか1項に記載の方法。
  23. 前処理のために前記単一アクセスデータをルーティングする前記ステップは、前記一時メモリユニット内でアドレス指定されるメモリ記憶を、前記メインプロセッサのメインメモリの記憶アドレスにマッピングするステップを含む、請求項22に記載の方法。
  24. オペレーティングシステムに組み込まれたデバイスドライバは、前記前処理を実行するために前記メインプロセッサを動作するように構成される、請求項13乃至23のうちいずれか1項に記載の方法。
  25. コンピュータに請求項13乃至24のうちいずれか1項に記載の方法を実行させるプログラム。
JP2017548910A 2015-03-17 2015-03-17 ビッグデータアプリケーションのためのマルチ・マルチ次元コンピュータアーキテクチャ Active JP6683726B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/055493 WO2016146166A1 (en) 2015-03-17 2015-03-17 Multi-multidimensional computer architecture for big data applications

Publications (2)

Publication Number Publication Date
JP2018509716A JP2018509716A (ja) 2018-04-05
JP6683726B2 true JP6683726B2 (ja) 2020-04-22

Family

ID=52727106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017548910A Active JP6683726B2 (ja) 2015-03-17 2015-03-17 ビッグデータアプリケーションのためのマルチ・マルチ次元コンピュータアーキテクチャ

Country Status (9)

Country Link
US (1) US10417005B2 (ja)
EP (1) EP3227780A1 (ja)
JP (1) JP6683726B2 (ja)
KR (1) KR101955617B1 (ja)
CN (1) CN107408060B (ja)
BR (1) BR112017015942B1 (ja)
CA (1) CA2973031C (ja)
SG (1) SG11201705570SA (ja)
WO (1) WO2016146166A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112017015942B1 (pt) * 2015-03-17 2019-05-21 Huawei Technologies Co.,Ltd. Aparelho de processamento de dados, método para processamento de grandes volumes de dados
CN111124658B (zh) * 2018-10-31 2023-09-29 伊姆西Ip控股有限责任公司 用于处理目标数据的方法、设备和计算机程序产品

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742814A (en) 1995-11-01 1998-04-21 Imec Vzw Background memory allocation for multi-dimensional signal processing
US20020013579A1 (en) * 1997-10-03 2002-01-31 Thomas A. Silvestrini Rotating electrosurgical blade for corneal reshaping
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
WO2000010084A2 (en) 1998-08-17 2000-02-24 Microsoft Corporation Object load balancing
US6681295B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
US7154621B2 (en) * 2001-03-20 2006-12-26 Lightsurf Technologies, Inc. Internet delivery of digitized photographs
US20060259733A1 (en) 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US8560795B2 (en) 2005-06-30 2013-10-15 Imec Memory arrangement for multi-processor systems including a memory queue
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US20080189251A1 (en) 2006-08-25 2008-08-07 Jeremy Branscome Processing elements of a hardware accelerated reconfigurable processor for accelerating database operations and queries
US20090019869A1 (en) * 2007-07-19 2009-01-22 Girard John M System and method for vapor control in cryogenic freezers
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US20090198699A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Remote space efficient repository
US7701251B1 (en) 2008-03-06 2010-04-20 Xilinx, Inc. Methods and apparatus for implementing a stacked memory programmable integrated circuit system in package
CA2744891C (en) 2008-11-28 2015-10-27 Inchron Gmbh Method, system and simulation or analysis model for data processing
US20100242014A1 (en) * 2009-03-17 2010-09-23 Xiaohan Zhu Symmetric multi-processor operating system for asymmetric multi-processor architecture
US8639852B2 (en) * 2009-11-13 2014-01-28 Qualcomm Incorporated Burst access protocol
US20130086036A1 (en) * 2011-09-01 2013-04-04 John Rizzo Dynamic Search Service
CN104246728B (zh) 2012-04-27 2018-04-17 英派尔科技开发有限公司 用于数据库索引的多个可变覆盖率存储器
KR20140005474A (ko) * 2012-07-04 2014-01-15 한국전자통신연구원 빅데이터 처리를 위한 애플리케이션 제공 장치 및 제공 방법
WO2014070166A1 (en) * 2012-10-31 2014-05-08 Hewlett-Packard Development Company, L.P. Cataloging backup data
JP5982683B2 (ja) * 2013-01-17 2016-08-31 株式会社日立ソリューションズ 計算機システム
US9423959B2 (en) 2013-06-29 2016-08-23 Intel Corporation Method and apparatus for store durability and ordering in a persistent memory architecture
CN103885919B (zh) * 2014-03-20 2017-01-04 北京航空航天大学 一种多dsp和fpga并行处理系统及实现方法
CN104090848B (zh) 2014-07-16 2017-03-08 云南大学 一种周期性大数据处理的内存管理方法及装置
CN104391656A (zh) 2014-11-19 2015-03-04 华为技术有限公司 一种存储设备的io资源分配方法、装置及存储设备
CN104794150A (zh) * 2015-01-30 2015-07-22 北京东方泰坦科技股份有限公司 一种基于空间知识云环境的云存储模型与管理方法
BR112017015942B1 (pt) * 2015-03-17 2019-05-21 Huawei Technologies Co.,Ltd. Aparelho de processamento de dados, método para processamento de grandes volumes de dados

Also Published As

Publication number Publication date
US20170371676A1 (en) 2017-12-28
CN107408060B (zh) 2020-10-16
BR112017015942A2 (pt) 2018-04-03
EP3227780A1 (en) 2017-10-11
WO2016146166A1 (en) 2016-09-22
BR112017015942B1 (pt) 2019-05-21
CN107408060A (zh) 2017-11-28
SG11201705570SA (en) 2017-08-30
JP2018509716A (ja) 2018-04-05
KR101955617B1 (ko) 2019-03-07
KR20170097778A (ko) 2017-08-28
CA2973031A1 (en) 2016-09-22
US10417005B2 (en) 2019-09-17
CA2973031C (en) 2020-06-09

Similar Documents

Publication Publication Date Title
US10866806B2 (en) Uniform register file for improved resource utilization
TWI439941B (zh) 多處理器系統內之自動工作量分布的方法、裝置,及多核心處理器系統
Goumas et al. Performance evaluation of the sparse matrix-vector multiplication on modern architectures
KR102236419B1 (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US9477601B2 (en) Apparatus and method for determining a sector division ratio of a shared cache memory
EP3341839B1 (en) Migration between cpu cores
JP7125425B2 (ja) 最適化されたディープネットワーク処理のためのグラフマッチング
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
US10198370B2 (en) Memory distribution across multiple non-uniform memory access nodes
Ouyang et al. Active SSD design for energy-efficiency improvement of web-scale data analysis
US20220075649A1 (en) Migration between cpu cores
US11782761B2 (en) Resource management unit for capturing operating system configuration states and offloading tasks
Liu et al. MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs
CN107632779B (zh) 数据处理方法和装置、服务器
CN113590508A (zh) 动态可重构的内存地址映射方法及装置
Yang et al. Improving Spark performance with MPTE in heterogeneous environments
JP6683726B2 (ja) ビッグデータアプリケーションのためのマルチ・マルチ次元コンピュータアーキテクチャ
US9513688B2 (en) Measurement of performance scalability in a microprocessor
KR101573112B1 (ko) 데이터 분배 방법 및 장치
JP6877381B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP6873942B2 (ja) 推定装置、推定方法およびプログラム
CN107621970B (zh) 一种异构cpu的虚拟机迁移方法和装置
KR20220169894A (ko) 메모리 기반 통합 스토리지 관리 장치 및 방법
EP4363983A1 (en) Memory reduction in a system by oversubscribing physical memory shared by compute entities supported by the system
JP2013200827A (ja) プロセススケジューリング装置、プロセススケジューリング方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200326

R150 Certificate of patent or registration of utility model

Ref document number: 6683726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250