JP2014160453A5 - - Google Patents

Download PDF

Info

Publication number
JP2014160453A5
JP2014160453A5 JP2014006009A JP2014006009A JP2014160453A5 JP 2014160453 A5 JP2014160453 A5 JP 2014160453A5 JP 2014006009 A JP2014006009 A JP 2014006009A JP 2014006009 A JP2014006009 A JP 2014006009A JP 2014160453 A5 JP2014160453 A5 JP 2014160453A5
Authority
JP
Japan
Prior art keywords
parallelism
conditional branch
macrotask
conditional
extraction method
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
JP2014006009A
Other languages
English (en)
Other versions
JP2014160453A (ja
JP6319880B2 (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP2014006009A priority Critical patent/JP6319880B2/ja
Priority claimed from JP2014006009A external-priority patent/JP6319880B2/ja
Publication of JP2014160453A publication Critical patent/JP2014160453A/ja
Publication of JP2014160453A5 publication Critical patent/JP2014160453A5/ja
Application granted granted Critical
Publication of JP6319880B2 publication Critical patent/JP6319880B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

このため、本発明では、条件分岐を含むプログラムに潜在する並列性を抽出して、マルチコアプロセッサ上で実行するのに適する並列化プログラムを生成するための効果的な並列性の抽出方法を提案する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、元プログラムの並列性をコンピュータによって抽出する方法であって、前記方法は、前記元プログラムに含まれる一つの条件分岐が条件を満たした後に実行される複数のマクロタスクの並列実行可能性を判定する処理と、前記複数のマクロタスクが並列に実行可能であると判定された条件分岐を複製することにより複数の条件分岐を生成する処理と、を含む。
本発明の代表的な実施の形態によれば、条件分岐を含む元プログラムでも、適切に並列化をすることができる。また、制御プログラムのようにリアルタイム性が必要なプログラムにおいても、適切に並列化をすることができる。

Claims (10)

  1. 元プログラムの並列性をコンピュータによって抽出する方法であって、
    前記方法は、
    前記元プログラムに含まれる一つの条件分岐が条件を満たした後に実行される複数のマクロタスクの並列実行可能性を判定する処理と、
    前記複数のマクロタスクが並列に実行可能であると判定された条件分岐を複製することにより複数の条件分岐を生成する処理と、を含むことを特徴とする並列性の抽出方法。
  2. 請求項1に記載の並列性の抽出方法であって、
    前記複数のマクロタスクの間でデータ依存がない条件分岐を、前記マクロタスクが並列に実行可能な条件分岐であると判定することを特徴とする並列性の抽出方法。
  3. 請求項1又は2に記載の並列性の抽出方法であって、
    前記元プログラムにおいて実行時間が最も長いパスに含まれる条件分岐を複製することを特徴とする並列性の抽出方法。
  4. 請求項13のいずれか一つに記載の並列性の抽出方法であって、
    前記の実行時間が最も長いパスを複製することによって生成された複数の条件分岐に繋がるパスの中で実行時間が最も長いパスに含まれる条件分岐をさらに複製することを特徴とする並列性の抽出方法。
  5. 請求項1〜4のいずれか一つに記載の並列性の抽出方法であって、
    前記複数のマクロタスクのそれぞれは、代入文の集合である疑似代入文ブロック、繰り返しブロック及びサブルーチンブロックの三種類の粗粒度タスクのうちのいずれか一つであることを特徴とする並列性の抽出方法。
  6. 請求項5記載の並列性の抽出方法であって、
    前記複数のマクロタスクのうちの第1マクロタスクを前記複数の条件分岐のうちの1つの条件分岐である第1条件分岐に後続させ、
    前記複数のマクロタスクのうちの第1マクロタスクと異なる第2マクロタスクを前記複数の条件分岐のうちの前記第1条件分岐とは異なる第2条件分岐に後続させることを特徴とする並列性の抽出方法。
  7. 請求項1〜6のいずれか一つに記載の並列性の抽出方法であって、
    前記複数の条件分岐を生成する処理は、前記複数のマクロタスクとは異なる一のマクロタスクである第3マクロタスクにデータ依存し、かつ、前記複数のマクロタスクに含まれる第4マクロタスクと、前記第3マクロタスクにデータ依存せず、かつ、前記複数のマクロタスクに含まれる第5マクロタスクとが存在する場合、前記第5マクロタスクを、前記第3マクロタスク及び前記第4マクロタスクが含まれるパスとは異なるパスに含まれるように、条件分岐を生成する処理であることを特徴する並列性の抽出方法。
  8. 請求項1〜7のいずれか一つに記載の並列性の抽出方法であって、
    前記一つの条件分岐は、実行時の不確定性を有することを特徴とする並列性の抽出方法。
  9. 請求項1〜8のいずれか一つに記載の並列性の抽出方法であって、
    前記一つの条件分岐は、ループ制御文とは異なることを特徴とする並列性の抽出方法。
  10. 元プログラムからコンピュータによって複数のプロセッサコアを含むマルチコアプロセッサ上で実行可能なプログラムを作成する方法であって、
    請求項1〜のいずれか一つに記載された並列性の抽出方法を用いて生成された複数の条件分岐を、前記複数のプロセッサコアの各々が実行するように割り当て、
    前記複数の条件分岐の各々を実行したプロセッサコアが、それぞれ、当該条件分岐が条件を満たしたのちに実行される前記複数のマクロタスクの各々を実行するように割り当てることによって、前記実行可能なプログラムの作成方法。
JP2014006009A 2013-01-23 2014-01-16 並列性の抽出方法及びプログラムの作成方法 Active JP6319880B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014006009A JP6319880B2 (ja) 2013-01-23 2014-01-16 並列性の抽出方法及びプログラムの作成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013010194 2013-01-23
JP2013010194 2013-01-23
JP2014006009A JP6319880B2 (ja) 2013-01-23 2014-01-16 並列性の抽出方法及びプログラムの作成方法

Publications (3)

Publication Number Publication Date
JP2014160453A JP2014160453A (ja) 2014-09-04
JP2014160453A5 true JP2014160453A5 (ja) 2017-11-24
JP6319880B2 JP6319880B2 (ja) 2018-05-09

Family

ID=51227405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014006009A Active JP6319880B2 (ja) 2013-01-23 2014-01-16 並列性の抽出方法及びプログラムの作成方法

Country Status (4)

Country Link
US (1) US20150363230A1 (ja)
EP (1) EP2950211B1 (ja)
JP (1) JP6319880B2 (ja)
WO (1) WO2014115613A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101504877B1 (ko) 2014-10-23 2015-03-30 (주)누스코 매니 코어를 이용한 프로그램 처리 장치 및 방법
ES2979074T3 (es) 2014-12-08 2024-09-24 Umbra Tech Ltd Sistema y método para recuperación de contenido desde regiones de red remotas
JP2018508067A (ja) * 2015-01-06 2018-03-22 アンブラ テクノロジーズ リミテッドUmbra Technologies Ltd. ニュートラルなアプリケーションプログラミングインタフェースについてのシステム及び方法
CN115834534A (zh) 2015-01-28 2023-03-21 安博科技有限公司 用于全局虚拟网络的系统
JP6427054B2 (ja) * 2015-03-31 2018-11-21 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ
ES2959674T3 (es) 2015-04-07 2024-02-27 Umbra Tech Ltd Cortafuegos de perímetro múltiple en la nube
JP6413922B2 (ja) 2015-05-18 2018-10-31 株式会社デンソー ソフトウェア分割方法、ソフトウェア分割装置および車載装置
JP2018517372A (ja) 2015-06-11 2018-06-28 アンブラ テクノロジーズ リミテッドUmbra Technologies Ltd. ネットワークタペストリの複数プロトコルの統合のための方法及びシステム
JP6500626B2 (ja) * 2015-06-16 2019-04-17 富士通株式会社 計算機、コンパイラプログラム、リンクプログラムおよびコンパイル方法
JP2017107448A (ja) * 2015-12-10 2017-06-15 株式会社デンソー 並列化方法、並列化ツール、車載装置
ES2931177T3 (es) 2015-12-11 2022-12-27 Umbra Tech Ltd Sistema y método para lanzamiento de información a través de un tapiz de red y granularidad de una marca
CN116112539A (zh) 2016-04-26 2023-05-12 安博科技有限公司 吊索路由逻辑与负载均衡
DE102017209697A1 (de) * 2016-06-13 2017-12-14 Denso Corporation Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung
JP2017228029A (ja) * 2016-06-21 2017-12-28 株式会社デンソー 並列化方法、並列化ツール、車載装置
US10671361B2 (en) * 2016-10-25 2020-06-02 Paypal, Inc. Automatically determining data dependencies to facilitate code execution
EP3343351B1 (en) * 2016-12-28 2023-04-26 Waseda University Parallel program generating method and parallelization compiling apparatus
JP6600888B2 (ja) * 2016-12-28 2019-11-06 学校法人早稲田大学 並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法
JP6891521B2 (ja) * 2017-02-08 2021-06-18 日本電気株式会社 情報処理装置、情報処理方法、プログラム
EP3836551A4 (en) * 2018-08-08 2022-06-22 Lg Electronics Inc. IMAGE ENCODING/DECODING METHODS AND APPARATUS THEREFOR
US11093223B2 (en) * 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US11392384B2 (en) 2020-09-04 2022-07-19 Alibaba Group Holding Limited Methods of breaking down coarse-grained tasks for fine-grained task re-scheduling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2794523B2 (ja) * 1993-11-26 1998-09-10 日本アイ・ビー・エム株式会社 アレイ関数をもつプログラミング言語におけるインライン展開方法
US6505296B2 (en) * 1997-10-13 2003-01-07 Hewlett-Packard Company Emulated branch effected by trampoline mechanism
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
JP4784792B2 (ja) 1999-12-22 2011-10-05 学校法人早稲田大学 マルチプロセッサ
JP3664473B2 (ja) * 2000-10-04 2005-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムの最適化方法及びこれを用いたコンパイラ
JP4783005B2 (ja) * 2004-11-25 2011-09-28 パナソニック株式会社 プログラム変換装置、プログラム変換実行装置およびプログラム変換方法、プログラム変換実行方法。
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US9384003B2 (en) * 2007-10-23 2016-07-05 Texas Instruments Incorporated Determining whether a branch instruction is predicted based on a capture range of a second instruction
JP4339907B2 (ja) * 2007-10-24 2009-10-07 株式会社日立製作所 マルチプロセッサ向け最適コード生成方法及びコンパイル装置
JP5209059B2 (ja) * 2008-10-24 2013-06-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ソース・コード処理方法、システム、及びプログラム
JP2012103923A (ja) * 2010-11-10 2012-05-31 Renesas Electronics Corp コンパイラ装置、コンパイル方法及びコンパイラプログラム
WO2013010159A1 (en) * 2011-07-14 2013-01-17 Siemens Corporation Reducing the scan cycle time of control applications through multi-core execution of user programs

Similar Documents

Publication Publication Date Title
JP2014160453A5 (ja)
JP2017516210A5 (ja)
JP2017509982A5 (ja)
JP2016207166A5 (ja)
JP2016531366A5 (ja)
WO2016036817A4 (en) Executing graph-based program specifications
JP2013539888A5 (ja)
JP2016522476A5 (ja)
JP2016528650A5 (ja)
RU2015142982A (ru) Компиляция преобразований в пользовательском интерфейсе повторных вычислений
WO2013134046A3 (en) Application level speculative processing
JP2015511032A5 (ja) ソフトウエアを開発するためのコンピュータプログラム、方法、コンピュータシステム、装置及びコンピュータ
RU2016127443A (ru) Команда запуска виртуального выполнения для диспетчеризации множественных потоков в компьютере
EP3007065A3 (en) Parallelization in virtual machine operation
JP2016530631A5 (ja)
JP2015220505A5 (ja)
SG10201902980TA (en) Conditional wrapper for program object
JP2015084256A5 (ja)
JP2017039057A5 (ja)
JP2016511484A5 (ja)
BR112017010005A2 (pt) aparelho e método para considerar localidade espacial no carregamento de elementos de dados para execução
TW201614482A (en) Flexible instruction execution in a processor pipeline
MY183825A (en) Context sensitive barrier instruction execution
SG10201710656YA (en) Program, information processing apparatus and method
JP2018069019A5 (ja)