JP6187600B2 - 分散型環境におけるコンピュータプログラムの実装パラメータテスト - Google Patents
分散型環境におけるコンピュータプログラムの実装パラメータテスト Download PDFInfo
- Publication number
- JP6187600B2 JP6187600B2 JP2015552041A JP2015552041A JP6187600B2 JP 6187600 B2 JP6187600 B2 JP 6187600B2 JP 2015552041 A JP2015552041 A JP 2015552041A JP 2015552041 A JP2015552041 A JP 2015552041A JP 6187600 B2 JP6187600 B2 JP 6187600B2
- Authority
- JP
- Japan
- Prior art keywords
- testing
- distributed environment
- test
- timeout
- time
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3612—Analysis of software for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3616—Analysis of software for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
本発明の実施形態は、分散型コンピュータで及び独立型処理要素で長時間を要する自動調整及び他のテスト方法の問題を解決できる。従来技術の構成は、この問題を解決できない。従来技術では、分散型アルゴリズム及び計算カーネルの準備及び選択に僅かな柔軟性しかない。非常に長い実験に基づく試みが必要とされ、このような試みは、自動調整、最適化、又は探索のような方法を実行するのに要する時間を最適化できない。
多数の異なる高レベル分散型並列アルゴリズムは、最高性能を有するアルゴリズムを見付けるために、本発明を用いて実験に基づきテストされても良い(恐らく干渉しないように並列に走るよう配置される)。本発明を用いる利点は、テストのソースコード実装を簡単にすること、及び非効率なアルゴリズムを素早く拒否するためにハードウェアサポートを用いて効率的に最終的な最適化アルゴリズムに達することを含む。
多数の異なる計算カーネルは、最高性能を有する計算カーネルを見付けるために、本発明を用いて実験に基づきテストされても良い(通常、干渉しないように並列に走るよう配置される)。本発明を用いる利点は、実験に基づく自動調整フレームワークソースコードを簡略化すること、及び非効率なカーネルを素早く拒否するためにハードウェアサポートを用いて最終的な最適化カーネルにより迅速に到達することを含む。
並列アルゴリズムは、本発明の実施形態を用いて分岐限定法を実行しても良い。この方法は、全ての候補解の体系的列挙を有する種々の最適化問題の最適解を見付ける一般的アルゴリズムである。無益な候補のサブセットは、最適化中の数量の推定上限及び下限を用いることにより集団で廃棄される。
並列アルゴリズムは、本発明の実施形態を用いて木枝刈り探索を実行しても良い。枝刈り技術は、少ない支援しか提供しない木の部分を除去することにより、決定木のサイズを縮小する。
本発明の実施形態は、計算の完了のために必要な処理のサブセットのみを継続する仕様を可能にする。この仕様は、テストにおける柔軟性をもたらし、障害に苦しんでおりバリアの完了ポイントに達しない又は妥当な時間内にそのポイントに到達しないであろう処理の完了を待機するのを回避する。
本発明の1つの有利な実装は、Fat−Tree又はTorus Topologyモデルのようなモデルを用いて、多くの相互接続されたノードを有するスーパーコンピュータにおけるものである。ノード間の通信を可能にする相互接続を実施するために必要な2つの基本的な種類のコンポーネントは、ネットワークルータ及びネットワークインタフェースコンポーネントである。これらは、図3のチップ上に示されるが、それらの構成は例によって大きく変化する。例示的な相互接続は、QCDOC(Quantum Chromodynamics on a Chip)及びGemini機械、及び特にFujitsu、Mellanox及びIntelにより開発された技術により使用されるものを含む。
2.通信ハードウェア機能
3.コンピュータプロセッサ機能及び命令。
1.本発明の実施形態は、アプリケーションの自動調整フェーズの効率を向上し、最終的に、自動調整のための従来のアプローチに比べて短い時間期間でアプリケーションの最適化をもたらす。
2.本発明の実施形態は、自動調整及び最適化中に、ハードウェアに基づく分散型サポートをユーザに与えることができる。
3.本発明の実施形態は、自動調整及び最適化中に、階層的な(スーパーコンピュータ全体及びローカルノードの)ハードウェアに基づくサポートをユーザに与えることができる。
4.本発明の実施形態は、容易なプログラミングを可能にするプログラミングモデルを提供できる。つまり、先に説明したAPIをコーディングするストラテジは、本発明により提供される機能にアクセスする現実的な方法を示す。これらのストラテジは、(FPGA及びGPGPUの不慣れなプログラミングとは対称的に)現在のプログラマにとって親しみがある。
5.本発明の実施形態は、多くの異なるレベルの計算システム装置を解決できる。例は、ソフトウェアレベルのコンパイル時間、CPUハードウェアレベルのタイムアウト、(異なるチップだが同じ回路基板上のCPUと同じチップの)ルーティング要素レベルのタイムアウト、及び実行時間ソフトウェアレベルの計算の復旧を含む。
Claims (14)
- 分散型環境におけるコンピュータプログラムの実装パラメータをテストする方法であって、当該方法は、前記分散型環境において並列に代替実装パラメータをテストするステップと、タイムアウトメカニズムを提供するステップと、を有し、前記タイムアウトメカニズムは、
テストのために許容される時間が終了したか、
所定量の代替実装のための処理のテストが完了したか、
という中断条件をチェックし、
前記中断条件のうちの1又は複数が満たされると、テスト処理を中断し、
前記タイムアウトメカニズムは、ハードウェア支援中断を生じるよう構成されるハードウェアインタフェースを有する、方法。 - 前記タイムアウトメカニズムは、中断条件が満たされるまで前記分散型環境で実行されるソフトウェアタイムアウト領域を更に有し、実行ファイルは前記中断条件が満たされたとき前記ハードウェアインタフェースを呼び出す、請求項1に記載の方法。
- 前記ソフトウェアタイムアウト領域は、アプリケーションプログラミングインタフェースであり、望ましくは前記コンピュータプログラムのソースコードの中に書き込まれる、請求項2に記載の方法。
- 前記ソフトウェアタイムアウト領域は、後続の並列テスト処理が実行されるよう、前記テスト処理が中断された後に復旧できるよう設計される、請求項2又は3に記載の方法。
- 前記ソフトウェアタイムアウト領域は、全ての完了した並列テスト処理の最小及び/又は最大完了時間の値を返す、請求項2乃至4のいずれか一項に記載の方法。
- 前記分散型環境は、複数のコアを有し、前記テストは、前記複数のコアで並列に実行され、望ましくは前記コアは前記分散型環境のノードに一緒にグループ化される、請求項1乃至5のいずれか一項に記載の方法。
- 前記ハードウェアインタフェースは、前記分散型環境の各ノードの制御部に含まれる、請求項1乃至6のいずれか一項に記載の方法。
- 前記実行ファイルが前記ハードウェアインタフェースを呼び出すと、前記タイムアウトメカニズムは、命令パイプラインから前記タイムアウト領域に関連する命令を削除する、請求項2乃至5、又は請求項2に従属する請求項6乃至7のいずれか一項に記載の方法。
- 前記タイムアウトメカニズムは、前記タイムアウト領域の始めをマークするために開始命令を、及び/又は前記中断を生じるためにタイムアウト命令を、送る、請求項2乃至5、又は請求項2に従属する請求項6乃至8のいずれか一項に記載の方法。
- 前記タイムアウトメカニズムは、所定の割合の代替実装が完全に処理され、前記テストのために許容される時間が終了していないとき、前記テストを中断する、請求項1乃至9のいずれか一項に記載の方法。
- 前記テストのために許容される時間は、より速い代替実装パラメータにのみ対応する処理を完了できるよう設計される、請求項1乃至10のいずれか一項に記載の方法。
- 分散型環境においてコンピュータプログラムの実装パラメータをテストするアプリケーションプログラミングインタフェース(API)であって、前記APIは、
テストのために許容される時間が終了したか、
所定量の代替実装のテスト処理が完了したか、
という中断条件のうちの1又は複数が満たされると、前記分散型環境における代替実装パラメータの並列テストを中断するタイムアウトメカニズムを実装し、
前記APIは、ハードウェア支援中断を生じるよう構成されるハードウェアインタフェースを呼び出す実行ファイルである、API。 - それぞれ複数のコアを有するコンピューティングノードの分散型環境の中のノードの制御部であって、前記制御部は、
前記ノードへの及び前記分散型環境への接続と、
前記分散型環境におけるコンピュータプログラムの実装パラメータをテストする方法での使用のために構成されるハードウェアインタフェースと、を有し、前記方法は、前記分散型環境における代替実装パラメータを並列テストするステップを有し、
前記ハードウェアインタフェースは、
テストのために許容された時間が終了したか、
所定量の代替実装のテスト処理が完了したか、
という中断条件のうちの1又は複数が満たされると前記テストを中断するよう構成される、
制御部。 - 分散型コンピューティング環境であって、それぞれ制御部を有する複数のノードを有し、前記制御部は、
前記ノードへの及び前記分散型環境への接続と、
前記分散型環境におけるコンピュータプログラムの実装パラメータをテストする方法での使用のために構成されるハードウェアインタフェースと、を有し、前記方法は、前記分散型環境における代替実装パラメータを並列テストするステップを有し、
前記ハードウェアインタフェースは、
テストのために許容された時間が終了したか、
所定量の代替実装のテスト処理が完了したか、
という中断条件のうちの1又は複数が満たされると前記テストを中断するよう構成される、
分散型コンピューティング環境。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP13151060.4 | 2013-01-11 | ||
| EP13151060.4A EP2755138B1 (en) | 2013-01-11 | 2013-01-11 | Testing implementation parameters of a computer program in a distributed environment |
| PCT/EP2014/050173 WO2014108411A1 (en) | 2013-01-11 | 2014-01-07 | Testing implementation parameters of a computer program in a distributed environment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016503213A JP2016503213A (ja) | 2016-02-01 |
| JP6187600B2 true JP6187600B2 (ja) | 2017-08-30 |
Family
ID=47552897
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015552041A Expired - Fee Related JP6187600B2 (ja) | 2013-01-11 | 2014-01-07 | 分散型環境におけるコンピュータプログラムの実装パラメータテスト |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9817746B2 (ja) |
| EP (1) | EP2755138B1 (ja) |
| JP (1) | JP6187600B2 (ja) |
| WO (1) | WO2014108411A1 (ja) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10055339B2 (en) * | 2016-09-28 | 2018-08-21 | Wipro Limited | Methods and systems for testing mobile applications |
| US10185674B2 (en) * | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
| EP3961436A1 (en) * | 2020-08-28 | 2022-03-02 | Siemens Aktiengesellschaft | Methods and systems for controlling access to at least one computer program |
| US11507259B2 (en) | 2020-09-08 | 2022-11-22 | UiPath, Inc. | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both |
| US11232170B1 (en) | 2020-09-08 | 2022-01-25 | UiPath, Inc. | Application-specific graphical element detection |
| EP3982271A1 (en) * | 2020-10-09 | 2022-04-13 | Bull SAS | Method for autotuning noisy hpc systems |
| CN112181844B (zh) * | 2020-10-12 | 2022-02-18 | 南京大学 | 一种验证分布式协议活性属性容错机制的检测方法及装置 |
| CN115409187B (zh) * | 2022-08-03 | 2025-03-25 | 中国人民解放军网络空间部队信息工程大学 | 基于OpenMP并行模型下的量子机器学习模拟方法及系统 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6026444A (en) | 1998-06-24 | 2000-02-15 | Siemens Pyramid Information Systems, Inc. | TORUS routing element error handling and self-clearing with link lockup prevention |
| US7528622B2 (en) * | 2005-07-06 | 2009-05-05 | Optimal Test Ltd. | Methods for slow test time detection of an integrated circuit during parallel testing |
| US20070061785A1 (en) * | 2005-09-09 | 2007-03-15 | Sun Microsystems, Inc. | Web-based code tuning service |
| US7895585B2 (en) * | 2005-09-09 | 2011-02-22 | Oracle America, Inc. | Automatic code tuning |
| US7814486B2 (en) | 2006-06-20 | 2010-10-12 | Google Inc. | Multi-thread runtime system |
| US8146066B2 (en) | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
| US8443348B2 (en) | 2006-06-20 | 2013-05-14 | Google Inc. | Application program interface of a parallel-processing computer system that supports multiple programming languages |
| GB2448118B (en) * | 2007-04-03 | 2011-08-24 | Advanced Risc Mach Ltd | Error recovery following erroneous execution with an instruction processing pipeline |
| US8327325B2 (en) * | 2009-01-14 | 2012-12-04 | International Business Machines Corporation | Programmable framework for automatic tuning of software applications |
| JP5299681B2 (ja) * | 2009-02-16 | 2013-09-25 | トヨタ自動車株式会社 | プログラム検査方法 |
| US9164859B2 (en) * | 2009-09-25 | 2015-10-20 | Qualcomm Incorporated | Computing device for enabling concurrent testing |
| CN101727389B (zh) * | 2009-11-23 | 2012-11-14 | 中兴通讯股份有限公司 | 一种分布式综合业务自动化测试系统及方法 |
| US8914673B2 (en) * | 2012-02-20 | 2014-12-16 | Microsoft Corporation | Distributed testing within a serial testing infrastructure |
-
2013
- 2013-01-11 EP EP13151060.4A patent/EP2755138B1/en not_active Not-in-force
-
2014
- 2014-01-07 JP JP2015552041A patent/JP6187600B2/ja not_active Expired - Fee Related
- 2014-01-07 WO PCT/EP2014/050173 patent/WO2014108411A1/en not_active Ceased
-
2015
- 2015-07-10 US US14/796,231 patent/US9817746B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| WO2014108411A1 (en) | 2014-07-17 |
| EP2755138B1 (en) | 2018-11-28 |
| EP2755138A1 (en) | 2014-07-16 |
| US20150317240A1 (en) | 2015-11-05 |
| JP2016503213A (ja) | 2016-02-01 |
| US9817746B2 (en) | 2017-11-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6187600B2 (ja) | 分散型環境におけるコンピュータプログラムの実装パラメータテスト | |
| US8239524B2 (en) | Techniques for dynamically assigning jobs to processors in a cluster based on processor workload | |
| US9396021B2 (en) | Techniques for dynamically assigning jobs to processors in a cluster using local job tables | |
| US9384042B2 (en) | Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications | |
| US8122132B2 (en) | Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information | |
| US9910717B2 (en) | Synchronization method | |
| WO2007067562A2 (en) | Methods and apparatus for multi-core processing with dedicated thread management | |
| US8607199B2 (en) | Techniques for debugging code during runtime | |
| Meloni et al. | System adaptivity and fault-tolerance in NoC-based MPSoCs: the MADNESS project approach | |
| CA2904253C (en) | Computer system using in-service software upgrade | |
| CN103810035A (zh) | 智能上下文管理 | |
| US9195550B2 (en) | Method for guaranteeing program correctness using fine-grained hardware speculative execution | |
| US8108717B2 (en) | Parallel programming error constructs | |
| Derin et al. | A system-level approach to adaptivity and fault-tolerance in NoC-based MPSoCs: The MADNESS project | |
| Sakai et al. | Super-threading: Architectural and software mechanisms for optimizing parallel computation | |
| Dorier et al. | Supporting task-level fault-tolerance in HPC workflows by launching MPI jobs inside MPI jobs | |
| CN119376867A (zh) | 任务调度方法、装置、计算设备及存储介质 | |
| JP4997144B2 (ja) | マルチタスク処理装置およびその方法 | |
| Namyar et al. | ZENITH: Towards A Formally Verified Highly-Available Control Plane | |
| Dehnavi et al. | Analyzable Publish-Subcribe Communication Through a Wait-Free FIFO Channel for MPSoC Real-Time Applications | |
| Loeve et al. | Fault-tolerance at your Finger Tips with the TeamPlay Coordination Language | |
| Papadopoulos et al. | Design Space Exploration Methodology Based on Decision Trees for Cyber-Physical Systems | |
| Peña et al. | Supporting automatic recovery in offloaded distributed programming models through MPI-3 techniques | |
| Gee et al. | Design of a Fault-tolerant Embedded Controller for Railway Signaling Systems | |
| Islam et al. | Concurrency Compliant Embedded System Modeling Methodology |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151112 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151201 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161116 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161122 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170120 |
|
| 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: 20170704 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170717 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6187600 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |
