WO2012087988A3 - Loop parallelization based on loop splitting or index array - Google Patents

Loop parallelization based on loop splitting or index array Download PDF

Info

Publication number
WO2012087988A3
WO2012087988A3 PCT/US2011/065948 US2011065948W WO2012087988A3 WO 2012087988 A3 WO2012087988 A3 WO 2012087988A3 US 2011065948 W US2011065948 W US 2011065948W WO 2012087988 A3 WO2012087988 A3 WO 2012087988A3
Authority
WO
WIPO (PCT)
Prior art keywords
loop
index array
splitting
parallelization based
parallelization
Prior art date
Application number
PCT/US2011/065948
Other languages
French (fr)
Other versions
WO2012087988A2 (en
Inventor
Jin Lin
Nishkam Ravi
Xinmin Tian
John L. Ng
Renat V. VALIULLIN
Original Assignee
Intel Corporation
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 Intel Corporation filed Critical Intel Corporation
Priority to CN201180061439.XA priority Critical patent/CN103282878B/en
Priority to EP11852178.0A priority patent/EP2656204A4/en
Publication of WO2012087988A2 publication Critical patent/WO2012087988A2/en
Publication of WO2012087988A3 publication Critical patent/WO2012087988A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Complex Calculations (AREA)

Abstract

Methods and apparatus to provide loop parallelization based on loop splitting and/or index array are described. In one embodiment, one or more split loops, corresponding to an original loop, are generated based on the mis-speculation information. In another embodiment, a plurality of subloops are generated from an original loop based on an index array. Other embodiments are also described.
PCT/US2011/065948 2010-12-24 2011-12-19 Loop parallelization based on loop splitting or index array WO2012087988A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201180061439.XA CN103282878B (en) 2010-12-24 2011-12-19 Based on the loop parallelization of Loop partitioning or index array
EP11852178.0A EP2656204A4 (en) 2010-12-24 2011-12-19 Loop parallelization based on loop splitting or index array

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/978,465 2010-12-24
US12/978,465 US8793675B2 (en) 2010-12-24 2010-12-24 Loop parallelization based on loop splitting or index array

Publications (2)

Publication Number Publication Date
WO2012087988A2 WO2012087988A2 (en) 2012-06-28
WO2012087988A3 true WO2012087988A3 (en) 2012-09-27

Family

ID=46314818

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/065948 WO2012087988A2 (en) 2010-12-24 2011-12-19 Loop parallelization based on loop splitting or index array

Country Status (5)

Country Link
US (1) US8793675B2 (en)
EP (1) EP2656204A4 (en)
CN (1) CN103282878B (en)
TW (1) TWI455025B (en)
WO (1) WO2012087988A2 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652231B2 (en) * 2008-10-14 2017-05-16 International Business Machines Corporation All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture
US8423983B2 (en) * 2008-10-14 2013-04-16 International Business Machines Corporation Generating and executing programs for a floating point single instruction multiple data instruction set architecture
US8327344B2 (en) * 2008-10-14 2012-12-04 International Business Machines Corporation Array reference safety analysis in the presence of loops with conditional control flow
US8589901B2 (en) 2010-12-22 2013-11-19 Edmund P. Pfleger Speculative region-level loop optimizations
US8793675B2 (en) 2010-12-24 2014-07-29 Intel Corporation Loop parallelization based on loop splitting or index array
JP2013171459A (en) * 2012-02-21 2013-09-02 Toshiba Corp Program analysis device, method for analyzing program, and recording medium
US8893103B2 (en) * 2012-08-16 2014-11-18 Nec Laboratories America, Inc. Automatic asynchronous offload to many-core coprocessors
US9244677B2 (en) 2012-09-28 2016-01-26 Intel Corporation Loop vectorization methods and apparatus
EP2913761A4 (en) 2012-10-25 2016-06-15 Fujitsu Ltd Execution control method, and information processing device
US9262139B2 (en) * 2013-01-07 2016-02-16 Advanced Micro Devices, Inc. Layered programming for heterogeneous devices
CN103106067B (en) * 2013-03-01 2016-01-20 清华大学 The optimization method of processor cyclic mapping and system
EP2972781A4 (en) * 2013-03-15 2016-10-19 Intel Corp Methods and systems to vectorize scalar computer program loops having loop-carried dependences
US8997073B2 (en) * 2013-04-25 2015-03-31 Nec Laboratories America, Inc. Semi-automatic restructuring of offloadable tasks for accelerators
EP3008618B1 (en) * 2013-06-14 2018-05-02 Intel Corporation Compiler optimization for complex exponential calculations
US9569185B2 (en) * 2014-02-07 2017-02-14 Oracle International Corporation Changing de-optimization guard representation during the compilation process
US9489181B2 (en) * 2014-10-09 2016-11-08 National Instruments Corporation Correlation analysis of program structures
US10318297B2 (en) * 2015-01-30 2019-06-11 Huawei Technologies Co., Ltd. Method and apparatus for operating a self-timed parallelized multi-core processor
US9830134B2 (en) * 2015-06-15 2017-11-28 Qualcomm Incorporated Generating object code from intermediate code that includes hierarchical sub-routine information
KR20170047957A (en) * 2015-10-26 2017-05-08 삼성전자주식회사 Method for operating semiconductor device and semiconductor system
US9703537B2 (en) 2015-11-02 2017-07-11 International Business Machines Corporation Method for defining alias sets
US10310826B2 (en) * 2015-11-19 2019-06-04 Intel Corporation Technologies for automatic reordering of sparse matrices
JP2017107448A (en) * 2015-12-10 2017-06-15 株式会社デンソー Parallelization method, parallelization tool, and on-vehicle device
US10884942B2 (en) * 2016-05-19 2021-01-05 International Business Machines Corporation Reducing memory access latency in scatter/gather operations
US10261831B2 (en) * 2016-08-24 2019-04-16 Qualcomm Incorporated Speculative loop iteration partitioning for heterogeneous execution
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
US10866790B2 (en) * 2018-11-30 2020-12-15 Advanced Micro Devices, Inc. Transforming loops in program code based on a capacity of a cache
JP7225859B2 (en) * 2019-02-04 2023-02-21 富士通株式会社 Information processing device, information processing program, and information processing method
CN109947564B (en) * 2019-03-07 2023-04-11 蚂蚁金服(杭州)网络技术有限公司 Service processing method, device, equipment and storage medium
US11061653B2 (en) * 2019-10-30 2021-07-13 International Business Machines Corporation Dynamic compiling for conditional statements during execution
JP2022182260A (en) * 2021-05-28 2022-12-08 富士通株式会社 Compiler, compilation method, and compiler device
US11709662B2 (en) * 2021-11-05 2023-07-25 Tenstorrent Inc. Sparsity uniformity enforcement for multicore processor
US12008352B2 (en) 2021-11-24 2024-06-11 International Business Machines Corporation Transformation of a loop within computer code to minimize iterations
US20230385040A1 (en) * 2022-05-24 2023-11-30 Xilinx, Inc. Splitting vector processing loops with an unknown trip count
CN115016845A (en) * 2022-05-31 2022-09-06 上海阵量智能科技有限公司 Instruction processing method and device, chip, board card, equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144602A1 (en) * 2003-12-12 2005-06-30 Tin-Fook Ngai Methods and apparatus to compile programs to use speculative parallel threads

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3317825B2 (en) 1995-09-28 2002-08-26 富士通株式会社 Loop-optimized translation processing method
US6038398A (en) 1997-05-29 2000-03-14 Hewlett-Packard Co. Method and apparatus for improving performance of a program using a loop interchange, loop distribution, loop interchange sequence
US6708331B1 (en) * 2000-05-03 2004-03-16 Leon Schwartz Method for automatic parallelization of software
JP2001325109A (en) 2000-05-16 2001-11-22 Hitachi Ltd Method for optimizing loop and complier
KR20030042319A (en) * 2001-11-22 2003-05-28 한국전자통신연구원 Method of parallel loop transformation for on-the-fly race detection in parallel program
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US7089545B2 (en) * 2002-12-17 2006-08-08 International Business Machines Corporation Detection of reduction variables in an assignment statement
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
EP1731998A1 (en) 2004-03-29 2006-12-13 Kyoto University Data processing device, data processing program, and recording medium containing the data processing program
US20060048122A1 (en) 2004-08-30 2006-03-02 International Business Machines Corporation Method, system and computer program product for hierarchical loop optimization of machine executable code
US7603546B2 (en) * 2004-09-28 2009-10-13 Intel Corporation System, method and apparatus for dependency chain processing
JP2006260096A (en) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd Program conversion method and program conversion device
US7823141B1 (en) * 2005-09-30 2010-10-26 Oracle America, Inc. Using a concurrent partial inspector loop with speculative parallelism
US7797329B2 (en) * 2006-06-09 2010-09-14 Oracle America Inc. Method and system for enabling a synchronization-free and parallel commit phase
US8549499B1 (en) * 2006-06-16 2013-10-01 University Of Rochester Parallel programming using possible parallel regions and its language profiling compiler, run-time system and debugging support
US8151255B2 (en) * 2006-06-26 2012-04-03 Oracle America, Inc. Using police threads to detect dependence violations to reduce speculative parallelization overhead
US8037462B2 (en) * 2006-08-02 2011-10-11 International Business Machines Corporation Framework for parallelizing general reduction
US20080127146A1 (en) * 2006-09-06 2008-05-29 Shih-Wei Liao System and method for generating object code for map-reduce idioms in multiprocessor systems
US7890943B2 (en) 2007-03-30 2011-02-15 Intel Corporation Code optimization based on loop structures
US8239843B2 (en) * 2008-03-11 2012-08-07 Oracle America, Inc. Value predictable variable scoping for speculative automatic parallelization with transactional memory
US8677337B2 (en) * 2008-05-01 2014-03-18 Oracle America, Inc. Static profitability control for speculative automatic parallelization
US8359587B2 (en) * 2008-05-01 2013-01-22 Oracle America, Inc. Runtime profitability control for speculative automatic parallelization
US8739141B2 (en) * 2008-05-19 2014-05-27 Oracle America, Inc. Parallelizing non-countable loops with hardware transactional memory
US8453134B2 (en) * 2008-06-04 2013-05-28 Intel Corporation Improving data locality and parallelism by code replication
US8645933B2 (en) * 2008-08-01 2014-02-04 Leon Schwartz Method and apparatus for detection and optimization of presumably parallel program regions
US8312442B2 (en) * 2008-12-10 2012-11-13 Oracle America, Inc. Method and system for interprocedural prefetching
US8468508B2 (en) * 2009-10-09 2013-06-18 International Business Machines Corporation Parallelization of irregular reductions via parallel building and exploitation of conflict-free units of work at runtime
US9009689B2 (en) * 2010-11-09 2015-04-14 Intel Corporation Speculative compilation to generate advice messages
US8589901B2 (en) 2010-12-22 2013-11-19 Edmund P. Pfleger Speculative region-level loop optimizations
US8793675B2 (en) 2010-12-24 2014-07-29 Intel Corporation Loop parallelization based on loop splitting or index array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144602A1 (en) * 2003-12-12 2005-06-30 Tin-Fook Ngai Methods and apparatus to compile programs to use speculative parallel threads

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BOULET, P. ET AL.: "LOOP PARALLELIZATION ALGORITHMS: FROM PARALLELISM EXTRACTION TO CODE GENERATION", PARALLEL COMPUTING, vol. 24, no. 3-4, 1998, pages 421 - 444, XP004130159 *
GUPTA, M. ET AL.: "Techniques for speculative run-time parallization of loops", THE 1998 ACM/IEEE CONFERENCE ON SUPERCOMPUTING, 1998, pages 1 - 12, XP010802504 *
KNOBE, K. ET AL.: "Array SSA Form and its use in parallelization", THE 25TH ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAIMMING LANGUAGES, 1998, pages 107 - 120, XP000792003 *

Also Published As

Publication number Publication date
CN103282878A (en) 2013-09-04
TWI455025B (en) 2014-10-01
EP2656204A4 (en) 2015-10-28
WO2012087988A2 (en) 2012-06-28
CN103282878B (en) 2016-05-04
EP2656204A2 (en) 2013-10-30
TW201246070A (en) 2012-11-16
US8793675B2 (en) 2014-07-29
US20120167069A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
WO2012087988A3 (en) Loop parallelization based on loop splitting or index array
WO2011156644A3 (en) Programmable device, heirarchical parallel machines, methods for providing state information
IN2015KN00202A (en)
WO2012103151A3 (en) State grouping for element utilization
GB2514275A (en) Identifying and ranking solutions from multiple data sources
WO2013012863A3 (en) Protecting privacy in audience creation
WO2012082410A3 (en) Technique for supporting multiple secure enclaves
WO2013089919A3 (en) Developing and executing workflow processes associated with data-encoded tags
WO2012129149A3 (en) Aggregating search results based on associating data instances with knowledge base entities
EA201492098A1 (en) CODING AND DECODING BASED ON MIXING SEQUENCE OF TIME COLLECTIONS
EP2588971A4 (en) Method and apparatus for context-based grouping
WO2012067854A3 (en) Analyte testing method and system with high and low analyte trends notification
WO2011073992A3 (en) Features of a data entry system
WO2011021898A3 (en) Shared data transmitting method, server, and system
WO2012093815A3 (en) Method, system, and computer-readable recording medium for recommending other users or objects by considering preference of at least one user
WO2012162278A3 (en) Social data recording
WO2012087643A3 (en) Thermally downward scalable system
GB2508529A (en) Bios network access
WO2011108908A3 (en) Method and apparatus for transmitting and receiving a content file including multiple streams
WO2012112744A3 (en) Sorting
EP2579165A4 (en) Information generation program, device, method, and information retrieval program, device, method
WO2014088917A8 (en) Music creation systems and methods
WO2013168117A3 (en) Interventional information brokering medical tracking interface
WO2012050385A3 (en) Method and apparatus for accessing device based on intuitive selection
HK1163318A1 (en) Structure-based ascii art

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180061439.X

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11852178

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011852178

Country of ref document: EP